使用Google Map API,如何设置可点击的公交车站图标并在信息窗口显示公交车号码服务?我可以在谷歌地图网站上看到,它已启用。但是当我使用Map API创建自己的代码时,默认情况下这似乎是禁用的吗?
如果我不清楚,请参阅图片链接。
https://dl.dropbox.com/u/46360728/diff.maps.png
左侧是maps.google.com网站中的地图,而右侧是我的Google地图实施。正如您所看到的,与其他屏幕截图不同,我无法单击我的实现的公交车站。
非常感谢任何帮助。
答案 0 :(得分:2)
现在你无法让它发挥作用。这是gmap的api中的'已确认'错误:https://code.google.com/p/gmaps-api-issues/issues/detail?id=145
您会注意到在api网站上的官方传输层代码演示中,也没有交互性:https://developers.google.com/maps/documentation/javascript/examples/layer-transit。
答案 1 :(得分:1)
您可以获取公交车站名称,ID和坐标,然后使用任何其他API获取有关公交车站的信息。 这是代码:
var overlay;
overlay = new google.maps.OverlayView();
overlay.draw = function() {};
overlay.setMap(map);
$('#map-canvas').click(function(event){
var point = new google.maps.Point(event.pageX,event.pageY);
var location = overlay.getProjection().fromContainerPixelToLatLng(point); //get map coordinates by click
var request = {
location: location,
types: ['bus_station','subway_station'], //get bus stops and metro stations
radius: 10,
};
placesService = new google.maps.places.PlacesService(map);
placesService.search(request, function(result, status, pagination){
station = result[0];
if(typeof station != 'undefined'){
pos = station.geometry['location']; //position
bus_no = station.name.match(/\[([0-9]+)\]/i)[1]; //get ID by name
alert(bus_no); // ID
}
});
});