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

2024-03-01

我正在开发 Google 地图 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());
          }
      }

也许您遇到了附近搜索位置标签的错误。您没有启动变量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 };

致电您的nearBySearch

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 https://developers.google.com/maps/documentation/javascript/places#place_search_requests,它将很好地解释正确的编码以及如何使用 api。这里还有支持的位置类型列表 https://developers.google.com/places/supported_types.

我希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Map API 可查找我所在位置附近的餐厅 的相关文章

随机推荐