谷歌地图 v3.0 地方 API.

Google Map V3.0 Places Api

本文关键字:API 地方 v3 谷歌地图      更新时间:2023-09-26

我正在做一个谷歌地图项目。我被3天的任务击中(真的是漫长的日子)..无法完成任务。我是 JavaScript 的初学者。

我想实现英国位置链接中所示的目标。我已将其更改为英国位置(伦敦),并将类型更改为银行。基本上,我期待显示给定半径内的银行引脚。但它没有这样做。我将类型更改为train_station,扼杀我得到错误的输出。

我使用的代码如下所示。谁能帮我..

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
<head> 
  <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
  <title>Google Maps JavaScript API v3 Example: Place Search</title> 
  <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places"></script> 
  <style type="text/css">
    #map {
      height:500px;
      width:100%;
    }
  </style>
  <script type="text/javascript">
      var map;
      var service;
      var infowindow;
      function initialize() {
      // Australia PostCode
         //var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316);
          // Uk Post Code
          //Northampton
          //var pyrmont = new google.maps.LatLng(52.238, -0.895);
          //London
          var pyrmont = new google.maps.LatLng(51.4916807, -0.1920284);
        //  var pyrmont = new google.maps.LatLng(40.704, -70.0083);

          map = new google.maps.Map(document.getElementById('map'), {
              mapTypeId: google.maps.MapTypeId.ROADMAP,
              center: pyrmont,
              zoom: 12
          });
          var request = {
              location: pyrmont,
              radius: '50000',
              types: ['train_station']
          };
          infowindow = new google.maps.InfoWindow();
          service = new google.maps.places.PlacesService(map);
          service.search(request, callback);
      }
      function callback(results, status) {
          if (status == google.maps.places.PlacesServiceStatus.OK) {
              for (var i = 0; i < results.length; i++) {
                  var place = results[i];
                  createMarker(results[i]);
              }
          }
      }
      function createMarker(place) {
          var placeLoc = place.geometry.location;
          var marker = new google.maps.Marker({
              map: map,
              position: new google.maps.LatLng(placeLoc.lat(), placeLoc.lng())
          });
          google.maps.event.addListener(marker, 'click', function () {
              infowindow.setContent(place.name);
              infowindow.open(map, this);
          });
      }
  </script> 
</head> 
<body onload="initialize()"> 
  <div id="map"></div>
  <div id="text">
    <pre>
var request = {
  bounds: new google.maps.LatLngBounds(
      new google.maps.LatLng(-33.867114, 151.1957),
      new google.maps.LatLng(-33.866755, 151.196138)),
  types: ['political']
};
    </pre>
    </div>
</body> 
</html> 

谷歌地方目前在伦敦似乎没有太多。 当您完全省略类型数组时,它只返回少数位置。 它们似乎都不是火车站或银行。 因此,您必须先将火车站和银行添加到Google地方信息。

尽管目前在伦敦的Google Places中缺乏数据,但API正在工作。 例如,如果您使用"museum"作为类型数组中的元素,则可以看到一堆结果。

但是,不知道"train_station"错误的输出问题是怎么回事。 Google Places API 是实验性的。 也许你应该向谷歌提交一个错误。 问题跟踪器处于 http://code.google.com/p/gmaps-api-issues/issues/list。 提交错误时,从第一个下拉项中选择"放置 API - 错误"。

同时,搜索name=bank或name=train+station(而不是使用类型)可能会给你你想要的东西。