地理位置Google Places API javascript

时间:2018-02-21 13:24:54

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

以下代码使用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 个答案:

答案 0 :(得分:1)

我设法让代码正常工作 - 我添加了一个showError函数并在用户点击拒绝时调用它,它设置默认的co-ords然后初始化地图。