① js中如何得到客戶端的地理位置
手機WEB定位方法:代碼。
var getLocation = function (successFunc, errorFunc) { //successFunc獲取定位成功回調函數,errorFunc獲取定位失敗回調
//首先設置默認城市
var defCity = {
id: '000001',
name: '北京市',
date: curDateTime()//獲取當前時間方法
};
//默認城市
$.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(defCity), { expires: 1, path: '/' });
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
//var map = new BMap.Map("container"); // 創建Map實例
var point = new BMap.Point(lon, lat); // 創建點坐標
var gc = new BMap.Geocoder();
gc.getLocation(point, function (rs) {
var addComp = rs.addressComponents;
var curCity = {
id: '',
name: addComp.province,
date: curDateTime()
};
//當前定位城市
$.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
//alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
if (successFunc != undefined)
successFunc(addComp);
});
},
function (error) {
switch (error.code) {
case 1:
alert("位置服務被拒絕。");
break;
case 2:
alert("暫時獲取不到位置信息。");
break;
case 3:
alert("獲取位置信息超時。");
break;
default:
alert("未知錯誤。");
break;
}
var curCity = {
id: '000001',
name: '北京市',
date: curDateTime()
};
//默認城市
$.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
if (errorFunc != undefined)
errorFunc(error);
}, { timeout: 5000, enableHighAccuracy: true });
} else {
alert("你的瀏覽器不支持獲取地理位置信息。");
if (errorFunc != undefined)
errorFunc("你的瀏覽器不支持獲取地理位置信息。");
}
};
var showPosition = function (position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
//var map = new BMap.Map("container"); // 創建Map實例
var point = new BMap.Point(lon, lat); // 創建點坐標
var gc = new BMap.Geocoder();
gc.getLocation(point, function (rs) {
var addComp = rs.addressComponents;
var curCity = {
id: '',
name: addComp.province,
date: curDateTime()
};
//當前定位城市
$.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
//alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street);
});
};
var showPositionError = function (error) {
switch (error.code) {
case 1:
alert("位置服務被拒絕。");
break;
case 2:
alert("暫時獲取不到位置信息。");
break;
case 3:
alert("獲取位置信息超時。");
break;
default:
alert("未知錯誤。");
break;
}
var curCity = {
id: '000001',
name: '北京市',
date: curDateTime()
};
//默認城市
$.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
};.
前提要引入網路API:<script src="http://api.map..com/api?v=1.4" type="text/javascript"></script>。
2. PC端通過IP實現方法:
採用騰訊提供的介面,這個目前已經不能使用。
<script type="text/javascript" src="http://fw.qq.com/ipaddress"></script>
<script type="text/javascript">
document.write(IPData[0]); //顯示IP地址
document.write(IPData[2]); //顯示省
document.write(IPData[3]); //顯示市
</script>
3 . 獲取客戶端IP方法
<script>
var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' + Math.random();
$.getJSON(url, function(data) {
alert(data.Ip);
});
</script>
② js怎麼獲得滑鼠當前坐標
吸使用以下幾種方式獲取:
1.PageX/PageX:滑鼠在頁面上的位置,從頁面左上角開始,即是以頁面為參考點,不隨滑動條移動而變化
2.clientX/clientY:滑鼠在頁面上可視區域的位置,從瀏覽器可視區域左上角開始,即是以瀏覽器滑動條此刻的滑動到的位置為參考點,隨滑動條移動 而變化.
可是悲劇的是,PageX只有FF特有,IE這個悲劇沒有啊T_T,所以大牛們想出了一個辦法
PageY=clientY+scrollTop-clientTop;(只討論Y軸,X軸同理,下同)
3.screenX/screenY:滑鼠在屏幕上的位置,從屏幕左上角開始(w3c標准)
4.offsetX/offsetY:IE特有,滑鼠相比較於觸發事件的元素的位置,以元素盒子模型的內容區域的左上角為參考點,如果有boder,可能出現負值
5.
layerX/layerY:FF特有,滑鼠相比較於當前坐標系的位置,即如果觸發元素沒有設置絕對定位或相對定位,以頁面為參考點,如果有,將改變參考坐標系,從觸發元素盒子模型的border區域的左上角為參考點也就是當觸發元素設置了相對或者絕對定位後,layerX和offsetX就幸福地生活在一起^-^,幾乎相等,唯一不同就是一個從border為參考點,一個以內容為參考點
chrome和safari一條龍通殺!完全支持所有屬性.其中(offsetX和layerX都是以border為參考點)
下面這個是獲取相對於屏幕的坐標
document.onmousemove=function(e){e=e? e:window.event;document.writeln("X:"+e.screenX+"Y:"+e.screenY);}
③ js 百度地圖api能gps定位嗎
網路地圖的定位只支持移動設備(android和ios),以及IP定位(只是粗略定位)。js定位據我理解你是想在桌面電版腦上進行定位,這個權步驟只能自己來實現。因為網路地圖採用的也是火星坐標,所以你只能自己找坐標轉換演算法將GPS坐標轉換為網路坐標。這個坐標轉換演算法很難實現,因為本身就是為了防止你進行轉換的加密演算法。