Google的位置检测存在两个问题。 我正在使用此示例的基本代码: http://code.google.com/intl/de-DE/apis/maps/documentation/javascript/examples/map-geolocation.html
1。)当访问者拒绝其要检测的位置时,地图将不会显示。这使网站瘫痪。如何使用标准功能和无位置检测功能显示后备地图?
2。)有没有办法与浏览器对话的结果进行交互,要求观众检测他的位置?如果观众拒绝了他要检测的位置,如果上述点1.)不可能,那么最好全部隐藏地图。
答案 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
,当用户没有或拒绝定位时,它们会使用它。使用相同的技术,您应该能够处理地图的隐藏。