精华内容
下载资源
问答
  • Google地图定位

    千次下载 热门讨论 2013-01-04 18:11:47
    C#中winform开发的地图定位 可以定位经纬度或是通过经纬度查找地址 也可以查询两个经纬度间的球面距离 还有路线搜索
  • 高德地图定位

    千次下载 热门讨论 2016-05-26 19:58:39
    实现高德地图定位
  • C#中winform开发的地图定位-Google地图定位
  • 百度地图定位,高德地图定位

    千次阅读 2016-04-12 20:38:39
    Android之百度地图定位,高德地图定位问题 最近几天我们的客户给我们反应说,app中的百度地图定位有误差,不能准确的定位到实时位置,而用微信里面的定位就能准确的定位到具体门牌号,然后就说是我们的问题,需要处理...

    Android之百度地图定位,高德地图定位

    问题

    最近几天我们的客户给我们反应说,app中的百度地图定位有误差,不能准确的定位到实时位置,而用微信里面的定位就能准确的定位到具体门牌号,然后就说是我们的问题,需要处理(因为我们的app对定位精度要求比较高,必须准确到号牌)

    思路

    [1].刚开始听到这个问题觉得不应该,百度地图不可能有问题,一种分析是SDK版本太老了,核对之后发现是较新的jar
    [2].之后同事让我集成一个高德地图的demo,看一看高德地图定位效果如何,集成之后发现高德地图有的时候也会出现位置偏差,偏差还蛮大,于是排除了这种可能
    [3].后来在两台手机上定位效果也是不同的,一台有SIM卡,一台没有,发现有卡的手机很多时候都能定位到比较精确的位置(误差范围内),然后调到飞行模式连接wifi,发现也有问题,就想到可能是基站定位取代了GPS定位导致误差
    [4].之后就随意看以一下博客,逐渐的查到了误差较大的原因,原因就是在不同的定位条件下,精确度是不同的

    查资料

    之前集成百度地图,对一些定位知识没有太去关注,原来定位有4中方式:
    [1].GPS定位
    [2].WIFI定位
    [3].基站定位
    [4].AGPS定位
    定位具体有什么特点我就不做介绍了,相关的博客有很多,有一点强调的就是GPS定位通常要比其他定位要精确,同时GPS定位在室内信号很微弱,几乎不能定位室内

    解决

    有了上面的了解之后,我们知道GPS不能定位室内,因此在室内走的是其他定位,精确度会差一些(那哥们测试一直是在室内,定位不到门牌号就正常了);找到原因后就和同事商量解决办法,经过一番讨论后,采取了保存最近一次GPS定位的地址,当位置更新时,在回调里面判断这次位置更新是GPS还是其他,如果是GPS,更新地址,否则使用保存的地址(如果用户一直在室内的话,这个误差也解决不了),具体代码如下:

    `public void onReceiveLocation(BDLocation location) {

        if (latitude != 0 || longitude != 0) {
    
                if (location.getLatitude() - latitude == 0 || location.getLongitude() -longitude == 0) {
    
                    // 经纬度没有改变
                    return;
                }
            }
            StringBuffer sb = new StringBuffer(256);
    
            sb.append("\nlatitude : ");
            sb.append(location.getLatitude());// 获得纬度
            sb.append("\nlontitude : ");
            sb.append(location.getLongitude());// 获得经度
            sb.append("\nradius : ");
            sb.append(location.getRadius());
            latitude = location.getLatitude();
            longitude = location.getLongitude();
    
            if (location.getLocType() == BDLocation.TypeGpsLocation) {
    
                // 通过GPS定位
                sb.append(location.getAddrStr());// 获得当前地址
                sb.append(location.getDirection());// 获得方位
                // 记录GPS地址
                mGpsAddress = location.getAddrStr();
                resultLocationInfo(latitude, longitude, mGpsAddress);
    
            } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {
    
                // 通过网络连接定位
    
                sb.append(location.getAddrStr());// 获得当前地址
                if (mGpsAddress == null) {
    
                    // 非GPS
                    resultLocationInfo(latitude, longitude, location.getAddrStr());
                } else {
                    // GPS传最近一次GPS更新的地址
                    resultLocationInfo(latitude, longitude, mGpsAddress);
                }
            }
        }`
    

    以上解决是我们自己的解决方案,可能欠妥,如果大家有更加好的解决办法,请指正!

    展开全文
  • ios 地图定位 demo

    2014-08-11 16:59:07
    实现iOS地图定位功能,制作的的小demo,其中涵盖的功能基本地图定位.
  • 实现 Android 集成百度地图定位功能与地图展示功能
  • Qt4 百度地图 定位

    热门讨论 2014-06-18 11:50:29
    用Qt4,使用百度地图api写的,地图定位显示,单个点定位,多个点连线定位。主要是这些功能,更多的可以自己完善
  • android 百度地图定位自己位置

    热门讨论 2012-04-25 23:50:09
    百度地图定位自己的位置~ 有需要的下载,
  • iOS | 地图定位

    千次阅读 2018-04-25 22:19:42
    在IOS开发中,最常见的功能之一就是地图定位功能,不单单是百度地图,高德地图等专业的地图导航软件,还有美团,咕咚等一些美食购物类和运动类也需要这样的功能,所以学会这项技能是一名IOS开发工程师必须的。百度地图咕咚...

    在IOS开发中,最常见的功能之一就是地图定位功能,不单单是百度地图,高德地图等专业的地图导航软件,还有美团,咕咚等一些美食购物类和运动类也需要这样的功能,所以学会这项技能是一名IOS开发工程师必须的。

    百度地图
    咕咚
    �美团
    分享一些比较基础的关于定位方面的小知识.

    关于定位有两个框架
    1.CoreLocation ---->用于地理定位
    2.Map Kit ---->用于地图展示

    两个热词:

    LBS: location based service
    SLM: social local mobile

    使用CoreLocation定位

    首先在之前需要导入corelocation框架,然后在头文件导入corelocation.h头文件.
    注意:coordinate是坐标,latitude是纬度,longitude是经度.

    - (void)viewDidLoad {
        [super viewDidLoad];
        
        // 1.创建位置管理者
        CLLocationManager *locationManager = [[CLLocationManager alloc] init];
        self.locationManager = locationManager;
        // 在iO8之前,只要导入CoreLocation 会自动申请权限
        // 在iOS8之后需要程序员手写
        
        // 2.请求用户授权    必须要配置info.plist文件
        //在info里面配置NSLocationAlwaysUsageDescription或者
        //NSLocationWhenInUseUsageDescription
        // 请求app始终授权  无论程序在前台还是在后台运行  都可以使用定位
    //    [locationManager requestAlwaysAuthorization];
        // 请求app在使用期间授权   在前台使用时才可以使用定位
        [locationManager requestWhenInUseAuthorization];
        
        if ([UIDevice currentDevice].systemVersion.floatValue >= 9.0) {
            // 临时开启后台定位  配置info.plist文件  不配置直接崩溃
            locationManager.allowsBackgroundLocationUpdates = YES;
        }
        // 3.设置属性(两个属性是为了让程序可以持续的进行定位)
    //    // 距离筛选  单位:米  当用户移动100.5米后调用定位方法
    //    locationManager.distanceFilter = 100.5;
    //    // 期望精度  单位:米  系统默认将100米范围内作为一个位置
    //    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        // 4.设置代理
        locationManager.delegate = self;
        // 5.开启定位
        [locationManager startUpdatingLocation];
        // 开始更新移动方向
    //    [locationManager startUpdatingHeading];
    
    
    //代理方法,一旦开启定位,会自动调用这个代理方法
    - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
    {
        // 获取数据
    //    NSLog(@"%@",locations);
        // 停止定位  省电
    //    [manager stopUpdatingLocation];
    }
    
    
    
    // 比较位置的距离  比较的是两点之间的直线距离
    - (void)compareDistance
    {
        // 北京的位置
        CLLocation *location = [[CLLocation alloc] initWithLatitude:39 longitude:115];
        // 上海的位置
        CLLocation *location1 = [[CLLocation alloc] initWithLatitude:30 longitude:120];
        // 比较北京到上海的位置(直线距离)
        double distance = [location distanceFromLocation:location1];
        // 单位:米
        NSLog(@"%f",distance / 1000);
    }
        
    
    使用MapKit定位

    修改地图类型 mapView.mapType
    地图实时交通状态 mapView.showsTraffic
    设置用户跟踪模式 mapView.userTrackingMode
    代理方法,
    //显示在地图中用户定位的位置

    -(void)mapView:(MKMapView\*)mapView didUpdateUserLocation:(MKUserLocation \*)userLocation
    

    //获取实时地图变化的区域变化(中心点,区域跨度)

    -(void)mapView:(MKMapView \*)mapView regionDidChangeAnimated:(BOOL)animated
    

    注意:这里需要导入的是MapKit框架和MapKit.h头文件.

    - (void)viewDidLoad {
        [super viewDidLoad];
         
        // 修改地图类型
        /*
         MKMapTypeStandard    标准(默认)
         MKMapTypeSatellite   卫星
         MKMapTypeHybrid      混合
         MKMapTypeSatelliteFlyover  在中国暂时不能使用
         MKMapTypeHybridFlyover  在中国暂时不能使用
         */
        self.mapView.mapType = MKMapTypeStandard;
        
        // 实时交通状况 iOS9新增
        self.mapView.showsTraffic = YES;
        
        // 创建位置管理者
        self.locationManager = [[CLLocationManager alloc] init];
        // 请求用户授权  配置info.plist
        [self.locationManager requestWhenInUseAuthorization];
        // 设置用户的跟踪模式
        /*
         MKUserTrackingModeFollow  跟踪用户的位置   MKUserTrackingModeFollowWithHeading  跟踪用户的位置和方向
         */
        self.mapView.userTrackingMode = MKUserTrackingModeFollow;
        
        // 设置代理
        self.mapView.delegate = self;
    }
    
    // 跟踪到用户位置时调用
    // mapView:地图
    // userLocation:用户位置的大头针模型
    - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
    {
        // 1.反地理编码
        // 1.1创建地理编码对象
        CLGeocoder *geocoder = [[CLGeocoder alloc] init];
        // 1.2反地理编码
        [geocoder reverseGeocodeLocation:userLocation.location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
            // 1.3防错处理
            if (error) {
                NSLog(@"%@",error);
                return ;
            }
            // 1.4获取地标
            CLPlacemark *placemark = [placemarks firstObject];
            // 2.给标题和子标题赋值
            userLocation.title = placemark.locality;
            userLocation.subtitle = placemark.name;
        }];
    }
    
    
    // 回到当前用户的位置
    - (IBAction)backToCurrentLocation
    {
        
        // 获取当前的跨度
        MKCoordinateSpan span = MKCoordinateSpanMake(0.024967, 0.015407);
        // 设置回到用户刚开始的区域 region(结构体) --1.中心点经纬度(结构体)--> 经度和纬度  2.经纬度跨度(结构体)-->经度跨度和纬度跨度
        // 设置区域并使用动画
        [self.mapView setRegion:MKCoordinateRegionMake(self.mapView.userLocation.location.coordinate, span) animated:YES];
    }
    
    
    - (IBAction)biggerMap
    {
        // 修改经纬度跨度
        CGFloat latitudeDelta = self.mapView.region.span.latitudeDelta * 0.5;
        CGFloat longitudeDelta = self.mapView.region.span.longitudeDelta * 0.5;
        MKCoordinateSpan span = MKCoordinateSpanMake(latitudeDelta, longitudeDelta);
        // 确定放大地图后的区域
        [self.mapView setRegion:MKCoordinateRegionMake(self.mapView.centerCoordinate, span) animated:YES];
    }
    - (IBAction)smallerMap
    {
        // 修改经纬度跨度
        CGFloat latitudeDelta = self.mapView.region.span.latitudeDelta * 2;
        CGFloat longitudeDelta = self.mapView.region.span.longitudeDelta * 2;
        MKCoordinateSpan span = MKCoordinateSpanMake(latitudeDelta, longitudeDelta);
        [self.mapView setRegion:MKCoordinateRegionMake(self.mapView.centerCoordinate, span) animated:YES];
    }
    

    演示

    效果演示

    说到底,其实苹果官方的框架已经做得不错了,该有的功能基本都具备,而且使用起来不是怎么困难,掌握起来也非常快.我这里只是分享一些比较基础的功能,欢迎工程师们赐教.
    另外附上地理编码的小演示.

    地理编码.gif
    展开全文
  • android 百度地图定位系统 源码

    热门讨论 2014-06-21 13:59:27
    android 百度地图定位系统 源码 动态获取目标位置,自动定位
  • 百度地图定位技术

    千次阅读 2018-06-18 08:40:10
    百度地图定位技术 LBS(Location Based Service,基于位置的服务)的三大目标是:你在哪里;你和谁在一起;附近有什么资源。其中『你在哪里』是LBS服务的核心。 百度智能定位服务,是为了帮助广大开发者更好解决...

    百度地图定位技术

    LBS(Location Based Service,基于位置的服务)的三大目标是:你在哪里;你和谁在一起;附近有什么资源。其中『你在哪里』是LBS服务的核心。

    百度智能定位服务,是为了帮助广大开发者更好解决『你在哪里』这个难题而开放的服务。支持GPS、WiFi、基站融合定位,完美支持各类应用开发者对位置获取的诉求。

    百度地图开放平台定位服务是广大开发者定位首选服务,每日定位请求超过300亿次,开发者市场占有率超过70%。

    不小心给百度打广告了,没办法别人做的产品就是那么优秀。

    1、浏览器定位经纬度,精准定位到省市街

    var geolocation = new BMap.Geolocation();
        geolocation.getCurrentPosition(function(r){
          console.log(r)
            if(this.getStatus() == BMAP_STATUS_SUCCESS){
                var mk = new BMap.Marker(r.point);
                map.addOverlay(mk);
                map.panTo(r.point);
                alert('您的经纬度:'+r.point.lng+','+r.point.lat);
              alert('您的位置:'+r.address.province+','+r.address.city
                   +','+r.address.district+','+r.address.street+','+r.address.street_number);
            }
            else {
                alert('failed'+this.getStatus());
            }        
        },{enableHighAccuracy: true})
        //关于状态码
        //BMAP_STATUS_SUCCESS   检索成功。对应数值“0”。
        //BMAP_STATUS_CITY_LIST 城市列表。对应数值“1”。
        //BMAP_STATUS_UNKNOWN_LOCATION  位置结果未知。对应数值“2”。
        //BMAP_STATUS_UNKNOWN_ROUTE 导航结果未知。对应数值“3”。
        //BMAP_STATUS_INVALID_KEY   非法密钥。对应数值“4”。
        //BMAP_STATUS_INVALID_REQUEST   非法请求。对应数值“5”。
        //BMAP_STATUS_PERMISSION_DENIED 没有权限。对应数值“6”。(自 1.1 新增)
        //BMAP_STATUS_SERVICE_UNAVAILABLE   服务不可用。对应数值“7”。(自 1.1 新增)
        //BMAP_STATUS_TIMEOUT   超时。对应数值“8”。(自 1.1 新增)

    这里写图片描述
    2、将多个经纬度标注到地图中

    var index = 0;
        var myGeo = new BMap.Geocoder();
        var mycars = ['113.307852,23.057031','113.313082,23.047674','113.328749,23.026922'];
        var adds = [];
        for (var x in mycars) {
            var mycar = mycars[x].split(",");
            adds[x] = new BMap.Point(mycar[0],mycar[1]);
        }
        /*var adds = [
            new BMap.Point(113.307852,23.057031),
            new BMap.Point(113.313082,23.047674),
            new BMap.Point(113.328749,23.026922),
            new BMap.Point(113.347571,23.988698),
            new BMap.Point(113.316163,23.997753),
            new BMap.Point(113.345867,23.998333),
            new BMap.Point(113.403472,23.999411),
            new BMap.Point(113.307901,23.05901)
        ];*/
        for(var i = 0; i<adds.length; i++){
            var marker = new BMap.Marker(adds[i]);
            map.addOverlay(marker);
            //marker.setLabel(new BMap.Label("街道",{offset:new BMap.Size(20,-10)}));
        }

    这里写图片描述
    3、如果你不喜欢红色,可以更换新的标注

    var myIcon = new BMap.Icon("http://lbsyun.baidu.com/jsdemo/img/fox.gif", new BMap.Size(300,157));
        var mycars = ['113.307852,23.057031','113.313082,23.047674','113.328749,23.026922'];
        var adds = [];
        for (var x in mycars) {
            var mycar = mycars[x].split(",");
            adds[x] = new BMap.Point(mycar[0],mycar[1]);
        }
        for(var i = 0; i<adds.length; i++){
            var marker = new BMap.Marker(adds[i],{icon:myIcon});
            map.addOverlay(marker);
        }

    这里写图片描述
    4、根据地址查询出地图具体位置和街景图

    function searchMap(){
            var address = $("#searchAddress").val();
            local.search(address);
        }
    
        function searchMap2(){
            var start = $("#startAddress").val();
            var end = $("#endAddress").val();
            map.clearOverlays(); 
            search(start,end,routePolicy[0]); 
            function search(start,end,route){ 
                transit.setPolicy(route);
                transit.search(start,end);
            }
        }

    这里写图片描述

    艳辉网的业务之一便是精准定位,这只是前端一小部分的定位,还有后台的web定位api。
    只需一个ip,既能定位到省市街。
    用法:

    String ip = "223.73.53.92";
    
            BaiduMap map = _mapUtil.getBaiduAddress();
            if(map != null){
                //经度
                String x = map.getContent().getPoint().getX()+"";
                //纬度
                String y = map.getContent().getPoint().getY()+"";
                String province = map.getContent().getAddress_detail().getProvince();
                String city = map.getContent().getAddress_detail().getCity();
                String location = y+","+x;
                Map<String, String> map2 = _mapUtil.getLatAndLngByAddress2(location);
                String address = map2.get("address");
                System.out.println(x+","+y+","+address+","+province+","+city);
            }

    除了百度定位,我们还提供淘宝、新浪、腾讯、高德、搜狐定位等。
    需要源码可“艳辉网”微信公众号回复“java161”,极品源码get到家。

    提示:

    <script type="text/javascript">
    $(function(){
        //获取城市ajax
        $.ajax({
        url: 'http://api.map.baidu.com/location/ip?ak=ia6HfFL660Bvh43exmH9LrI6',  
        type: 'POST',  
        dataType: 'jsonp',
        success:function(data) {  
            console.log(JSON.stringify(data.content.address_detail.province + "," + data.content.address_detail.city));
            $('#city').html(JSON.stringify(data.content.address_detail.province + "," + data.content.address_detail.city))
        }
        });
        //获取ip ajax
        $.ajax({
            url: 'http://freegeoip.net/json/',
            success: function(data){
               console.log(JSON.stringify(data.ip));
               $('#ip').html(JSON.stringify(data.ip))
            },
            type: 'GET',
            dataType: 'JSON'
        });
    })
    
    </script>
    展开全文
  • android google 地图定位 demo

    热门讨论 2011-10-27 15:52:01
    一个简单的 android google 地图定位 demo
  • Android 百度地图 定位+路线规划 demo

    千次下载 热门讨论 2015-07-07 13:37:57
    百度地图定位api示例 定位+路线规划 (存在小bug未解决)
  • 本人做的一个简单的Android studio 百度地图定位,里面的Key需要自己申请更换
  • android 定时定位 (用的是百度地图定位API)

    千次下载 热门讨论 2011-10-24 11:28:21
    该项目是一个定时定位的示例,调用的是百度地图定位API,能够很好的解决定位问题,并且可以进行参数设置来获取到自己需要的定位信息,很不错哦!欢迎下载交流。
  • IOS地图定位,标注地图,获取经纬度实例

    千次下载 热门讨论 2013-11-18 12:21:00
    博客上的 IOS地图定位,标注地图,获取经纬度实例的源码 地址:http://blog.csdn.net/swingpyzf/article/details/16801787
  • 百度地图定位不准的问题

    千次阅读 2020-06-01 20:17:05
    百度地图定位不准问题描述原因解决方法 问题描述 在使用百度定位服务时,无论室内还是室外,位置总是不准。在回调处打印日志发现百度地图定位一直在用基站定位,可我配置的是高精度定位。 原因 最后找到原因,我在...

    百度地图定位不准

    问题描述

    在使用百度定位服务时,无论室内还是室外,位置总是不准。在回调处打印日志发现百度地图定位一直在用基站定位,可我配置的是高精度定位。

    原因

    最后找到原因,我在使用百度地图定位时只想获取单次定位,用完之后立马关闭定位想节省资源。而gps定位连接卫星需要几秒钟的时间(看手机好坏),在这期间百度地图定位会给你基站定位,于是我不断的mLocationClient.start(); mLocationClient.stop();,一直获取基站定位导致不准。

    解决方法

    调用mLocationClient.start(); 后用 mLocationClient.requestLocation();获取后面的定位,这样虽然会导致gps常开导致电量消耗极快,但是为了准确的定位木有办法。鱼和熊掌不可兼得。

    展开全文
  • 百度地图定位jar包V4.2,不方便找的话,就在这里下载吧!
  • 运行高德地图定位与地图实例Demo

    千次阅读 2017-10-23 15:28:27
    运行高德地图定位与地图实例Demo,快速体验地图定位功能。
  • 微信小程序获取当前位置 地图定位导航-详细代码

    万次阅读 多人点赞 2019-05-12 12:04:16
    小程序获取当前位置,回到当前位置,地图定位,导航 效果 因为小程序更新了获取地理位置API接口,需要先在app.json中配置一下permission字段 ,不然会报微信小程序getLocation 需要在app.json中声明permission字段 ...
  • Android版百度地图定位自己位置

    热门讨论 2013-05-12 12:42:10
    Android版百度地图定位自己位置,可实现卫星图和普通地图两个图层的切换。
  • 高德地图定位源码

    千次阅读 2016-02-22 18:43:18
    高德地图定位 可以实现定位、追随、跟旋转功能。应该代码比较少,实现基本的定位功能。 可以到高德官网先申请个key:http://lbs.amap.com/console/key/ 申请好后添加到AndroidManifest.xml文件替换原来的key 1、需要...
  • 高德地图定位失败

    千次阅读 2018-06-22 18:09:21
    最近发现高德地图定位失败,查看log发现,鉴权失败导致的。所以就想到应该是设置SHA1有问题。通过 命令 keytool -v -list -keystore 查到相应的SHA1,并且对比发布版的安全码,结果果然不一样。将查询到的安全码...
  • 1、打开的页面 定位查找 以及地图的放大、缩小、效果切换 [img=http://img.my.csdn.net/uploads/201301/04/1357294415_1056.jpg][/img] 2、查询两个不同经纬度之间的球面距离 [img=...
  • Android 腾讯地图定位功能一二三

    千次阅读 2019-09-11 11:12:45
    Android 腾讯地图定位功能(以3D地图为例) 前言 总结一下之前用过的腾讯地图定位功能,百度了很多,都是相对零散的东西。今天空自己总结了一下,如有不当,还望各位大佬不吝赐教!!!废话不多说,开始 一、准备...
  • 百度地图定位定位失败得解决

    千次阅读 2016-08-17 15:40:19
    不同手机CPU不一样,最近发现得问题还是百度地图定位得问题,我的测试机是乐视1和红米3,刚开始只用了乐视1做了测试,调试之后可以定位,当我拿红米3来测试得时候,发现定位失败,由于百度地图的sdk都是最新版,所以...
  • 之前做百度地图定位这个功能,碰到的问题非常多,这里总结一下 百度地图官方文档里面解释的很清楚,现在百度定位采用的是基站 wifi 和gps三者混合定位,但是这个优先级我们是可以调整的。 1.定位方式 是gps优先...
  • android百度地图:地图定位

    千次阅读 2013-06-25 15:54:47
    使用百度地图定位功能重要的几个类: LocationClient:定位的主力 LocationClientOption:设置定位参数包括:定位模式(单次定位,定时定位),返回坐标类型,是否打开GPS等等 LocationData:定位信息,包括:...
  • 今天再一次用到了地图定位功能和地图显示功能,以前一直用的是高德地图定位,这次还是用高德,记录一下以便以后再做时方便一些。因为业务需要的功能不是很全,可以参考https://www.2cto.com/kf/201504/396156.html ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 101,347
精华内容 40,538
关键字:

地图定位