Google Map API 可在我附近查找附近的餐厅

Posted

技术标签:

【中文标题】Google Map API 可在我附近查找附近的餐厅【英文标题】:Google Map API to find nearby restaurant around my place 【发布时间】:2016-07-14 03:41:21 【问题描述】:

我正在研究 Google map api [这是我在餐厅附近找到的。 . .当我运行它时,我只得到当前位置。我没有收到任何与餐厅数据相关的信息。

<script>

      function initMap() 
          var map = new google.maps.Map(document.getElementById('map'), 
              center:  lat: 25.276987, lng: 55.296249 ,
              zoom: 15
          );

          var infoWindow = new google.maps.InfoWindow( map: map );

          if (navigator.geolocation) 
              navigator.geolocation.getCurrentPosition(function (position) 

                  var pos = 
                      lat: position.coords.latitude,
                      lng: position.coords.longitude     
                  ;
                  infoWindow.setPosition(pos);
                  infoWindow.setContent('Location found.');
                  map.setCenter(pos);
                  var marker = new google.maps.Marker(
                      map: map,
                      position: pos.getPlace().location
                  );
                  var service = new google.maps.places.PlacesService(map);
                  service.nearbySearch(
                      location: rak,
                      radius: 5500,
                      type: ['restaurant'] // not resturant
                  , callback);

              , function () 
                  handleLocationError(true, infoWindow, map.getCenter());
              );
          
          else             
              handleLocationError(false, infoWindow, map.getCenter());
          
      

【问题讨论】:

【参考方案1】:

也许您遇到了有关附近搜索位置标记的错误。您没有启动变量rak,它将返回一个空值。

设置脚本

<script
    src="https://maps.googleapis.com/maps/api/js?key=API_KEY&libraries=places&callback=initMap"
    async defer></script>

初始化变量

var map;
var infowindow;
var myPlace = lat: 25.276987, lng: 55.296249 ;

致电您的附近搜索

var service = new google.maps.places.PlacesService(map);
            service.nearbySearch(
                location : myPlace,
                radius : 5500,
                type : [ 'restaurant' ]
            , 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);
            );
        

您可以在document 中找到此代码,它将很好地解释正确的编码以及如何使用 api。这里还有list of supported location type。

我希望这会有所帮助。

【讨论】:

以上是关于Google Map API 可在我附近查找附近的餐厅的主要内容,如果未能解决你的问题,请参考以下文章

Android。点击标记后的Google map API工具

google 的缓存策略将 api 放置在结果附近。

如何使用 Google Places Javascript API 搜索附近(自动从浏览器获取坐标)?

React Native:Google附近的API与Exchange数据

从google网站API获取图片网址(附近的搜索)

Google Places API - 附近搜索不如地图准确?