精华内容
下载资源
问答
  • RTK和GPS定位

    万次阅读 多人点赞 2018-06-25 15:32:46
    GPS定位的基本原理是,测量出已知位置的卫星到地面GPS接收器之间的距离,然后接收器通过与至少4颗卫星通讯,计算与这些卫星间的距离,就能确定其在地球上的具体位置。普通GPS的定位精度 ≥ 1米,信号误差有50%的概率...

    GPS定位的基本原理是,测量出已知位置的卫星到地面GPS接收器之间的距离,然后接收器通过与至少4颗卫星通讯,计算与这些卫星间的距离,就能确定其在地球上的具体位置。普通GPS的定位精度 ≥ 1米,信号误差有50%的概率会达到2米以上。这一点被手机GPS导航坑过的人肯定有所体会。另外,GPS无法支持精准定高,误差可能高达十几米。

    那么,GPS定位误差是怎么产生的呢?

    1、大气层影响:大气层中的电离层和对流层对电磁波的折射效应,使得GPS信号的传播速度发生变化,从而让GPS信号产生延迟。

    2、卫星星历误差:由于卫星运行中受到复杂的外力作用,而地面控制站和接收终端无法测定和掌握其规律,从而无法消除产生的误差。


    3、卫星钟差:卫星钟差是指GPS卫星时钟与GPS标准时间的差别。卫星上使用铯原子钟,所以两者的时间也许不同步,就像你的手表跟你家客厅挂钟的时间不同步一样

    4、多路径效应:GPS信号也有可能是在不同的障碍物上反射后才被接收到,这就是所谓的“多路径效应”。

    RTK (Real Time Kinematic), 即载波相位差分技术,它能够实时地提供测站点在指定坐标系中的三维定位结果,并达到厘米级精度。在RTK作业模式下,基站采集卫星数据,并通过数据链将其观测值和站点坐标信息一起传送给移动站,而移动站通过对所采集到的卫星数据和接收到的数据链进行实时载波相位差分处理(历时不足一秒),得出厘米级的定位结果

    而要理解RTK,得先知道“差分”是什么?

    差分就是把GPS的误差想方设法分离出。在已知位置的参考点上装上移动基站,就能知道定位信号的偏差。将这个偏差发送给需要定位的移动站,移动站就可以获得更精准的位置信息。


    作者:越楚
    链接:https://www.zhihu.com/question/57241255/answer/152142317
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    展开全文
  • 基站定位通过电信运营商的服务来实现的,至少你得有SIM卡吧,一般电脑是不会有电话功能的吧,所以,通过基站定位不可能。 GPS是需要有相应的硬件来支持的,类似于手机需要有GPS模块才可以,电脑一般没有GPS模块,...
    基站定位是通过电信运营商的服务来实现的,至少你得有SIM卡吧,一般电脑是不会有电话功能的吧,所以,通过基站定位不可能。 
    GPS是需要有相应的硬件来支持的,类似于手机需要有GPS模块才可以,电脑一般没有GPS模块,所以GPS也行不通。
    虽然Android系统是可以支持这些功能的,但是需要有相应的硬件支持
    摘自: http://zhidao.baidu.com/link?url=Pp4fWTXOkrV_eiicGr684m7wo3bQs1aHHw0F0DzU6hx0cKdQCuOFiU8o8Iyh35vsnkDLx4erfsCWZ0gkhF7i8_

    转载于:https://www.cnblogs.com/YangBinChina/p/3946320.html

    展开全文
  • 在用手机或平板拍照时,需要打开GPS定位服务功能,就可以通过你的照片查看出你的拍摄地点了。2. 照片必须是原图,通过QQ、微信上传压缩后的图片就是不原图了。原图必须是用数据线将手机或平板...
    f047ce7a4815d81313a6ba4a7987bbca.png

    我们旅游结束后,在整理旅行期间照片时有可能忘记了具体的拍摄地点,那么有没有办法根据照片的属性来确定拍摄地点呢?答案是肯定的。下面就分享具体的查询照片拍摄地点方法。

    根据照片属性查询照片拍摄地点的前提条件有四个:

    1. 在用手机或平板拍照时,需要打开GPS定位服务功能,就可以通过你的照片查看出你的拍摄地点了。

    2. 照片必须是原图,通过QQ、微信上传压缩后的图片就是不原图了。原图必须是用数据线将手机或平板连接到电脑上后传送的图片。

    3.必须 在电脑上进行查询操作。

    4. 电脑上安装有Google earth(谷歌地图)软件。

    只有满足了以上四个条件后,便可依据照片属性查看拍摄地点。

    一、查看照片的属性

    下面这张图片是小编2018年8月自驾游西藏时拍摄的一张照片,以此张照片为例介绍具体查看拍摄地点的方法:

    f7b5039d73204c84c1db64b44eebea31.png

    在该张图片上右键单击,在弹出的菜单最下方选择【属性】命令,在随之弹出的图片【属性】窗口上再选择【详细信息】选项卡。在【详细信息】窗口中可看到图片的拍摄日期、分辨率、拍摄手机型号、纬度、经度、海拔高度、文件格式等信息。如下图所示:

    e4f69742eec9429f0297985c2e5a66c1.png
    b190c606804b374ce43547f4cbe0165b.png

    在这些图片详细信息里,最为重要的是纬度和经度(若关闭的手机的GPS功能,在详细信息中不显示此项),该例:纬度:29;45;34.0090000000056136 即29°45'34.00",经度:94;44;30.3623999999837224即94°44'30.36"。

     二、利用图片的经纬度信息查看拍摄地点

    有了经纬度信息就可以实行全球定位了。这里需要电脑上安装最新版的谷歌地图——Google earth。

    打开Google earth,在菜单栏点击【添加】选项,在下拉菜单中再选择【地标】命令,在弹出的【新建地标】窗口中,名称命名为【查看照片拍摄地点】(随意命名),输入的纬度29°45'34.00",经度94°44'30.36"后 ,点击【确定】后,等会儿探索定位后,放大地图就可定位到这张照片的拍摄地点了。该例的这张照片拍摄地点是西藏林芝地区附近。这张照片实际是小编在西藏林芝地区鲁朗风景区拍摄的,与查询的拍摄地点相符。如下图所示:

    c40966278bd00658d12c2f69f18aeb53.png
    25f69bba5dc98d37663b6b601c68577f.png
    df2bf482dcd37c8a79f394ba04ba6aa5.png
    58dec6baa1bfc855272f7d49b307d327.png

    以上是今天分享的查询照片拍摄地点的方法。欢迎转发、收藏和评论。多谢阅读、关注。

    a5fa0adf1a43dd15d5d7f6f883bb583f.png
    展开全文
  • Android定位 (一 Gps)

    2015-12-04 08:38:41
    备注:Gps定义,首先需要手机的LBS硬件的支持,再者它是通过卫星来进行定位的,所以在此可以获取区域内的卫星信息,故室内使用Gps定位可能会出现一些问题(搜索不到卫星信息之类的情况)。 Gps定位中涉及到的系统管理...

    因为业务原因没怎么接触过Android定位这一块的内容,所以为了避免遗忘,将相关内容放到自己的博客,方便以后使用,查找。
    备注:Gps定义,首先需要手机的LBS硬件的支持,再者它是通过卫星来进行定位的,所以在此可以获取区域内的卫星信息,故室内使用Gps定位可能会出现一些问题(搜索不到卫星信息之类的情况)。
    Gps定位中涉及到的系统管理类:LocationManager(位置管理)
    注:权限

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <!-- 获取LBS硬件的权限 -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    下面大家可以看一下主要代码,在这块是放到service里面写的如果想要使用,可以直接使用这个service,注册启动

    package com.camerademo.service;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    
    import android.app.Service;
    import android.content.Intent;
    import android.location.GpsSatellite;
    import android.location.GpsStatus;
    import android.location.GpsStatus.Listener;
    import android.location.Criteria;
    import android.location.Location;
    import android.location.LocationListener;
    import android.location.LocationManager;
    import android.location.LocationProvider;
    import android.os.Bundle;
    import android.os.IBinder;
    import android.util.Log;
    
    public class GpsService extends Service{
        private LocationManager locationManager;    //Location管理对象
        private GpsStatus gpsStatus;                //当前设备的GPS状态
        private Location curLocation;               //当前最后一次..
        private boolean stop = false;
        @Override
        public IBinder onBind(Intent intent) {
            // TODO Auto-generated method stub
            return null;
        }
        @Override
        public void onCreate() {
            // TODO Auto-generated method stub
            super.onCreate();
            Log.e("GpsService", "Create");
            startGps();
        }
        @Override
        public void onDestroy() {
            // TODO Auto-generated method stub
            super.onDestroy();
            stop = true;
            Log.e("GpsService", "Destroy");
        }
        private void startGps(){
            locationManager = (LocationManager)this.getSystemService(LOCATION_SERVICE);
            //根据设置的Criteria对象,获取最符合此标准的provider对象 Gps
            //Gps使用到一个关键属性Provider的值:LocationManager.GPS_PROVIDER
            final String curProvider = locationManager.getProvider(LocationManager.GPS_PROVIDER).getName();
            //通过provider 获取最新的定位
            curLocation = locationManager.getLastKnownLocation(curProvider);
            //如果位置信息为null,则请求更新位置信息
            if(curLocation == null){
                // 绑定监听,有4个参数  
                // 参数1,设备:有GPS_PROVIDER和NETWORK_PROVIDER两种  
                // 参数2,位置信息更新周期,单位毫秒  
                // 参数3,位置变化最小距离:当位置距离变化超过此值时,将更新位置信息  
                // 参数4,监听  
                // 备注:参数2和3,如果参数3不为0,则以参数3为准;参数3为0,则通过时间来定时更新;两者为0,则随时刷新  
                // 1秒更新一次,或最小位移变化超过1米更新一次;
                locationManager.requestLocationUpdates(curProvider, 0, 0, locationListener);
            }
            locationManager.addGpsStatusListener(statusListener);
            String cur = locationManager.getBestProvider(getCriteria(), true);
            new Thread(new Runnable() {
                @Override
                public void run() {
                    while(!stop){
                        curLocation = locationManager.getLastKnownLocation(curProvider);
                        //curLocation = locationManager.getLastKnownLocation(cur);
                        //设置查询条件过滤Provider
                        if(curLocation != null){
                            Log.e("GPS-location", "经度:"+curLocation.getLongitude());
                            Log.e("GPS-location", "纬度:"+curLocation.getLatitude());
                        }else{
                            Log.e("GPS-location", "经度:未知");
                            Log.e("GPS-location", "纬度:未知");
                        }
                        try {
                            Thread.sleep(5000);
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }               
                }
            }).start();
        }
        //GPS's status is changed
        private Listener statusListener = new Listener() {
            @Override
            public void onGpsStatusChanged(int event) {
                // TODO Auto-generated method stub
                gpsStatus = locationManager.getGpsStatus(null);
                switch(event){
                //首次定位
                case GpsStatus.GPS_EVENT_FIRST_FIX:
                    Log.e("GPS-status", "gps first is started");
                    break;
                    //开始定位
                case GpsStatus.GPS_EVENT_STARTED:
                    Log.e("GPS-status", "gps is started");
                    break;
                    //卫星信息(卫星状态改变)
                case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
                    Log.e("GPS-status", "gps send status");
                    //GpsStatellite  定位卫星  封装了卫星相关信息
                    Iterator<GpsSatellite> it=gpsStatus.getSatellites().iterator();
    
                    ArrayList<GpsSatellite> statellites = new ArrayList<GpsSatellite>();
                    int count=0;     
                    int maxSatellites=gpsStatus.getMaxSatellites();
                    while (it.hasNext() && count <= maxSatellites) {       
                        GpsSatellite satellite = it.next();       
                        statellites.add(satellite);       
                        count++;     
                    }      
                    Log.e("GPS", "搜索到"+count+"颗卫星");
                    //输出卫星信息      
                    for(int i=0;i<statellites.size();i++){     
                        //卫星的方位角,浮点型数据      
                        System.out.println(statellites.get(i).getAzimuth());     
                        //卫星的高度,浮点型数据      
                        System.out.println(statellites.get(i).getElevation());     
                        //卫星的伪随机噪声码,整形数据      
                        System.out.println(statellites.get(i).getPrn());     
                        //卫星的信噪比,浮点型数据      
                        System.out.println(statellites.get(i).getSnr());     
                        //卫星是否有年历表,布尔型数据      
                        System.out.println(statellites.get(i).hasAlmanac());     
                        //卫星是否有星历表,布尔型数据      
                        System.out.println(statellites.get(i).hasEphemeris());     
                        //卫星是否被用于近期的GPS修正计算      
                        System.out.println(statellites.get(i).hasAlmanac());     
                    }  
                    break;
                    //结束定位
                case GpsStatus.GPS_EVENT_STOPPED:
                    Log.e("GPS-status", "gps is stoped");
                    break;
                }
            }
        };
        //location变化的监听(经纬度)----同时适用于  1.Gps2.netWork
        private LocationListener locationListener = new LocationListener() {
            //设备GPS状态
            @Override
            public void onStatusChanged(String provider, int status, Bundle extras) {
                // TODO Auto-generated method stub
                switch(status){
                case LocationProvider.AVAILABLE:
                    Log.e("Local-Gps-status", "Gps可用(可见)");
                    break;
                    //不再服务区
                case LocationProvider.OUT_OF_SERVICE:
                    Log.e("Local-Gps-status", "Gps不在服务区");
                    break;
                    //GPS暂停服务
                case LocationProvider.TEMPORARILY_UNAVAILABLE:
                    Log.e("Local-Gps-status", "Gps暂停服务");
                    break;
                }
            }
    
            @Override
            public void onProviderEnabled(String provider) {
                Location curLocation = locationManager.getLastKnownLocation(provider);
                Log.e("location-provider-enabled", "经度:"+curLocation.getLongitude());
                Log.e("location-provider-enabled", "纬度:"+curLocation.getLatitude());
            }
    
            @Override
            public void onProviderDisabled(String provider) {
                // TODO Auto-generated method stub
                Location curLocation = locationManager.getLastKnownLocation(provider);
                Log.e("location-provider-disabled", "经度:"+curLocation.getLongitude());
                Log.e("location-provider-disabled", "纬度:"+curLocation.getLatitude());
            }
    
            @Override
            public void onLocationChanged(Location location) {
                // TODO Auto-generated method stub
                Log.e("location-changed", "经度:"+location.getLongitude());
                Log.e("location-changed", "纬度:"+location.getLatitude());
            }
        };
        /** 
         * 返回查询条件 
         * 获取Provider时候可通过Criteria设置条件过滤
         * @return 
         */  
        private Criteria getCriteria() {  
            Criteria criteria = new Criteria();  
            // 设置定位精确度 Criteria.ACCURACY_COARSE比较粗略,Criteria.ACCURACY_FINE则比较精细  
            criteria.setAccuracy(Criteria.ACCURACY_FINE);  
            // 设置是否要求速度  
            criteria.setSpeedRequired(false);  
            // 设置是否允许运营商收费  
            criteria.setCostAllowed(false);  
            // 设置是否需要方位信息  
            criteria.setBearingRequired(false);  
            // 设置是否需要海拔信息  
            criteria.setAltitudeRequired(false);  
            // 设置对电源的需求  
            criteria.setPowerRequirement(Criteria.POWER_LOW);  
            return criteria;
        } 
    }
    展开全文
  • lbs服务比较火,基本上都需要定位用户的地理信息,用户地理信息一般是通过gps定位实现的,那么假如 用户的gps坏了,或者没有开启,那么怎么获得用户的地理信息的呢?替代的办法就是可以获得手机真实ip信息来...
  • 现在lbs服务比较火,基本上都需要定位用户的地理信息,用户地理信息一般是通过gps定位实现的,那么假如 用户的gps坏了,或者没有开启,那么怎么获得用户的地理信息的呢?替代的办法就是可以获得手机真实ip信息来...
  • 现在lbs服务比较火,基本上都需要定位用户的地理信息,用户地理信息一般是通过gps定位实现的,那么假如 用户的gps坏了,或者没有开启,那么怎么获得用户的地理信息的呢?替代的办法就是可以获得手机真实ip信息来...
  • 北斗导航 | RTK定位

    千次阅读 2019-09-13 21:14:34
    GPS定位的基本原理是,测量出已知位置的卫星到地面GPS接收器之间的距离,然后接收器通过与至少4颗卫星通讯,计算与这些卫星间的距离,就能确定其在地球上的具体位置。普通GPS的定位精度 ≥ 1米,信号误差有50%的概率...
  • 最近学了Android开发的一些基本理论和几个App例子,想...通过手机自带的GPS定位获取当前的经纬度  2.根据经纬度在在百度地图里面对比,获取该经纬度的具体位置是在哪里 我有以下几个问题:  1.第三方库是怎么
  • 请把你的烦恼交给QQ:1751312901 专业手机查找团队帮你处理,专业的定位团队可以通过GPS卫星定位帮你找回爱机。 手机找回手机功能使用教程方法1:拿到手机之后,进入手机设置,然后进入云服务设置,然后开启找回手机功能。...
  • 请把你的烦恼交给QQ:1751312901 专业手机查找团队帮你处理,专业的定位团队可以通过GPS卫星定位帮你找回爱机。 手机找回手机功能使用教程方法1:拿到手机之后,进入手机设置,然后进入云服务设置,然后开启找回手机功能。...
  • 请你及时联系QQ 【2426945020】把你的问题叫给我们...当记者问及,Iphone7掉了怎么找回来他解析到,通过卫星GPS定位是目前找回iphone手机最主流的方法,大部分希望找回丢失iphone手机的客户都乐意选择这种方法。而且目
  • 手机都有gps和网络,通过gps或者网络可以定位到自己,然后通过百度,腾讯啊之类的地图可以显示我们的地理位置。这里学习下百度地图的使用。首先就是要申请开发者了,这个详细就不多讲了。...可以参考这里,详细介绍了...
  • 大家有没有遇到过这样一个场景,当你出国游玩的时候到了一个国家时你的手机就自动提示你在哪里是否需要切换时区,或者是地图定位时机器没有GPS芯片怎么通过网络定位获取经纬度等信息,这个时候我们能够获取到最好的属性...
  • 那么在Android客户端用户登录时,可以通过GPS取得用户登录所在地,比如取得:湖南长沙望城县xxx区xxx街道...;那么需求就是在哪个地区登录的用户只能看哪个地区的视频;这样子我在服务端录入的时候给视频的地址是 ...
  • RTK

    2019-07-25 13:56:49
    GPS定位的基本原理是,测量出已知位置的卫星到地面GPS接收器之间的距离,然后接收器通过与至少4颗卫星通讯,计算与这些卫星间的距离,就能确定其在地球上的具体位置。普通GPS的定位精度 ≥ 1米,信号误差有50%的概率...
  • Core Location示例代码

    2021-04-04 21:22:14
    Core Location能够定位到用户的位置靠的是Wifi定位,蜂窝基站定位和GPS定位。具体的定位方式不需要开发者考虑,iPhone会根据不同场景选择不同定位方式。 那下面我们就来用示例程序看一下在项目中Core Location应该...
  • 楼主是一名Abaper,最近看到有小伙伴需求:客户的APP有定位功能,每当打开手机打开GPS时,就会每隔五分钟,将定位点上传到高德猎鹰服务器。然后SAP端通过轨迹ID,调用猎鹰接口获取轨迹;但通过高德地图获取的定位点...
  • 大家有没有遇到过这样一个场景,当你出国游玩的时候到了一个国家时你的手机就自动提示你在哪里是否需要切换时区,或者是地图定位时机器没有GPS芯片怎么通过网络定位获取经纬度等信息,这个时候我们能够获取到最好的...
  • 全球IP库-GeoLite2-City 大家有没有遇到过这样一个场景,当你出国游玩的时候到了一个国家时你的手机就自动提示你在哪里是否需要切换时区,或者是地图定位时机器没有GPS芯片怎么通过网络定位获取经纬度等信息,这个时候...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

怎么通过手机gps定位