在这个 jsfiddle 中是我的 js 的简化版本:http://jsfiddle.net/Drecker/2m4kvxb8/4/请注意,jsfiddle 有趣的部分只是 showRoute
方法。并且方法 showMarker
仅在正常标记上显示所需的行为。
基本上,我通过 gmap3
getroute
生成一 strip 有一些航路点的路线。单击一个航点后,我需要打开一个小信息框,其中包含该点的更多自定义信息 - 因此基本上以某种方式获取此类航点的 onclick 事件(通过该航点的一些标识,以便我能够获得正确的信息)。我能够在单独的标记上实现所需的行为(正如您在 jsfiddle 中看到的 - 这是左上角的功能齐全的单独标记),但不能在由 directionrenderer
生成的标记上实现。
此外,请注意,我的航路点有 stopover: false
,并且由于某种原因,此类标记会忽略(某些)选项,例如 title
,正如您在 jsfiddle 中看到的那样。
非常感谢任何帮助 - 我已经尝试了几种方法,但没有一个起作用。
最佳答案
希望您正在使用 Google API 库的某个版本,以防出现类似情况
<script src="http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places,geometry" type="text/javascript"></script>
例如,您有一个 div 空间来显示 map
<div id="map" style="width: 700px; height: 600px;"></div>
因此您可以使用它在标记上添加监听器
//location is an array variable where you store your co ordinates
//code to show map
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(locations[0].latitude, locations[0].longitude),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
//adding listener
var marker,i;
var infowindow = new google.maps.InfoWindow();
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(locations[i].city);
infowindow.open(map, marker);
}
})(marker, i));
哪里
marker is the varible which will be something like this,
//adding marker
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i].latitude, locations[i].longitude),
map: map
});
希望上面的内容对您有所帮助
关于javascript - 如何获取getroute生成的marker的onclick事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25982103/