上QQ阅读APP看书,第一时间看更新
4.2 手机地理位置定位
在一个以地点为核心的POI系统中,需要获取用户地理位置的坐标。本例演示通过Wi-Fi获取当前地理位置的坐标。当用户打开浏览器时,页面上显示通过手机3G网络信号地理定位的当前坐标,同时用Google Maps显示标记当前的地理位置。
在iPhone上使用Safari浏览器打开网页文件,运行效果如图4.6所示。
图4.6 询问是否允许使用当前的位置
提示
本例需要通过架设Web服务器来访问文件。
点击“好”按钮,运行效果如图4.7所示。
图4.7 IP使用联通3G网络定位
提示
代码在iPhone的Safari浏览器下测试通过,建议使用Safari浏览器打开;确保手机关闭WiFi;确保手机已通过手机信号连接上网络;出于隐私考虑,在第一次运行该页面时,会弹出提示是否授权使用您的地理位置信息,该程序需要授权才可正常使用定位功能。
本例“4-1.手机地理定位.html”的关键函数via3G代码如下:
【代码4-1】
01 function via3G(){ 02 if (navigator.geolocation) { // 判断浏览器是否支持 03 // 通过HTML 5 getCurrnetPosition API获取定位信息 04 navigator.geolocation.getCurrentPosition(function(position) { 05 var info = $("#info"), // 获取地理位置信息控件 06 longlat_html = // 拼接HTML 07 '<h4>手机定位</h4>'+ 08 '<ul>'+ 09 '<li>经度:' + position.coords.longitude + '</li>'+ 10 '<li>纬度:' + position.coords.latitude + '</li>'+ 11 '</ul>'; 12 info.html(longlat_html); // 设置显示内容结构 13 showMap(position.coords, document.getElementById("map")); 14 }); 15 } else { 16 var _3g = $("#info"); // 获取提示元素 17 _3g.html("您的浏览器不支持HTML 5 Geolocation API定位").css('color', '#F30'); 18 } 19 }
第04行,调用navigator.geolocation.getCurrentPosition方法通过手机信号获取定位信息。