代码之家  ›  专栏  ›  技术社区  ›  theJ

地理位置Google Places API javascript

  •  -2
  • theJ  · 技术社区  · 8 年前

    下面的代码使用Google Places API显示了我所在位置附近的条形图。但是,如果用户单击浏览器上的“不允许”警告“使用您的位置”,则不会加载地图。我希望地图默认为else语句中的伦敦坐标。

    var temp_lat = '';
    var temp_lng = '';
    var map;
    var infowindow;
    getLocation();
    
    function getLocation() {
      if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
      } else {
        temp_lat = 51.507222; //set default lat value
        temp_lng = -0.1275; //set default lng value
      }
    }
    
    function showPosition(position) {
      temp_lat = position.coords.latitude;
      temp_lng = position.coords.longitude;
      initMap();
    }
    
    
    function initMap() {
      var location = {
        lat: temp_lat,
        lng: temp_lng
      };
      map = new google.maps.Map(document.getElementById('map'), {
        center: location,
        zoom: 15
      });
      infowindow = new google.maps.InfoWindow();
      var service = new google.maps.places.PlacesService(map);
      service.nearbySearch({
          location: location,
          radius: 50000,
          keyword: ['bar']
        },
        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);
      });
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   theJ    7 年前

    我已经设法让代码正常工作了——我添加了一个showError函数,并调用它。如果用户点击deny,它会设置默认的co ORD,然后初始化映射。