gpt4 book ai didi

用于 IE8 和移动浏览器的 HTML5 地理定位

转载 作者:行者123 更新时间:2023-11-28 00:26:09 24 4
gpt4 key购买 nike

所以我一直在开发一个网络应用程序,我已经实现了 HTML5 地理定位功能。我已经使用从谷歌网站获取的 Javascript 代码实现了这一点,它也与我页面上的谷歌地图进行交互。这是下面的代码:

// Note that using Google Gears requires loading the Javascript
// at http://code.google.com/apis/gears/gears_init.js

var initialLocation;
var siberia = new google.maps.LatLng(60, 105);
var newyork = new google.maps.LatLng(40.69847032728747, -73.9514422416687);
var browserSupportFlag = new Boolean();

function initialize() {
var myOptions = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

// Try W3C Geolocation (Preferred)
if(navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
map.setCenter(initialLocation);
}, function() {
handleNoGeolocation(browserSupportFlag);
});
// Try Google Gears Geolocation
} else if (google.gears) {
browserSupportFlag = true;
var geo = google.gears.factory.create('beta.geolocation');
geo.getCurrentPosition(function(position) {
initialLocation = new google.maps.LatLng(position.latitude,position.longitude);
map.setCenter(initialLocation);
}, function() {
handleNoGeoLocation(browserSupportFlag);
});
// Browser doesn't support Geolocation
} else {
browserSupportFlag = false;
handleNoGeolocation(browserSupportFlag);
}

function handleNoGeolocation(errorFlag) {
if (errorFlag == true) {
alert("Geolocation service failed.");
initialLocation = newyork;
} else {
alert("Your browser doesn't support geolocation. We've placed you in Siberia.");
initialLocation = siberia;
}
map.setCenter(initialLocation);
}
}

这段代码的作用是检查您访问站点所用的浏览器是否支持新的 WC3 地理定位功能,如果支持,它会使用它来查找纬度和经度。如果您不支持它,它会尝试使用 Google Gears 获取该信息,最后,如果您都不支持,它就会退出。

我完全可以按照 Firefox、Safari、Opera 和 Chrome 等浏览器的方式使用它,因为大多数新版本(甚至一些旧版本)都支持这些功能,但是,IE8(9 个可用),没有:(

IE8 甚至不使用 Google Gears 故障保护,它根本不起作用。无论如何(像上面的代码一样免费),在 IE8 上使用某种形式的地理定位,即使获取纬度和经度不那么准确,所以我可以将它插入 map ?

此外,我还没有测试它,但是,如果您使用移动浏览器(在主要设备上)登录此站点,它是否也支持 WC3 Geolocation/Google Gears,或者它会像IE8 可以。我知道我也可以在请求位置时使用 sensor=true 属性,如果来自移动设备,如果他们打开了 GPS,那么这是另一种方法,但我宁愿只使用地理定位(如果他们支持的话)。

谢谢你们。

最佳答案

我正在等待 HTML5 地理定位功能成熟一点,然后再开始全面使用它们。同时,我使用了 MaxMind 提供的 API 和数据集。取得了巨大的成功。

编辑:

我忘了说,这有时不适用于移动浏览器,所以您可能仍想在那里使用 HTML5 地理定位功能,因为我发现它在移动浏览器上更快更可靠。

关于用于 IE8 和移动浏览器的 HTML5 地理定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5652180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com