【问题标题】:How can I show markers text when I click on any marker单击任何标记时如何显示标记文本
【发布时间】:2017-05-28 19:44:09
【问题描述】:

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

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。我怎样才能做到这一点?

【问题讨论】:

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


    【解决方案1】:

    希望,这会有所帮助。

    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);
    });
    

    【讨论】:

    • 您可以将事件代码包装在一个函数中,并根据您的用例对其进行修改。您可以从 addMarker 函数中调用该包装函数。(如果有帮助,请标记答案)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 2020-04-07
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多