6

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

如果我没有说清楚,请查看图片链接。

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

左边是 maps.google.com 网站中的地图,而右边是我的谷歌地图实现。如您所见,与其他屏幕截图不同,我无法单击实现的公交车站。

任何帮助将非常感激。

4

2 回答 2

3

现在你不能让它工作。这是 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 。

于 2013-12-02T23:16:08.653 回答
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
      }
    });
  });
于 2015-05-06T10:53:59.853 回答