与Google的地理位置检测交互

时间:2011-04-21 09:41:04

标签: google-maps geolocation

Google的位置检测存在两个问题。 我正在使用此示例的基本代码: http://code.google.com/intl/de-DE/apis/maps/documentation/javascript/examples/map-geolocation.html

1。)当访问者拒绝其要检测的位置时,地图将不会显示。这使网站瘫痪。如何使用标准功能和无位置检测功能显示后备地图

2。)有没有办法与浏览器对话的结果进行交互,要求观众检测他的位置?如果观众拒绝了他要检测的位置,如果上述点1.)不可能,那么最好全部隐藏地图。

2 个答案:

答案 0 :(得分:2)

else功能的handleNoGeolocation部分中,您将提供后备代码,提供默认位置或其他位置检测方法。

这是一个替代结构,用于更干燥的功能并使用Google的IP地理位置进行回退:

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(updatePosition, ipPosition, { options... });
} else {
  ipPosition();
}

function ipPosition() {
  updatePosition(google.loader.ClientLocation);
}

function updatePosition(position) {
  if (position == null) {
    return updatePosition(defaultPlace());
  }

  // Firefox 3.6 passes in a non-standard position object with lat/lng at the top level instead of in .coords
  var coords = (position.hasOwnProperty("coords")) ? position.coords : position;
  if (coords == null) {
    return updatePosition(defaultPlace());
  }

  [...]
}

答案 1 :(得分:0)

在该示例中,有一个函数handleNoGeolocation,当用户没有或拒绝定位时,它们会使用它。使用相同的技术,您应该能够处理地图的隐藏。