使用JS獲取當前地理位置方法彙總
1.手機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.baidu.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>
採用新浪介面: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js
多地域測試方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=127.0.0.1
<script type="text/javascript">
$.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js', function(_result) {
if (remote_ip_info.ret == '1') {
alert('國家:' + remote_ip_info.country + '<BR>省:' + remote_ip_info.province + '<BR>市:' + remote_ip_info.city + '<BR>區:' + remote_ip_info.district + '<BR>ISP:' + remote_ip_info.isp + '<BR>型別:' + remote_ip_info.type + '<BR>其他:' + remote_ip_info.desc);
} else {
alert('沒有找到匹配的IP地址資訊!');
}
});
</script>
網易有道IP地址介面(這個有待測試)
http://www.youdao.com/smartresult-xml/search.s?type=ip&q=IP地址
淘寶請求介面(GET)
<script>
var ip = "124.127.108.133";
var url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + ip;
$.getJSON(url, function (json) {
var myprovince2 = json.data.area;
var mycity2 = json.data.region;
alert("您所在的城市是:" + myprovince2 + mycity2);
});
</script>
太平洋IP地址庫API介面
http://whois.pconline.com.cn/?ip=[ip地址字串]
另外:還有google、搜狐等提供對應的介面,大家可以自己試一試。
搜狐IP地址查詢介面(預設GBK):http://pv.sohu.com/cityjson
搜狐IP地址查詢介面(可設定編碼):http://pv.sohu.com/cityjson?ie=utf-8
搜狐另外的IP地址查詢介面:http://txt.go.sohu.com/ip/soip
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>
相關文章
- 百度地圖JavaScript API獲取使用者當前經緯度並獲取使用者當前詳細地理位置地圖JavaScriptAPI
- js_原生js獲取當前的使用者ipJS
- js獲取裝置資訊的方法彙總JS
- 用js獲取當前月份的天數JS
- js獲取當前的具體時間JS
- $request 請求方法 獲取 API 的當前使用者API
- 前端Js獲取本網IP和外網IP方法總彙前端JS
- 如何用js獲取當前時間和ip地址以及當前城市JS
- js根據IP地址獲取當前的省市JS
- Flutter 小知識,Key的使用(獲取當前點選Widget位置/獲取當前Widget大小)Flutter
- JavaScript 獲取當前月份JavaScript
- 獲取當前時間
- 獲取當前js檔案被引用的路徑JS
- php 獲取當前域名和當前協議PHP協議
- 封裝js獲取當前元素的弟弟元素節點封裝JS
- 獲取當前頁面的topViewControllerViewController
- Java獲取當前星期幾Java
- mybatis獲取當前時間MyBatis
- js根據ip地址獲取城市地理位置JS
- Java:如何輕鬆獲取當前執行的方法名Java
- python 如何獲取當前時間Python
- react native 獲取地理位置React Native
- js-----時間格式化、獲取當前網頁路徑JS網頁
- js獲取使用者當前所在城市(ip)JS
- 獲取當前Tomcat例項的埠Tomcat
- Java如何獲取當前執行緒Java執行緒
- Linux C獲取當前工作目錄Linux
- 微信小程式獲取當前位置微信小程式
- 獲取當前時間往前的日期
- Spark獲取當前分割槽的partitionIdSpark
- Flutter獲取當前網路型別Flutter型別
- js獲取當天時間戳JS時間戳
- swoole websocket 使用 passport 無法獲取當前使用者問題WebPassport
- js時間物件:獲取當前時間(格式化)- 程式碼篇JS物件
- Android開發:獲取當前系統時間和日期的方法Android
- [提問交流]onethink框架,怎麼獲取當前使用者框架
- 使用go對NTP發起請求獲取當前時間Go
- react獲取當前頁面的url引數React