精华内容
下载资源
问答
  • 地理位置信息

    2011-12-26 23:53:36
    使用HTML 5来获得地理位置信息是非常容易的。它可以依赖你的IP地址,设备上有的GPS装置等方法取得你当前的地理位置信息。与手机一样,取得用户当前的地理位置信息需要通过用户的许可,以浏览器为例,它会在工具栏弹...
    使用HTML 5来获得地理位置信息是非常容易的。它可以依赖你的IP地址,设备上有的GPS装置等方法取得你当前的地理位置信息。与手机一样,取得用户当前的地理位置信息需要通过用户的许可,以浏览器为例,它会在工具栏弹出一个提示,询问用户是否容许该网站使用当前的地理位置信息。


    在确认浏览器支持HTML 5的地理信息之后,可以使用navigator.geolocation.getCurrentPosition()来取得当前的位置信息。navigator.geolocation.getCurrentPosition()支持两个回调方法,一个用来处理正确的地理位置请求,一个用来进行错误处理。比如通过本文最后的页面可以取得当前所在位置的经度和纬度,并正确的处理失败信息。


    getCurrentPosition支持三个查询选项:
    enableHighAccuracy - 是否用高精度进行定位(使用高精度,则会使调用更慢)
    timeout - 查询超时设定(以毫秒为单位)
    maximumAge - 用来设定地理位置失效重查时间,以便进行实时位置跟踪


    得到用户的地理位置之后就可以调用各种API完成不同的服务了,比如加载地图、基于地理位置的推荐,等等。


    一个工作的示例页面(要注意的是chrome在本地无法执行地理位置请求,需要将相应页面部署在web服务器下方可开始使用地理位置服务。firefox没有该要求)


    <html>
    <head>
    <title>Geo location</title>
    </head>
    
    <body>
    <p>
    <script language="Javascript">
    function show_map(position)
    {
            document.write("Latitude: "+position.coords.latitude);
            document.write("<br>");
            document.write("Longitude: "+position.coords.longitude);
    }
    
    function handle_error(err) {
    	switch(err.code) {
    		case 1:
    			document.write("用户不让用地理位置信息");
    			break;
    		case 2:
    			document.write("查询失败,当前可能无网络");
    			break;
    		case 3:
    			document.write("查询超时");
    			break;
    		default:
    			document.write("未知原因查询失败");
    			break;
    	}
    }
    
    navigator.geolocation.getCurrentPosition(show_map);
    
    </script>
    </p>
    </body>
    
    </html>
    


    展开全文
  • 微信小程序的新版本更新后获得用户的地理位置需要先声明用途 具体做法,在app.json中增加permission字段 "permission": { "scope.userLocation": { "desc": "你的位置信息将用于小程序位置接口的效果展示" } ...

    微信小程序的新版本更新后获得用户的地理位置需要先声明用途

    具体做法,在app.json中增加permission字段

    "permission": {
        "scope.userLocation": {
          "desc": "你的位置信息将用于小程序位置接口的效果展示"
        }
      },

    然后获取位置信息时 getLocation+openSetting可以实现地理位置再次授权,即如果用户第一次拒绝了,可以调用openSetting再次请求用户授权,通过res.authSetting['scope.userLocation']的值与true比较,为true就是授权了,false就是拒绝授权

     getUserLocation: function () {
        let vm = this;
        wx.getSetting({
          success: (res) => {
            if (res.authSetting['scope.userLocation'] != undefined && res.authSetting['scope.userLocation'] != true) {
              wx.showModal({
                title: '请求授权当前位置',
                content: '需要获取您的地理位置,请确认授权',
                success: function (res) {
                  if (res.cancel) {
                    wx.showToast({
                      title: '拒绝授权',
                      icon: 'none',
                      duration: 1000
                    })
                  } else if (res.confirm) {
                    wx.openSetting({
                      success: function (dataAu) {
                        if (dataAu.authSetting["scope.userLocation"] == true) {//res.authSetting['scope.userLocation']的值与true比较,为true就是授权了,false就是拒绝授权了
                          wx.showToast({
                            title: '授权成功',
                            icon: 'success',
                            duration: 1000
                          })
                          //再次授权,调用wx.getLocation的API
                          vm.getLocation();
                        } else {
                          wx.showToast({
                            title: '授权失败',
                            icon: 'none',
                            duration: 1000
                          })
                        }
                      }
                    })
                  }
                }
              })
            } else if (res.authSetting['scope.userLocation'] == undefined) {
              //调用wx.getLocation的API
              vm.getLocation();
            }
            else {
              //调用wx.getLocation的API
              vm.getLocation();
            }
          }
        })
      },

     

    展开全文
  • html5中获取地理位置信息

    千次阅读 2016-08-13 11:30:17
    HTML5提供了地理位置定位功能(Geolocation API),能确定用户位置,我们可以借助HTML5的该特性开发基于地理位置信息的应用。本文结合实例给大家分享如何使用HTML5,借助百度、谷歌地图等接口来获取用户准确的地理...

            HTML5提供了地理位置定位功能(Geolocation API),能确定用户位置,我们可以借助HTML5的该特性开发基于地理位置信息的应用。本文结合实例给大家分享如何使用HTML5,借助百度、谷歌地图等接口来获取用户准确的地理位置信息。

            定位功能(Geolocation)是HTML5的新特性,因此只有在支持HTML5的现代浏览器上运行,特别是手持设备如iphone,地理定位更加精确。首先我们要检测用户设备浏览器是否支持地理定位,如果支持则获取地理信息。注意这个特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是 不可用的,所以我们在访问该应用时会提示是否允许地理定位,我们当然选择允许即可,电脑端操作也是如此。

            这些位置信息是从何而来的呢?ip地址,GPS全球定位,wifi无线网络,基站,所以如果通过ip去定位的话,可能这个位置信息就不是那么准确,因为可能获取的位置信息是ip提供商的位置。所以,现在移动端手机一般获取到的位置信息都是基于GPS全球定位系统,也就是卫星定位,这个准确度很高。大家地理应该都学过,我们获取某处的位置一般是根据经度(南北极的连接线)和纬度(东西连接的线)的交叉线来获取的。

           接下来我们一起来了解获取地理位置信息的API,这个对象是:

    <span style="font-size:18px;">navigator.geolocation</span>
    这个对象底下有单次定位请求的方法和多次定位请求的方法。我们先看一下单次定位请求的方法:
    <span style="font-size:18px;">getCurrentPosition(请求成功,请求失败,数据手机方式)</span>

    这个方法里面有三个参数,其中第一个请求参数是请求成功的回调函数,这个成功的回调函数里面可以获得很多的位置属性,如下:
    »经度coords.longitude
    »纬度coords.latitude
    »海拔coords.altitude
    »海拔准确度coords.altitudeAcuracy
    »行进方向coords.heading
    »地面速度coords.speed
    »时间戳: new Date(position.timestamp)

    第二个请求参数是请求失败的回调参数,请求失败有很多因素,回调参数里有个code属性就分别表示失败的原因:
    »失败编号  code
    » 不包括其他错误编号中的错误
    » 用户拒绝浏览器获取位置信息
    » 尝试获取用户信息,但失败了
    »:   设置了timeout值,获取位置超时了

    第三个参数表示的是数据的一个收集,这是JSON格式的,分别有以下形式:
    »enableHighAcuracy 更精确的查找,默认false
    »timeout  获取位置允许最长时间,默认infinity
    »maximumAge位置可以缓存的最大时间,默认0

    具体的举个例子如下:

    <span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style>
    div{width:400px;height:400px;border:1px solid black;}
    </style>
    <script>
    window.onload = function(){
    	var oInput = document.getElementById('in1');
    	var oDiv = document.getElementById('box1');
    	
    	oInput.onclick = function(){
    	
    		window.navigator.geolocation.getCurrentPosition(function(position){
    			var longitude = position.coords.longitude;
    			var latitude =  position.coords.latitude;
    			var altitude = position.coords.altitude;
    			var altitudeAcuracy = position.coords.altitudeAcuracy;
    			var heading = position.coords.heading;
    			var speed = position.coords.speed;
    			var data = new Date(position.timestamp);
    			
    			oDiv.innerHTML = '经度:'+longitude+'/n纬度:'+latitude+'/n海拔'+altitude+"altitudeAcuracy"+altitudeAcuracy+"/n行走方向"+heading+'/n地面速度'+speed+'/n时间戳'+data;
    		},function(err){
    			alert(err.code);
    		},{
    			timeoenableHighAcuracy:false,
    			timeout : 5000,
    			maximumAge :5	
    		});
    			
    	};	
    };
    </script>
    </head>
    
    <body>
    <input type='button' value='获取地理位置信息' id='in1' />
    <div id='box1'> </div>
    </body>
    </html>
    </span>

    接下来我们再看一下多次定位请求的方法:

    <span style="font-size:18px;"> watchPosition(像setInterval)
    </span>

    »移动设备有用,位置改变才会触发
    »配置参数:frequency 更新的频率

    关闭更新请求 
    :
    <span style="font-size:18px;"> clearWatch(像clearInterval)</span>

    我们直接来看一个例子:

    <span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script>
    
    //LBS : 基于地图信息的应用
    
    window.onload = function(){
    	var oInput = document.getElementById('input1');
    	var oT = document.getElementById('t1');
    	
    	var timer = null;
    	
    	oInput.onclick = function(){
    		
    		timer = navigator.geolocation.watchPosition(function(position){
    			
    			oT.value += '经度:' + position.coords.longitude+'\n';
    			oT.value += '纬度 :' + position.coords.latitude+'\n';
    			oT.value += '准确度 :' + position.coords.accuracy+'\n';
    			oT.value += '海拔 :' + position.coords.altitude+'\n';
    			oT.value += '海拔准确度 :' + position.coords.altitudeAcuracy+'\n';
    			oT.value += '行进方向 :' + position.coords.heading+'\n';
    			oT.value += '地面速度 :' + position.coords.speed+'\n';
    			oT.value += '时间戳:' + new Date(position.timestamp)+'\n';
    				
    			
    		},function(err){
    			
    			//err.code // 失败所对应的编号
    			
    			alert( err.code );
    			
    			navigator.geolocation.clearWatch(timer);
    			
    		},{
    			enableHighAcuracy : true,
    			timeout : 5000,
    			maximumAge : 5000,
    			frequency : 1000
    		});
    		
    	};
    	
    };
    
    </script>
    </head>
    
    <body>
    <input type="button" value="请求" id="input1" /><br />
    <textarea id="t1" style="width:400px; height:400px; border:1px #000 solid;">
    </textarea>
    </body>
    </html>
    </span>
    最后,我们来看一下连接百度地图接口,做一个百度地图应用:

    <span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <style>
    #div1{ width:400px; height:400px; border:1px #000 solid;}
    </style>
    <script src="http://api.map.baidu.com/api?v=1.3"></script>
    <script>
    
    window.onload = function(){
    	var oInput = document.getElementById('input1');
    	
    	oInput.onclick = function(){
    		
    		navigator.geolocation.getCurrentPosition(function(position){
    			
    			var y = position.coords.longitude;
    			var x = position.coords.latitude;
    			
    			var map = new BMap.Map("div1");
    			
    			var pt = new BMap.Point(y, x);
    			
    			map.centerAndZoom(pt, 14);
    			map.enableScrollWheelZoom();
    			var myIcon = new BMap.Icon("miaov.png", new BMap.Size(30,30));
    			var marker2 = new BMap.Marker(pt,{icon:myIcon});  // 创建标注
    			map.addOverlay(marker2); 
    			
    			var opts = {
    			  width : 200,     // 信息窗口宽度
    			  height: 60,     // 信息窗口高度
    			  title : "北京航空航天大学"  // 信息窗口标题
    			}
    			var infoWindow = new BMap.InfoWindow("软件学院", opts);  // 创建信息窗口对象
    			map.openInfoWindow(infoWindow,pt); //开启信息窗口
    			
    			
    		});
    		
    	};
    	
    };
    
    </script>
    </head>
    
    <body>
    <input type="button" value="请求" id="input1" />
    <div id="div1"></div>
    </body>
    </html>
    </span>


          

    展开全文
  • 一般来说,通过GPS获得地理位置往往精确度较高,但是在通信条件不好的地方可能获取不到,而通过网络信息获取地理位置精度低于GPS,但是只要网络通畅,即可保证能获取到地理位置信息 想获取地理位置信息,首先要在...
     
    移动应用可以通过GPS或者网络的方式获取当前位置信息,一般来说,通过GPS获得地理位置往往精确度较高,但是在通信条件不好的地方可能获取不到,而通过网络信息获取地理位置精度低于GPS,但是只要网络通畅,即可保证能获取到地理位置信息
    想获取地理位置信息,首先要在AndroidManifest.xml中加入获取地理位置信息的权限,(ACCESS_FINE_LOCATION允许应用从网络信息中获取地理位置,ACCESS_COARSE_LOCATION允许应用从GPS中获取地理位置)
    uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
    uses-permission  android:name="android.permission.ACCESS_COARSE_LOCATION"
     
    获取地理位置信息的相关方法均被封装在android.location包中,常用的方法有两个,getLastLocation和requestLocationUpdates,前者获取上一次进行定位的地理位置,后者监听地理位置的变化
    getLastLocation:
    LocationManager locManger = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
            if(!manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
            /*提示用户打开允许获得地理位置信息选项*/
            } 
            //使用GPS获取地理位置
            Location loc = locManger.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            //使用网络信息获取地理位置
            Location loc = locManger.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
    
     
    requestLocationUpdates:
     LocationManager manager = (LocationManager) getApp().getSystemService(Context.LOCATION_SERVICE);
            if(manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {            //或者LocationManager.GPS_PROVIDER
                manager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new LocationListener() {    //或者GPS_PROVIDER
                    @Override
                    public void onLocationChanged(Location location) {
                        //To change body of implemented methods use File | Settings | File Templates.
                    }
    
                    @Override
                    public void onStatusChanged(String s, int i, Bundle bundle) {
                        //To change body of implemented methods use File | Settings | File Templates.
                    }
    
                    @Override
                    public void onProviderEnabled(String s) {
                        //To change body of implemented methods use File | Settings | File Templates.
                    }
    
                    @Override
                    public void onProviderDisabled(String s) {
                        //To change body of implemented methods use File | Settings | File Templates.
                    }
                });
            }
    
     
    展开全文
  • 微信小程序获取地理位置信息

    千次阅读 2018-09-12 11:23:47
    微信小程序官方文档提供了 wx.getlocation 方法来获取用户的地理位置信息,但是这个方法只能获取到用户的经度和纬度,具体城市名称还需要结合第三方地图(如腾讯地图、百度地图、高德地图等)来获取。 这里就先总结...
  • QT使用http get的方式得到指定的IP地址地理位置信息http://ip.taobao.com/service/getIpInfo.php?ip=[需要查询的IP],如输入IP192.168.1.1,得到地理位置为中国广东电信
  • 获取浏览器的地理位置信息

    千次阅读 2019-09-28 18:39:44
    有些应用程序需要获取用户的地理位置信息,比较经典的例子就是在显示地图时标注自己的当前位置。过去,获取用户的地理位置信息需要借助第三方地址数据库或专业的开发包(如Google Gears API)。HTML5定义了...
  • Unity获取GPS地理位置信息

    千次阅读 2019-08-21 23:10:27
    unity获取地理位置 因为项目功能需要,需要获取用户当前的位置信息,百度了一下,很多资料,发现都不能满足直自己的需求。于是整合了网上的资料,才满足自己的需求,说说需求吧:需要定位到玩家具体位置,具体到街道...
  • 利用IP得到地理位置信息 在现在这样的信息化社会,人们在访问互联网时总会留下痕迹。其中最多的就是IP数据 怎么样来利用IP数据来分析用户数据呢?其中最好挖掘的肯定非地理位置信息莫属了 地理位置信息有很多用途,...
  • 通过经纬度获取地理位置信息

    千次阅读 2017-11-17 17:06:14
    最近做一个车载设备app,设备获取北斗gps数据上传的到后台,app通过后台...获取地理位置url//Google public String getGoogleUrl(boolean isCn, String longitude,String latitude) { if (!isCn) { return "http://m
  • 最近做项目需要用到获取手机地理位置信息用Android自带的LocationManager和Location获取位置的时候,经常会有获取的location为null的情况(在室外能获取到位置信息,但在室内获取不到,如果你在室内或取不到位置信息...
  • 地理位置

    2017-11-23 00:00:00
    识别地理位置的一些应用就可以使用它来显示地图、导航和其他一些和用户当前位置相关的信息。当然,考虑到这些信息牵涉用户的隐私,支持地理位置API的浏览器在JavaScript程序获取用户物理位置前总是会询问用户是否...
  • 最近需要获取ip地址的地理位置信息(国家地区,经纬度等),就发现了maxmind。 maxmind提供了免费的可在本地部署的geo-ip数据库(GeoLite2)(mmdb以及csv格式),和geo-ip查询api服务 支持ipv4和ipv6的地理信息查询...
  • 获取地理位置定位信息-app端

    千次阅读 2019-07-18 14:21:08
    获取地理位置定位信息-app端 getLoad() { let site = {} let onSuccess = (position) => { site.code = 0 //获取经纬度 site.position = [position.coords.longitude, position.coords.latitude]...
  • Geo Location 地理位置信息小结

    千次阅读 2010-08-19 14:19:00
    一、通过 IP 地址获得用户的地理位置信息 二、通过 W3C Geo API 获得用户地理位置 三、移动领域
  • Location获取地理位置信息

    千次阅读 2011-10-24 20:02:33
    提供重要的地理位置信息服务 1 Location Manager 管理服务 2 Location Provider 提供数据的content provider 方式一:GPS 特点:精度高,耗电量大,不耗费流量 权限 方式二:NETWORK 特点:精度低,省电,需要...
  • html5实现获取地理位置信息并定位 一、总结 一句话总结:获取地理位置是分两步:获取经纬度和根据经纬度获取地址信息 a、HTML5的Geolocation(地理位置功能(Geolocation API))可以获取用户的经纬度 b、第三方...
  • 淘宝 api:http://ip.taobao.com/service/getIpInfo.php?ip=myip
  • 通过IP地址获取地理位置信息

    千次阅读 2019-01-21 14:21:07
    这里我用的阿里淘宝的接口 http://ip.taobao.com/service/getIpInfo.php?ip=218.201.8.37(已失效... } } } 运行结果: 欢迎访问本文的个人博客链接: https://br-bai.github.io/2019/01/21/通过IP地址获取地理位置信息/
  • java 经纬度解析地址地理位置信息

    千次阅读 2013-11-18 13:38:15
    * 根据经伟度得到详细的地址信息 * @param x * @param y * @throws IOException * @throws UnsupportedEncodingException */ public String getaddressforxybyGooglehttpconnection(String x,String y) ...
  • IP地址库解析的java实现——读取IP地址获得实际地理位置信息 说明:IP地址库来自QQwry.dat数据库文件,通过解析地址库当中的ip,获取ip地址对应的国家/省/市/运营商ISP信息。   解析主要用到三个类: (1)...
  • HTML5-geolocation IP 获取地理位置信息
  • H5带地理位置API获取地理位置

    千次阅读 2018-10-11 09:34:44
    是异步的,需要接受一个回调函数作为参数(还可以接受第二个参数,当获取失败后执行的回调,第三个参数是配置对象,包括是否需要高精度的位置信息位置信息的过期时间、允许在多长时间内获取位...
  • 微信获取用户地理位置信息的原理与步骤 在微信公众服务号开发需求中经常有获取用户位置信息的功能,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动。 下面通过给大家介绍微信服务号获取用户位置...
  • redis-GEO地理位置

    万次阅读 2017-11-29 19:38:45
    Redis 3.2版本一个重大的更新是新增了GEO地理位置相关的命令。 目前Redis对地理位置支持提供了一下6个命令: 1. geoadd: 增加地理位置的坐标。2. geodist: 获取两个地理位置的距离。3. geohash: 获取地理...
  • IOS 获取地理位置信息并逆向解析

    千次阅读 2016-03-17 23:42:43
    由于是初学者,思绪可能较乱,敬请见谅!...这里同样是获取地理位置信息,并用使用CLGeocoder逆向解析地址,获取具体地址。再从 CLPlacemark * plmark的各个属性中获取出自己想要的信息 }
  • ios获取地理位置信息

    千次阅读 2013-01-12 20:04:58
    // 两个委托方法,一个是成功获得具体的坐标。另一个是失败的时候的处理方法。 -( void )locationManager:( CLLocationManager *)manager didUpdateToLocation:( CLLocation *)newLocation fromLocation:...
  • html5通过获取用户设备的提供的wifi热点MAC地址,就可以查询到用户的地理位置信息,这是怎么做到的?此外,wifi热点的地理位置信息与用户设备之间不是还存在误差吗?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,062
精华内容 25,624
关键字:

如何获得地理位置信息