【问题标题】:I can't get the Google's Places Service's output我无法获得 Google 的 Places Service 的输出
【发布时间】:2011-10-20 19:33:05
【问题描述】:

在我的代码中,首先,我试图通过 Google 地图上的 GeoLocation 服务找到用户的位置。

其次,我试图在用户位置附近使用 Google 的 Places Service 显示“酒吧”,例如您去喝酒的地方。它应该在用户位置附近的“酒吧”上放置标记。

但是这不起作用,我遇到了问题。但我不知道它是什么。它会在我的位置附近打开没有“酒吧”的地图。

我的css代码:

html, body {
  height: 100%;
  margin: 0;
  padding: 0;
}

#map_canvas {
  height: 100%;
}

@media print {
  html, body {
    height: auto;
  }



  #map_canvas {
    height: 650px;
  }
}

这是我的 javascript 和我的 HTML 代码=

    <!DOCTYPE html>
<html>
  <head>
    <title>Google Maps JavaScript API v3 Example: Map Geolocation</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="UTF-8">
    <link href="mapcss.css" rel="stylesheet" type="text/css">
    <!--
    Include the maps javascript with sensor=true because this code is using a
    sensor (a GPS locator) to determine the user's location.
    See: http://code.google.com/apis/maps/documentation/javascript/basics.html#SpecifyingSensor
    -->
    <script type="text/javascript"
        src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>

    <script type="text/javascript">
      var map;

      function initialize() {
        var myOptions = {
          zoom: 6,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map_canvas'),
            myOptions);

        // Try HTML5 geolocation
        if(navigator.geolocation) {
          navigator.geolocation.getCurrentPosition(function(position) {
            var pos = new google.maps.LatLng(position.coords.latitude,
                                             position.coords.longitude);

            var infowindow = new google.maps.InfoWindow({
              map: map,
              position: pos,
              content: 'Location found using HTML5.'
            });

            map.setCenter(pos);

            var request = {
                location: pos,
                radius: 500,
                types: ['bar']
            };

            infowindow = new google.maps.InfoWindow();
            var service = new google.maps.places.PlacesService(map);
            service.search(request, callback);

          },

      function() {
            handleNoGeolocation(true);
          });
        } else {
          // Browser doesn't support Geolocation
          handleNoGeolocation(false);
        }
      }

      function handleNoGeolocation(errorFlag) {
        if (errorFlag) {
          var content = 'Error: The Geolocation service failed.';
        } else {
          var content = 'Error: Your browser doesn\'t support geolocation.';
        }

        var options = {
          map: map,
          position: new google.maps.LatLng(45.4643898,9.1883469),
          content: content
        };

        var infowindow = new google.maps.InfoWindow(options);
        map.setCenter(options.position);
      }
      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);
        });
      }

      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body>
    <div id="map_canvas"></div>
  </body>
</html>

【问题讨论】:

  • 你真的需要接受那些对你之前的问题的正确答案。
  • 好的,我接受这就是我纠正并重做的原因。

标签: javascript google-maps google-maps-api-3 geolocation


【解决方案1】:

Google Places 搜索通常会出现空缺,尤其是考虑到 Google Places 数据库在当前时间(或者是我最后一次尝试)的稀疏程度。有关更多详细信息和建议,请参阅Google Maps Javascript API V3 : Search Requests

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 2016-07-02
    • 2015-11-09
    • 1970-01-01
    相关资源
    最近更新 更多