我已经接受了一些已经在生产中的代码,并且我遇到了一些标记没有附加点击事件的问题。
为了实现这一点,我剥离了代码,只实现了本页中显示的基本示例-https://developers.google.com/maps/documentation/javascript/examples/event-simple,在我当前代码的结构中。
但是,这不起作用,标记已设置,但未附加单击事件。
将点击事件附加到地图上是可行的。
有人对造成这种情况的原因有什么建议吗?
init() {
this.loadScript(`https://maps.googleapis.com/maps/api/js?client=${this.apiClient}`);
}
loadScript(url) {
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.getElementsByTagName('body')[0].appendChild(script);
setTimeout(() => {
this.initMap();
}, 500);
}
initMap() {
const myLatlng = {lat: -25.363, lng: 131.044};
const map = new google.maps.Map(this.mapElement, {
zoom: 4,
center: myLatlng
});
const marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'Click to zoom'
});
map.addListener('center_changed', function() {
// 3 seconds after the center of the map has changed, pan back to the
// marker.
window.setTimeout(function() {
map.panTo(marker.getPosition());
}, 3000);
});
marker.addListener('click', function markerClick() {
map.setZoom(8);
map.setCenter(marker.getPosition());
});
}
我做了一些更改并使用
const marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: 'Click to zoom',
icon: 'https://maps.google.com/mapfiles/kml/shapes/parking_lot_maps.png'
});
map.addListener('center_changed', function () {
// 3 seconds after the center of the map has changed, pan back to the
// marker.
window.setTimeout(function () {
map.panTo(marker.getPosition());
}, 3000);
});
marker.addListener('click', function () {
map.setZoom(8);
map.setCenter(marker.getPosition());
});
marker.setMap(map);