Javascript 谷歌地图参考标记侦听器

Javascript 谷歌地图参考标记侦听器,javascript,google-maps,Javascript,Google Maps,我想在每个标记上添加一个侦听器来放大它 var markers = [ ['SIÈGE SOCIAL - CENTRE DE SOPHIA ANTIPOLIS', 43.582079, 7.051295], ['CENTRE DE PARIS', 48.788109, 2.319764], ['CENTRE DE RENNES', 48.152474, -1.698386], ['CE

我想在每个标记上添加一个侦听器来放大它

        var markers = [
            ['SIÈGE SOCIAL - CENTRE DE SOPHIA ANTIPOLIS', 43.582079, 7.051295],
            ['CENTRE DE PARIS', 48.788109, 2.319764],
            ['CENTRE DE RENNES', 48.152474, -1.698386],
            ['CENTRE DE NANTES', 47.215383, -1.53688],
            ['CENTRE DE GRENOBLE', 45.192752, 5.712405],
            ['CENTRE DE LYON', 45.768857, 4.864911],
            ['CENTRE DE AIX-EN-PROVENCE', 43.496824, 5.346391],
            ['CENTRE DE TOULOUSE', 43.56867, 1.387412]
        ];

        for (i = 0; i < markers.length; i++) {

            var marker = new google.maps.Marker({
                position: {lat: markers[i][1], lng: markers[i][2]},
                title: markers[i][0],
                map: map
            });


            marker.addListener('click', function() {
                map.setZoom(8);
                map.setCenter(marker.getPosition());

            });


        }

而不是使用
map.setCenter(marker.getPosition())尝试使用
map.setCenter(data.getPosition())
若要获取所单击的元素,请尝试在可以创建新标记时创建类似类的函数

var arrayMarkers = [];

var markers = [
            ['SIÈGE SOCIAL - CENTRE DE SOPHIA ANTIPOLIS', 43.582079, 7.051295],
            ['CENTRE DE PARIS', 48.788109, 2.319764],
            ['CENTRE DE RENNES', 48.152474, -1.698386],
            ['CENTRE DE NANTES', 47.215383, -1.53688],
            ['CENTRE DE GRENOBLE', 45.192752, 5.712405],
            ['CENTRE DE LYON', 45.768857, 4.864911],
            ['CENTRE DE AIX-EN-PROVENCE', 43.496824, 5.346391],
            ['CENTRE DE TOULOUSE', 43.56867, 1.387412]
        ];

for(var i in markers) {
   var m = new MarkerC();
   m.create(map, markers[i][1], markers[i][2], markers[i][0]);
   arrayMarkers.push(m); 
}

function MarkerC(){
    this.marker;

    this.create = function (map, lat, lng, title){
        this.marker = new google.maps.Marker({
            position : {
                lat : Number(lat),
                lng : Number(lng)
            },
            map: map,
            title: title
          });

        google.maps.event.addListener(this.marker, "click", function(e) {
            map.setZoom(8);
            map.setCenter(this.marker.getPosition());

        });
    }

}

最简单的解决方案是在marker click event listener函数中使用
,该函数引用单击的标记

marker.addListener('click', function() {
  map.setZoom(8);
  map.setCenter(this.getPosition());
});

代码片段:

var地理编码器;
var映射;
函数初始化(){
var map=new google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var bounds=new google.maps.LatLngBounds();
对于(i=0;i
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}

marker.addListener('click', function() {
  map.setZoom(8);
  map.setCenter(this.getPosition());
});