在Google地图上创建指向某个标记的链接

时间:2014-04-22 13:11:26

标签: javascript jquery google-maps dom

我使用此示例实现了Google地图商店定位器:https://developers.google.com/maps/articles/phpsqlsearch_v3

它工作正常,但我试图让列表显示在实际ul而不是下拉列表中。我已将结果更改为显示为li,但我无法使链接生效。

它目前链接到下拉菜单中的所选选项,但我想改为每个li一个链接。这是我需要改变的一点:

function load() {
  map = new google.maps.Map(document.getElementById("map"), {
    center: new google.maps.LatLng(53.438065, -1.823730),
    zoom: 4,
    mapTypeId: 'roadmap',
    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}
  });
  infoWindow = new google.maps.InfoWindow();

  locationSelect = document.getElementById("locationSelect");
  locationSelect.onchange = function() {
    var markerNum = locationSelect.options[locationSelect.selectedIndex].value;
    if (markerNum != "none"){
      google.maps.event.trigger(markers[markerNum], 'click');
    }
  };
}

function searchLocations() {
 var address = document.getElementById("addressInput").value;
 var geocoder = new google.maps.Geocoder();
 geocoder.geocode({address: address}, function(results, status) {
   if (status == google.maps.GeocoderStatus.OK) {
    searchLocationsNear(results[0].geometry.location);
   } else {
     alert(address + ' not found');
   }
 });
}

1 个答案:

答案 0 :(得分:2)

因此,您可以在所有li项目上添加点击事件,并在该点击事件中传递标记号,如下所示:

function selectMarker(markerNum) {
    google.maps.event.trigger(markers[markerNum], 'click');
};

此selectMarker函数必须适用于所有li才能使其正常工作。