使用JS获取当前地理位置方法汇总
2015-11-05 17:23
756 查看
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>
相关文章推荐
- 利用JS判断浏览器种类
- jsp的etl中进行字符串相加
- JavaScript 的性能优化:加载和执行
- javascript 内存泄漏的学习
- JS闭包的理解
- json读取+对象转换+csv读写
- jsonp
- 11月9日 Meetup and talk about JS
- jstl中empty
- JSP到Servlet的编译过程初探
- Anjularjs 实施(跨域接口访问,高效修改)
- js获取iframe中的元素以及在iframe中获取父级的元素(包括iframe中不存在name和id的情况)
- JSP EL简介
- js 倒计时
- AnjularJS初学(AnjularJS跨域取值)
- 把一些表单属性封装一个JSON
- js键盘码
- AnjularJS初学(AnjularJS验证)
- js识别浏览器
- JavaScript高级程序设计之DOM 扩展之专有扩展之滚动第11.4.5讲