精华内容
下载资源
问答
  • 地图API

    千次阅读 2012-04-23 09:00:15
    做移动应用使用地图API时需要注意的问题 最近在做一个基于地点提醒的移动应用,当初考虑大家都心知肚明的原因,谨慎的选择了百度地图,现在想想其实完全没有必要,好的应用本来就不分国界的,最后可能还是得换...

    做移动应用使用地图API时需要注意的问题

    最近在做一个基于地点提醒的移动应用,当初考虑大家都心知肚明的原因,谨慎的选择了百度地图,现在想想其实完全没有必要,好的应用本来就不分国界的,最后可能还是得换回Google地图。毕竟Google地图在技术和成熟度上完胜百度地图,当然百度也在慢慢追赶,希望有一天大家都能用上咱们自己的好用的地图服务。

    现在把碰到的问题和解决方案罗列一下:

    • 版权:如果是大量商用的话,还是得事先注意一下版权意识,不然到时候就很被动了。两者的免费版都不允许商业应用,具体可以看这里Google Maps API百度API常见问题。不过在万能的国度,也有其他解决方案Google地图采集遇到IP限制的解决思路,其他的大家可以google一下。
    • GPS偏差(仅限中国国大陆地区):刚开始在看API文档时,没太注意这样一句话[百度对外接口的坐标系,都是经过国家测绘局加密处理,符合国家测绘局对地理信息保密要求] 悲催了。这就是中国特色(看看月光博主这篇网络地图国家队进场抢钱)。我们的需求是:根据手机GPS获得的坐标跟用户从地图上选择的坐标进行比较,然后决定是否在用户进入或离开该区域进行提醒。由于百度对外提供的坐标系是百度自己的坐标系,而手机GPS获得的是原始坐标,两者不在一个坐标系上,所以有很大的误差,我们测试了一下,误差在千米之外。所以必须得把两者换成统一坐标系。换成原始GPS坐标在国内原则上是违法的,所以只能统一成各个地图运营商自己的坐标系,比如百度坐标系或者google坐标系。
    • API性能比较,请参照:多家地图API内存消耗对比测试
    • 如何转换成百度坐标系:官方文档给的是:坐标转换接口非公开。请将您的公司名称、项目名称、项目简介、联系人和联系方式,发邮件至mapapi@baidu.com咨询。有专人为您解答。说白了就是收钱,不过这个东西在网上有人透露了。我试过还挺好使。
      •   
        复制代码
        http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=longitude&y=latitude
        其中:
        from: 来源坐标系   (0表示原始GPS坐标,2表示Google坐标)
          to: 转换后的坐标  (4就是百度自己啦,好像这个必须是4才行)
           x: 精度
           y: 纬度
        
        返回的结果是一个json字符串:
        {"error":0,"x":"MTIxLjUwMDIyODIxNDk2","y":"MzEuMjM1ODUwMjYwMTE3"}
        error:是结果是否出错标志位,"0"表示OK
            x: 百度坐标系的精度(Base64加密)
            y: 百度坐标系的纬度(Base64加密)
        复制代码
      • 百度还提供了js的转换工具,可参考官方链接:常用坐标转换
    • 如何转换成google坐标系:
      •   
        http://ditu.google.cn/maps/vp?spn=0.0,0.0&z=18&vp=latitude,longitude
        
        注意,google的参数里经纬度是反过来的。
        
        相关详细见
        http://blog.sina.com.cn/s/blog_65bd7eef0100hu5o.html
    • 其他
      • 如何让程序推出时,GPS的图标不再闪烁(即停止使用GPS)
        复制代码
        #启动GPS的时候,根据需求设置一些参数,注册监听方法
        Criteria criteria = new Criteria();
        criteria.setAccuracy(Criteria.ACCURACY_FINE);
        criteria.setAltitudeRequired(false);
        criteria.setBearingRequired(false);
        criteria.setCostAllowed(true);
        criteria.setPowerRequirement(Criteria.POWER_HIGH);
        String provider = this.mLocationManager.getBestProvider(criteria, false);
                
        
        this.mLocationManager.requestLocationUpdates(provider, MINIMUM_TIME_BETWEEN_UPDATE, MINIMUM_DISTANCE_FOR_UPDATE, this.mListener);
        
        #退出的时候,需要取消该监听方法
        this.mLocationManager.removeUpdates(this.mListener);
        复制代码
        使用地图的时候也需要注意:
        1:使用BMapManager一定要最后调用stop和destroy
        2:使用MyLocationOverlay的时候,如果enableMyLocation之后一定接的disable掉
        3:其实就一个原则,记得及时安全的资源释放,特别是这种全局资源(用户很care的)
      • LocationManager.addProximityAlert()可以试用,但是不好控制,特别是他的启动间隔无法控制,最好还是自己实现相关的功能,然后在准确度和耗电上根据应用找到一个好的平衡点。
      • 如何通过LocationManager获取用户的最佳当前位置 =》Good way of getting the user's location in Android

     

    暂时就总结这么多。

    展开全文
  • 调用腾讯地图API、高德地图API 获取当前地理位置、经纬度 web开发中,很多情况下都会需要获取当前位置的经纬度,在网上找了几个不同的地图,最终找到兼容比较好的腾讯地图API 1、调用腾讯地图API获取当前地理位置...

    调用腾讯地图API、高德地图API 获取当前地理位置、经纬度

    web开发中,很多情况下都会需要获取当前位置的经纬度,在网上找了几个不同的地图,最终找到兼容比较好的腾讯地图API

    1、调用腾讯地图API获取当前地理位置、经纬度

    第一步:先去腾讯地图API官网注册账号,申请key
    腾讯地图
    前端定位组件
    第二步:引入以上js地址:https://3gimg.qq.com/lightmap/components/geolocation/geolocation.min.js

    第三步:写就完事

    getTXLocation:function (){
           var _this =this;
           var geolocation = new qq.maps.Geolocation("QNHBZ-55RKF-OMFJJ-NPU7O-EPSDH-ACBAA", "myapp");
           var options = {timeout: 8000};
           var latitude,longitude;
           geolocation.getLocation(showPosition, showErr, options);
           function showPosition(position) {
               console.log(position);
               latitude = position.lat;		
               longitude = position.lng;
               _this.getShopmsg(latitude,longitude);		//获取到经纬度后的操作
           }
           function showErr() {
               console.log(position);
           }
    },
    

    再分享一个高德地图的方法

    2、调用高德地图API获取当前地理位置、经纬度

    第一步:先去高德地图API官网注册账号,申请key
    申请key
    第二步:引入js:<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的key值"></script>
    在这里插入图片描述

    第三步:写就完事

    getGDLocation:function () {
        let _this = this;
        var map, geolocation;
        mapObj = new AMap.Map('iCenter');
        map = new AMap.Map('container', {
        });
        mapObj.plugin('AMap.Geolocation', function() {
            geolocation = new AMap.Geolocation({
                enableHighAccuracy: true, //是否使用高精度定位,默认:true
                timeout: 10000, //超过10秒后停止定位,默认:无穷大
                maximumAge: 0, //定位结果缓存0毫秒,默认:0
                convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
                buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
            });
            mapObj.addControl(geolocation);
            geolocation.getCurrentPosition();
            AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
            //解析定位结果
            function onComplete(data) {
                console.log(data);
                console.log(data.formattedAddress);
                let getLat = data.position.getLat();
                let getLng = data.position.getLng();
                console.log('纬度:' + getLat + '   经度:' + getLng);
                _this.getShopmsg(getLat,getLng);	//获取到经纬度后的操作
            }
            AMap.event.addListener(geolocation, 'error', onError); //返回定位出错信息
            // 解析定位错误信息
            function onError(data) {
                console.log(data);
                alert('定位失败');
            }
        });
    }
    

    在PC端使用浏览器打开网页高德地图API会显示 定位失败,在手机上则成功,也可能是我的方法有误。
    亲测使用腾讯地图手机 pc 都OK,微信、支付宝打开都OK~

    展开全文
  • 百度地图API & 高德地图API 使用问题汇总registerLocationListenerregisterLocationListener问题. 高德地图鉴权失败问题 SDKInitializer.initialize() NullPointerException 问题 设置地图填充颜色问题

    百度地图API & 高德地图API 使用问题汇总

    registerLocationListener

    registerLocationListener在调用start之后生效。在unregisterLocationListener之前,需要调用stop方法,不然再返回重新调用registerLocationListener时,会注册失败。

    SDKInitializer.initialize() NullPointerException

    百度地图API在使用的时候,是需要在ActivitysetContentView()防范之前调用SDKInitializer.initialize()方法的,如果依赖包配置没问题,一般是不会有问题的.如果抛出NullPointerException异常,则和可能是Manifest下没有配置Key或者配置不争取.主要检查的方面有一下几点:
    1. 申请秘钥的SHA1指纹是不是与应用当前使用的keystone所产生的指纹一致,关于如何获取SHA1指纹,请看官方教程.
    2. 名字和key是否匹配,有可能不小心配错.
    3. <meta-data>节点是不是在<application>节点里面,如果不是,而是不小心直接放在了<manifest>节点下,就会抛空指针异常.
    PS:这个问题在高德地图API下也会有,但是高德地图下如果key配置不正确,依旧可以运行,获得的错误信息是鉴权失败.

    设置Overlap以及Polyline,或者设置精度圆的颜色等

    设置Overlap以及Polyline,或者设置精度圆的颜色等时,所使用的颜色不能直接是引用R文件的值,如R.color.colorRed,这是不起作用的,需要使用getResource().getColor(R.color.colorRed)进行获取,或者直接使用0xffffffff的形式,其中最开始的两个f表示Alpha值,简单理解可以理解为透明度,数值越大越不透明,缺省情况下为完全不透明.
    PS:这个问题和高德地图是一致的.

    关于

    本文档在Github zmychou/AndroidTrap进行同步,不定时更新内容.

    展开全文
  • 百度地图API详解之地图API加载方式

    千次阅读 2017-04-22 20:31:54
    本文将向大家介绍百度地图API的两种不同加载方式:同步加载和异步加载。 同步加载 这是最常见的加载方式,开发者需要在页面的head标签内添加一个script标签,标签的src属性填写为地图API的地址: ...

    本文将向大家介绍百度地图API的两种不同加载方式:同步加载和异步加载。

    同步加载

    这是最常见的加载方式,开发者需要在页面的head标签内添加一个script标签,标签的src属性填写为地图API的地址:

    1
    <script src="http://api.map.baidu.com/api?v=1.2"></script>

    此时脚本是同步加载的,如果直接在浏览器敲入这个地址你会发现这段js脚本实际返回的内容为:

    1
    2
    document.write('<link rel="stylesheet" type="text/css" href="http://api.map.baidu.com/res/12/bmap.css"/>');
    document.write('<script type="text/javascript" src="http://api.map.baidu.com/getscript?v=1.2&key=&services=&t=2922163450"></script>');

    返回的脚本通过document.write方法写入了一个link标签和另一个script标签,link标签负责加载API的样式表文件,而另一个script则是地图API真正的脚本资源。当然你也可以把脚本写在body标签内,但是从规范角度来说不建议这么写(html4规范上规定link标签只能存在于head标签内)。一个完整的同步加载的代码示例如下:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"/>
    <title>同步加载</title>
    <script src="http://api.map.baidu.com/api?v=1.2"></script>
    </head>
    <body>
    <div id="map" style="width:500px;height:320px;"></div>
    <script>
    var map = new BMap.Map("map");
    map.centerAndZoom(new BMap.Point(121.491, 31.233), 11);
    </script>
    </body>
    </html>

    我们看到在地图容器#map之后,立刻插入了一个script标签,标签内直接编写调用API的代码,效果如图:

    62a88a00caedb9e7e850cd75

    浏览器先加载API的资源然后再加载页面其他元素,通过资源加载顺序图可以更清晰的看到这一点:

    30d5d7f8fa6dd26fd8f9fd70
    注意这里的蓝色竖线出现在API脚本加载(包括网络时间和执行时间)完以后,这就表明了页面正在同步加载API的JS脚本。此外还看到在加载主脚本的同时浏览器是被阻塞住的,不能加载其他页面资源。当然API也在逐渐努力减少同步加载JS的文件大小,这除了让地图本身展现速度更快以外,还能最大限度的减少对第三方页面的影响。

    如果使用地图的页面内容较多,而地图仅是一个小模块时,可以考虑将API脚本放在body的最后,而地图初始化放在body的onload事件中:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"/>
    <title>同步加载</title>
    <script>
    function initialize(){
    var map = new BMap.Map("map");
        map.centerAndZoom(new BMap.Point(121.491, 31.233), 11);
    }
    </script>
    </head>
    <body onload="initialize()">
    <div id="map" style="width:500px;height:320px;"></div>
    <script>
    </script>
    <script src="http://api.map.baidu.com/api?v=1.2"></script>
    </body>
    </html>

    这样API的脚本不会影响页面其他元素,虽然用法不太规范。

    异步加载

    API支持完全异步加载,使用方式如下:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8"/>
    <title>异步加载</title>
    <script type="text/javascript">
    function initialize() {
        var map = new BMap.Map('map');
        map.centerAndZoom(new BMap.Point(121.491, 31.233), 11);
    }
    function loadScript() {
        var script = document.createElement("script");
        script.src = "http://api.map.baidu.com/api?v=1.2&callback=initialize";
        document.body.appendChild(script);
    }
    window.onload = loadScript;
    </script>
    </head>
    <body>
    <div id="map" style="width:500px;height:320px"></div>
    </body>
    </html>

    我们通过动态创建script标签的方式来添加对地图API的引用,此时API脚本是异步加载的,如果直接在浏览器输入这个地址,我们会得到下面代码:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    var link = document.createElement('link');
    link.setAttribute('rel', 'stylesheet');
    link.setAttribute('type', 'text/css');
    link.setAttribute('href', 'http://api.map.baidu.com/res/12/bmap.css');
    document.getElementsByTagName('head')[0].appendChild(link);
    window.BMap = window.BMap || {};
    window.BMap.apiLoad = function () {
        delete window.BMap.apiLoad;
        if (typeof initialize == "function") {
            initialize();
        }
    };
    var s = document.createElement('script');
    s.src = 'http://api.map.baidu.com/getscript?v=1.2&key=&services=&t=2922163450';
    document.body.appendChild(s);

    代码里没有了document.write,而是createElement动态添加。

    我们还需要在引用地址里面添加callback参数,这是在告诉API加载完成后需要调用什么方法来初始化地图。注意这个方法名必须是全局可见的。此时我们再来看一下资源加载的瀑布图:

    ed3e980fcdd2788daa64577f

    虽然资源总数没有什么变化,但是会发现蓝线和红线的位置都大大提前,这就说明地图API脚本是异步加载的,对页面元素的加载没有任何影响。

    展开全文
  • 腾讯地图api如何根据地址获取经纬度 /** * 根据地址得到经纬度 //GET请求 */ @GetMapping("tencentGetLatLngBy/{address}") public RestResponse tencentGetLatLngBy(@PathVariable String address) { String ...
  • 腾讯地图API的应用

    千次阅读 多人点赞 2021-01-25 15:03:40
    基本上只要你做的产品涉及到地图板块,你都需要引进相关地图api。那么对于开发者来说,怎么使用地图的api来完成我们的功能点就变的至关重要啦,这篇博客就讲解下腾讯地图JavaScript API的应用。 正文 注册腾讯位置...
  • C++调用百度地图API

    热门讨论 2015-05-11 09:16:17
    通过C++代码调用百度地图API,一个简单实用的百度地图操作实例,希望能给大家带来帮助。
  • 博客简介 本篇博客介绍如何调用微信API获取经纬度,如何调用百度地图API获取实物位置 微信API获取位置信息 百度地图API获取实物位置 微信小程序获取经纬度 百度地图获取实物位置 ...
  • 在百度搜索框输入“百度地图api”查找到百度地图api的网站。如下图: 2 进入到上图的百度地图api首页。如下图: 3 把网页滚动到下面可以看见“申请密钥”功能,如下图: 4 ...
  • 百度地图API

    千次阅读 2017-06-03 15:46:14
    JavaScript API 坐标说明百度地图JavaScript API的输入和输出坐标目前均为百度BD09坐标,如果您使用的是WGS84坐标或GCJ02坐标,需先使用坐标转换接口进行坐标转换。...百度地图API中提供了丰富的控件,您还可以通过C
  • 高德地图API

    千次阅读 2018-08-01 17:58:46
    最近在学习高德地图api接口调用,需要获取场景的一些信息,最重要的是获取轮廓图 需要的接口基本都有 轮廓图的接口没有 获取基本信息 https://lbs.amap.com/api/webservice/summary/ 查找到自己需要的接口 并...
  • 百度地图API 密钥

    万次阅读 多人点赞 2015-06-07 12:11:04
    百度地图API 密钥:DD279b2a90afdf0ae7a3796787a0742e
  • 百度地图API 加载百度地图

    千次阅读 2018-03-27 20:15:20
    前言 百度地图在日常生活中应用的越来越多,功能也日渐丰富,我们可以使用ArcGIS JS API加载在线百度地图(https://blog.csdn.net/idomyway/article/details/79718195),百度也用自己也封装了地图API,我们可以...
  • 百度地图API密钥

    万次阅读 2017-11-29 10:54:36
    百度地图API 密钥 DD279b2a90afdf0ae7a3796787a0742e
  • 注册成为百度开发者,申请百度API的应用秘钥 百度地图开放平台链接:... ... 调用百度API 地图API: 轻量路径规划服务调用方法:http://api.map.baidu.com/directionlite/...
  • 百度地图api基本用法

    千次阅读 2019-03-14 11:41:46
    首先 ,如果想调用百度地图api,你需要获取一个百度地图api的密钥。 申请密钥很简单,在百度地图api的首页就有相关链接,填写相关信息百度就会给你一个密钥了。 接下来,就是引入百度地图的api 关键代码如下: ...
  • 现在在企业做web项目时,偶尔会用到地图功能,而当前最流行的无疑是百度地图了,百度地图API为应用开发者提供了强大的功能,以下就介绍关于本人在做项目时关于百度地图的一些实用的功能。 1、下面的代码就是我的...
  • 百度地图api调用

    千次阅读 2017-03-01 15:33:25
    百度地图api调用 在html5网站中很多企业需要用到的企业地址位置。大多调用第三方的地图api来进行制作。 目前比较主流的第三方地图插件有百度、高德、腾讯、搜狗、谷歌(国内暂不支持)等,他们的引用方式大同小异...
  • 引入百度地图api就不用多说了吧! https://developer.baidu.com/map/custom/ //这个网址可以去模拟修改百度地图样式 当修改到心仪的样式时,点击生成JSON,就会弹出样式, 接着你就可以在你代码地图实例化的时候...
  • 百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥 最近用本地开发百度地图api,非常简单的引用,弹窗提示“百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台...
  • 百度地图API绘制轨迹

    千次阅读 2020-04-03 22:35:15
    1.百度地图API官方示例. 2.百度地图Javascript API v3.0参考类. 一、新建Html文档 新建文档可以直接从官方示例中复制一个模板 复制粘贴时 1处加一个"http",2处替换为你申请的 密钥; 二、轨迹的绘制 在官方示例中...
  • 百度地图API参考文档

    千次下载 热门讨论 2010-08-05 15:15:45
    从百度API页面down下来做成chm格式的,比较详细的百度地图API参考
  • 百度地图未授权使用地图API

    千次阅读 2019-01-12 08:21:59
    问题:百度未授权使用地图API,可能是因为你提供的密钥不是有小的百度LBS开发平台密钥,或此密钥未对本应用的百度地图JavaScript授权..... 问题图示:   以上就是本文解决的问题。   解决方法: 前提条件...
  • Python调用高德地图API实现经纬度换算、地图可视化

    万次阅读 多人点赞 2019-06-26 21:42:16
    前地图可视化的工具和函数比较多,但是在不知道相关地点经纬度的情况下,通过python调用高德地图API实现经纬度换算,并且直接在高德地图新推出的轻量级可视化平台上实现一键式地图可视化,这其中需要申请密钥、批量...
  • matlab 如何调用百度地图API获得经纬度以及地图

    千次阅读 热门讨论 2019-08-22 14:46:10
    本文介绍了如何使用matlab来调用百度地图API,来显示静态地图,以及如何将地址转换成经纬度。
  • 高德地图api的使用

    千次阅读 2018-07-04 19:34:38
    那么我们改怎么合理利用高德地图api来运用到我们的开发中去,下面我做了个测试,简单介绍一下高德地图api 的使用。第一:搜索高德地图api点击进入官网。点击右上角的注册按钮注册成为高德地图的开发者。选择个人开发...
  • 中国地图api调用,谷歌地图api调用说明! 转自: 谷歌地图API官方博客(英文) 作者:Pamela Fox 翻译:Chenfei 原文地址: 在我们发布谷歌地图上的那个“我的地图”编辑器的时候,开发者的反应是“太...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,081
精华内容 10,832
关键字:

地图api