点击任何标记

时间:2017-01-13 12:21:13

标签: javascript jquery google-maps google-maps-api-3 google-maps-markers

我正在创建一个谷歌地图页面。我通过循环动态添加标记。我想点击任何标记时显示。我怎样才能做到这一点?这是我的循环。

if(data.STATUS == STATUS.SUCCESS){
    console.log("Markers Received");
    deleteMarkers();
    for(var i=0; i<data.DATA.length; i++){
        addMarker({lat: data.DATA[i].LATITUDE, lng: data.DATA[i].LONGITUDE},data.DATA[i].INCIDENT);
    }
}

function deleteMarkers() {
    clearMarkers();
    markers = [];
}

function addMarker(location,incident) {
    var marker = new google.maps.Marker({
      position: location,
      map: map,
      title: incident
    });
    markers.push(marker);
}

function setMapOnAll(map) {
    for (var i = 0; i < markers.length; i++) {
      markers[i].setMap(map);
  }
}


function deleteMarkers() {
    clearMarkers();
    markers = [];
}

function clearMarkers() {
    setMapOnAll(null);
}

function showMarkers() {
    setMapOnAll(map);
}

首先,我通过此功能删除所有标记。然后重置它们。此呼叫在每分钟后运行。我想点击标记时显示incident。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

希望,这有帮助。

var obj = {
    infoWindow: new google.maps.InfoWindow(),
    marker: new google.maps.Marker({
            map: map,
            position: latLngObj,
            title: 'info name'
    })
};

google.maps.event.addListener(obj.marker, 'click', function() {
        obj.infoWindow.setContent("<div><b>" + obj.marker.title + "(" + distance + ")</b></div>");
        obj.infoWindow.open(map, obj.marker);
});
相关问题