启用可在Google地图中点击的公交车站图标

时间:2012-08-12 06:00:10

标签: google-maps icons bus

使用Google Map API,如何设置可点击的公交车站图标并在信息窗口显示公交车号码服务?我可以在谷歌地图网站上看到,它已启用。但是当我使用Map API创建自己的代码时,默认情况下这似乎是禁用的吗?

如果我不清楚,请参阅图片链接。

https://dl.dropbox.com/u/46360728/diff.maps.png

左侧是maps.google.com网站中的地图,而右侧是我的Google地图实施。正如您所看到的,与其他屏幕截图不同,我无法单击我的实现的公交车站。

非常感谢任何帮助。

2 个答案:

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