API Карт Google v.3 не может добавить маркер при нажатии на точку на карте - PullRequest
0 голосов
/ 13 мая 2018

Я использую addEventListener для добавления нового маркера в Карты Google, используя угловую версию 6.
Я получаю все необходимое , но фактический значок маркера, он не отображается на карте, почему?

Вот ссылка на рабочий пример на developers.google.com
https://developers.google.com/maps/documentation/javascript/info-windows-to-db

private isMapInitialized = false;
private map: any;


// Here everything statrs
ngOnInit() {
    this.openMapPanel();
}   


// Here I get the map and everything works great!
openMapPanel() {
    setTimeout(() => {
        if (!this.isMapInitialized) {
            this.initMap();

            this.isMapInitialized = true;
        }
    }, 300);
}


initMap() {
    var california = {lat: 37.4419, lng: -122.1419};
        this.map = new google.maps.Map(document.getElementById('map'), {
        center: california,
        zoom: 13
    });

    google.maps.event.addListener(this.map, 'click', function(event) {
        this.placeNewMarker(event.latLng);
    });
}


placeNewMarker(location) {
        var marker = new google.maps.Marker({
            position: location,
            map: this.map
        });
    });
}

я что-то пропустил?

1 Ответ

0 голосов
/ 16 мая 2018

Это было так просто ... все, что мне нужно было сделать, это изменить эту строку кода.

google.maps.event.addListener(this.map, 'click', function(event) {
    this.placeMarker(event.latLan);
}

на

google.maps.event.addListener(this.map, 'click', (event) => {
        this.placeMarker(event.latLan);
});

и, конечно, добавить функцию

placeNewMarker(location) {
    var marker = new google.maps.Marker({
        position: location,
        map: this.map
    });
});

Надеюсь, это когда-нибудь кому-нибудь поможет: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...