在我们程序员的日常开发中,总会时不时的需要用到地图开发,我也在多次碰到之后,写下我对地图开发的理解经验和总结。

一、地图的选择

  回想一下我们生活中用到的地图工具,数了一下,百度地图,高德地图,腾讯地图,谷歌地图,其他。

  1、作为开发者,我们应该选择普遍被大众认可的地图平台,所以其他这个选项中,除去最近或以后火起来的地图平台外,我把它们排除掉。

  2、谷歌这个被国家禁掉的产品,如果不是需要覆盖全世界的产品或项目的开发,我们应该选择国产。而随着我们的国产软件也走出了祖国走向了全世界,我果断的排除了谷歌地图,虽然对于全世界来讲是最牛逼的产品,但是反正我不FQ的情况下打不开谷歌地图开发平台,而且对于国内来讲,地图也没有国产的详细。

  3、剩下三个地图,我只想说,如果是跟腾讯有关的开发,还是用腾讯地图好一点吧,虽然接口有点少。

  4、其实呢,这几家竞争这么激烈,我觉得嘛,就看个人喜欢了,不同的地图都有它们的特色,它们各自提供了一些除了正常使用之外的特别的功能。

二、地图API的选择

  以百度,高德,腾讯为例,开发文档分为四类,web开发,Android开发,ios开发,web服务。

  1、就分类来讲中间那两个是手机应用开发,不同的手机类型选择对应的SDK,左边那个网站开发,前端就选这个,右边那个是特殊服务,相当于其他。

  2、右边那个里面有个web服务API是数据接口,我搞了很久才区别出来,这是个纯粹的接口,提供一个url,返回json或xml格式的数据(腾讯只支持json/jsonp),不管什么语言什么软件都能用。

  3、URI API可直接调用地图的相关功能或打开对应手机地图APP,百度地图的这个API藏在 地图调起API 分类里面。

  4、对于微信小程序开发,腾讯有个sdk,百度有个api,高德没有这个。

  5、注意一下地图提供的工具支持,比如坐标拾取器等,开发的时候可以配合使用。

三、地图API的使用

  在这里呢,我只讲js api和web service api,手机应用开发还没有接触到,所以sdk我用不上,你们自己去官网学吧。

  不管什么公司提供的地图,要想使用它,首先就是要获取密钥,这个按照提示步骤操作即可。

  先讲JavaScript API:

    1、使用须知

      ①只要是浏览器打开,就能用这个。设备屏幕不一样,为避免缩放冲突,建议添加meta标签禁止用户缩放页面:

        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

      ②兼容性良好,这个不需要担心

      ③JavaScript API支持异步加载

    2、需要一个容器放置地图,容器必须要有宽高且不能为0(为0的话就看不到地图了),然后需要引入百度地图API文件,创建地图实例

      <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>

      <div id="container" style='width:100px;height:100px;'></div>

      var map = new BMap.Map("container");

    3、http://lbsyun.baidu.com/jsdemo.htm#a1_2    ——地图API示例,找到你要的功能,直接复制就能用

    4、百度地图用到坐标的时候需要进行坐标转换,因为百度地图的坐标系(BD09)是自己对GCJ02(火星坐标系)再次加密的坐标系。不过非中国地区的地图,服务坐标统一使用WGS84(GPS的坐标)

    5、简单说一下都有哪些功能:

      ①就是一个地图展示,给地图添加控件,给地图修改样式(个性化地图),右键菜单功能,全景功能,搜索功能

      ②就是在这个地图上绘画,标注,信息窗口,或者就是一个覆盖物(形状,图片,文字什么的),一个叠加的图层

      ③地图上的事件,点击事件,图块加载完成事件,给覆盖物注册事件,注销事件,鼠标事件……(貌似没有键盘事件)

      ④GPS功能,定位功能,路线规划功能(分为公交,驾车,步行三种)

      ⑤数据处理类的辅助功能,比如地址解析(名称--坐标),坐标转换,点聚合(多点缩放时堆叠在一起可以合并为一个聚合点来表示这一块有的点数)

      ⑥其他

  Web 服务API:

    这个api跟Javascript API不一样,前面讲过,这个是一个数据接口,也就是说,它给我们的功能提供一个url和参数,我们前端可以通过ajax请求拿到数据并进行操作。

    而像Javascript API那样的,是直接前端操作,除了引入的那个js文件外,不暴露任何url接口,全都是要用实例化一个对象并通过其内部方法的方式操作。

    1、地点检索服务

      ①行政区划区域检索

        开发者可通过该功能,检索某一行政区划内(目前最细到城市级别)的地点信息。

        例:

          http://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行&region=北京&output=json&ak=您的ak //GET请求

      ②圆形区域检索

      ③矩形区域检索

      ④地点详情检索

    2、地点输入提示服务

    3、正/逆地理编码服务

    4、路线规划

    5、批量算路

    6、普通IP定位API

    7、时区服务

    8、推荐上车点服务

    9、静态图API,全景静态图API

    10、附录

      

四、链接分享

  1、http://lbsyun.baidu.com/  ——百度地图开放平台

  2、http://lbs.amap.com/    ——高德开放平台

  3、http://lbs.qq.com/index.html    ——腾讯位置服务

地图API的选择和使用的更多相关文章

  1. [转] 一个程序猿眼中的国内主流地图api

    在网站或者手机应用中,经常用到地图api.在现在这么激烈的竞争下,各地图服务提供的服务基本都趋于一致了.一个公司推出的新服务,其他公司肯定也会很快的跟进.这样,对于开发者来说,地图api的选择就主要参 ...

  2. 【百度地图API】让用户选择起点和终点的驾车导航

    原文:[百度地图API]让用户选择起点和终点的驾车导航 摘要: 如果用户搜索“从机场到火车站”,使用驾车导航DrivingRoute会默认显示一条结果.但同一个城市可能有多个机场和火车站,那么,如何用 ...

  3. 百度地图API 批量添加 带检索功能的信息窗口

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 百度地图API试用--(初次尝试)

    2016-03-17: 百度地图API申请key的步骤相对简单,不做过多阐述. 初次使用百度地图API感觉有点神奇,有些功能加进来以后有点问题,注释掉等有空再解决. 代码如下: <%@ page ...

  5. Google 地图 API V3 针对移动设备进行开发

    Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...

  6. Google 地图 API V3 之控件

    Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...

  7. 如何在网页中调用百度地图api

    我想在木有提供地图接口的年代,前端工程师门要么只写上企业的具体地址,要么就是用一张标有自己位置的地图图片.但是现在不一样啦!为了增强用户体验,谷歌,甚至百度都很开放了,你可以在他们的网站上找到地图接口 ...

  8. 地图API文档

    目录 腾讯地图API 2 1.API概览... 2 1.1 WebService API(官网注明是beta版本,可能不稳定,慎用):... 2 1.2 URL API:... 2 1.3 静态图AP ...

  9. C#调用百度地图API经验分享(一)

    最近客户提了一个需求,要在网站中添加百度地图的显示,其实原来是有谷歌地图的,但由于谷歌在大陆遭到封杀,只好再给用户增加一个选择了. 下面我将自己最近整理的一些知识分享给大家. 如何使用百度地图API: ...

随机推荐

  1. 求生之路 Hammer World Editor打开后闪退解决办法

    试过WinXp.Win7.Win10 都无法正常启动Hammer,搜索N多资料后发现如图修改 控制面板 -> 区域 -> 格式 -> 英语[美国] 即可正常启动了!!!

  2. java和groovy的混用

    java在语言的动态性方便不是很灵活,如果你想快速增加或改变一些方法,那么只能通过反射机制,并且参数传递的格式很严格. 相比之下,基于groovy可以快速写出一些自定义方法,并能和java很好结合,类 ...

  3. Xampp mysql启动

    因为最近项目要用到php,需要集成Xampp环境,但是并没有接触过php,从官网下载了Xampp后,基本上就是傻瓜式安装了, 完成安装界面如下: 点击Apache的start可以正常启动,点击MYSQ ...

  4. Css(样式)

    CSS三种样式 1.行内样式         ①将css样式与html,完全糅杂在一起,不符合w3c关于“内容与表现分离”的基本规范,不利于后期维护.         ②优先级最高. 2.内部样式表 ...

  5. Entity Framework 中 Schema是什么

    在使用Entity Framework时,会注意到下面这句: protected override void OnModelCreating(DbModelBuilder modelBuilder) ...

  6. 监控控制台是否运行的bat

    @echo offrem set secs=5set srvname="TRS.Export.Scheduler.exe" echo.echo ================== ...

  7. Lucene 初步 之 HelloWorld

    万恶的源头 HelloWorld 要完成lucene 的配置 需要几个jar包 (如果需要可以留言我私发) 创建索引API分析: 1. Directory: 类代表一个Lucene索引的位置,FSDi ...

  8. linux中的&&和&,|和||

    在linux中,&和&&,|和||介绍如下: &  表示任务在后台执行,如要在后台运行redis-server,则有  python a.py & && ...

  9. 全--教程API, gem 'rest-client'(用于发简单请求); 请求测试;

    安装:rest-client4400✨ gem install rest-client 一个简单的HTTP和REST client for Ruby. 可以用它来发HTTP请求 基本用法: requi ...

  10. 翻译"Python编程无师自通——专业程序员的养成"

    这本书在 畅销Python编程类入门书,美国亚马逊Kindle编程类排行榜榜一. 开始初学python,也有不少书了,不想在白花钱(买了就放那里不看了),看一个英文文档的原著,准备每天翻译一点,放到b ...