谷歌地图上的公交车站列表

8
我正在尝试构建一个Web应用程序,您可以在其中输入您的地址,并获得您所在地区的公交车站列表。我想使用Google Maps来实现这一点,但我找不到使用它们进行此操作的方法。是否有办法以JSON或XML格式获取地图上的点列表?我尝试过Google Maps Places API,但它无法按照这种方式工作。我只找到了这个示例 - http://gmaps-samples-v3.googlecode.com/svn/trunk/localsearch/places.html,但那不是我需要的东西。那么,有人知道吗?
5个回答

3

我认为它可以帮助你

<script>
  // This example requires the Places library. Include the libraries=places
  // parameter when you first load the API. For example:
  // <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places">

  var map;
  var infowindow;

  function initMap() {
    var pyrmont = {lat: 38.06908229560463,  lng: 46.31730562744135};

    map = new google.maps.Map(document.getElementById('map'), {
      center: pyrmont,
      zoom: 15
    });

    infowindow = new google.maps.InfoWindow();
    var service = new google.maps.places.PlacesService(map);
    service.nearbySearch({
      location: pyrmont,
      radius: 1000,
      types: ['bus_station','transit_station']

    }, callback);
  }

  function callback(results, status) {
    if (status === google.maps.places.PlacesServiceStatus.OK) {
      for (var i = 0; i < results.length; i++) {
        createMarker(results[i]);
      }
    }
  }

  function createMarker(place) {
    var placeLoc = place.geometry.location;
    var marker = new google.maps.Marker({
      map: map,
      position: place.geometry.location
    });

    google.maps.event.addListener(marker, 'click', function() {
      infowindow.setContent(place.name);
      infowindow.open(map, this);
    });
  }
</script>

3

1
这只适用于公交车站,我认为不适用于公交车站。不过我对此并不完全确定。 - boulder_ruby
2
编辑:不是所有的公交站点,只有公交车站。虽然比没有好得多。 - boulder_ruby

3

除了 types 参数中的第一个元素被 API 使用且 transit_station 类型是公交车站的正确类型这一点,Ali Seify 的回答是正确的。

此外,为了获取最近的公交车站,建议使用参数 rankBy: google.maps.places.RankBy.DISTANCE,在这种情况下不能使用 radius 参数。

service.nearbySearch({
  location: pyrmont,
  rankBy: google.maps.places.RankBy.DISTANCE,
  types: ['transit_station']

}, callback);

2
这不是谷歌提供的服务。他们肯定记录了你需要的所有信息,但是他们所有的计算都是在内部完成的。
一种选择(可能有些困难)是挖掘公共交通时间表以获取巴士站点位置。如果您的Web应用程序仅支持小区域(即城市),那么这可能是一个选项。这很冒险,因为如果页面更改,则必须重新配置数据挖掘应用程序,但是如果您能够找到一种获取带位置的巴士站列表并围绕其构建应用程序的方法,它可能会随时更改并破坏您的应用程序。

我不需要时间表,只需公交车站和它们的纬度和经度。我有另一个应用程序可以查询时间表,但我不想手动挖掘所有的公交车站 :) 但是您在围绕挖掘软件构建应用方面是正确的。 - Pirozek

1
你可以使用Google Fusion Tables来实现这个功能。不过,除非有人已经输入了数据,否则你必须自己输入数据。Google地图API支持Google Fusion Tables。

这与我所需的相反。这是数据->地图上的点,但我需要gmap上的点->数据 :) 但感谢提示,不知道这个项目。 - Pirozek
听起来你需要数据(“有没有办法以JSON或XML格式获取地图上的点列表?”)。如果你已经有了数据并且需要将其导出到json或xml,那应该很简单吧?或者可能是我太累了看不懂 :) - johansalllarsson
1
好的,也许我写错了。我需要从gmap获取数据。我只有地址,需要获取附近公交车站列表。 - Pirozek
通过Google Maps API输入地址无法获取公交车站列表。该数据不是默认提供的。最好的方法是查看Google Fusion Tables、开放数据(http://www.google.com/search?q=open+data)或爬取信息。 - johansalllarsson
如描述的那样,https://support.google.com/fusiontables/answer/9551050?visit_id=637125519637693628-711528597&rd=1,“Google Fusion Tables”可能不再可用。 - ChandraMouli Poreddy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接