【新手必读】API常见问题

 

2011-12-12

 

1、请问如何将我的店铺标注在百度地图上?我是否可以做区域代理?在百度地图上标注是否免费?

 

答复:

这里只负责API的技术咨询,不解决任何地图标注问题。在百度地图上标注自己公司,即气泡标注业务。该业务已外包给青岛亿搜,不属于API技术范畴。全国商户的标注需求,请致电:合作伙伴“青岛亿搜网络科技有限公司”咨询。联系电话:0532-66066999

另外,百度地图目前不再对外发展区域代理。因为我们地图整体还是朝免费标注的方向发展,因此不再对外拓展标注代理业务。

个人标注业务已外包给青岛亿搜,由他们进行标注和收费事宜。如果您是上市公司,或者像7天、如家、肯德基一类的连锁行业,百度地图运营团队会主动联系您进行合作标注。如果您是个人标注,请致电青岛亿搜0532-66066999

 

 

2、是否可以去掉百度右下角的版权?百度地图API是否免费?

 

回复:

首先,版权是必须要保留的哦~这是免费使用的条件之一。其次,只要是非商业的地图应用,都是可以免费使用的。详见百度API使用条款:

http://dev.baidu.com/wiki/map/index.php?title=%E4%BD%BF%E7%94%A8%E6%9D%A1%E6%AC%BE 

百度地图API对于用户的非商业应用是不收取任何费用的。如果您不了解非商业应用的含义,请发邮件致mapapi@baidu.com,有专人为您解答。

 

 

3、如何反馈地图数据错误?我有技术问题,应该去哪儿咨询?

 

回复:

地图数据错误或更新请反馈至:http://tousu.baidu.com/map/add 

API合作联系电话:010-59921813 mapapi#baidu.com(请把#换成@)

 

API技术咨询(百度Hi)请先下载百度HI聊天工具

JS:1357363

移动版:1363111

移动定位API:1374928

 

在百度地图标注,致电青岛亿搜:0532-66066999

 

 

4、我是从GPS/谷歌转到百度来的,为什么有坐标偏移?请问如何进行坐标转换?如何批量转换坐标?

 

回复:

针对IOSandroidjavascript,有三个版本的坐标转换文档。请将您的公司名称、项目名称、项目简介、联系人和联系方式,发邮件至mapapi@baidu.com咨询。

 

坐标转换工具:

http://dev.baidu.com/wiki/static/map/API/examples/?v=1.2&0_5#0&5 

 

公司名称

项目名称:(web  or web  or  客户端(IOS  or  android  or  others)应用请写清楚+哪两种坐标系的转换请说明) 

项目情况:  请描述清楚项目具体的应用场景

联系人

联系电话

 

 

烦请您说明以上情况,谢谢

 

 

5、利用百度地图API如何进行定位?用手机怎样定位?如何在地图上定位?

 

回复:

javascript版本定位代码:

http://dev.baidu.com/wiki/static/map/API/examples/?v=1.2&7_31#7&31 

移动平台(S60androidIOS)的定位API

http://dev.baidu.com/wiki/geolocation 

 

 

6、百度地图API在访问频率上,是否有限制?

 

回复:

用户同时在线数:按每秒初始JS获取来计算,支持每秒1000~1500次。

查询性能,按不同查询服务分:

检索服务支持800/秒;

公交、驾车服务400~600/秒;

地理编码性能支持150/秒。

带宽限度:由于API数据量较小,完全支持服务。

坐标转换接口:单ip 50/秒  (超过100次返回403错误)

静态图:独立IP 10/

 

 

7、标注过多时,地图在IE中速度会下降,尤其是IE6。如何解决?

 

回复:

标注数据量请控制在150个以内,以保持高性能。

标注数量在260以内,可以使用自定义覆盖物实现。

标注数量大于300个,建议尝试marker聚合,或者数据抽希。

 

Marker聚合:http://tieba.baidu.com/f?kz=1031097376 

数据抽希:比如有10marker,选择其中6个做为显示点。

 

我的建议是,不要一次在地图上添加过多的marker,而是先把point存储在数据库里,当需要显示某个marker是,再addOverlay

 

 

8、关于“地址解析和模糊查询”的问题。

我用地址解析查询“北京市”为什么不返回城市?我用search(模糊查询或者智能查询)查询“重庆市江北区郭家沱红江村23-1”为什么出来很多个结果?

 

回复:

首先,上述问题的两种查询显然是不对了,用错了接口。使用地址解析,应该查询详细到门牌号的地址,这样会返回一个确定的地址。而使用search(模糊查询或者智能查询),可以搜索任意的关键词,注意,需要带上城市名称。

 

下面来看详解:

地址解析:只对详细到街道的地址进行解析。不要搜索不详细的地名,如“北京市”。

使用Geocoder进行地址解析,比如“北京市海淀区上地10街”,当系统匹配到这个地址时,getPoint就会返回一个坐标点。这里需要用到回调函数。当系统无法匹配“北京市海淀区上地10街”的时候,会返回“北京市海淀区”的几何中心点,如果还是无法匹配,会返回“北京市”的几何中心点。

地址解析示例:http://dev.baidu.com/wiki/static/map/API/examples/?v=1.2&7_29#7&29  

 

search(模糊查询或者智能查询):如果你只是想返回“北京市”的坐标,或者说想要模糊查询/智能查询,比如“北京市肯德基”,建议不要使用地址解析,而是使用LocalSearch类的search方法。

智能搜索例子详见:http://www.cnblogs.com/milkmap/archive/2011/04/27/2030971.html 

 

 

9、如何制作自定义图标?安居客、酷讯上的图标是如何制作的?房产标注,银行标注是如何制作的?

 

一种是只有图片,比如银行标注,《更换iconmarker》示例和教程如下:

http://www.cnblogs.com/milkmap/archive/2011/03/01/1967885.html 

 

第二种是,图片加上文字的图标,像房产标注,《自定义覆盖物》示例和教程如下:

http://www.cnblogs.com/milkmap/archive/2011/04/18/2019906.html 

 

第三种是,用label来模拟自定义覆盖物,《用label制作简易的房产标签》示例和教程如下:

http://www.cnblogs.com/milkmap/archive/2011/08/24/2151073.html

 

 

10、如何利用百度地图API进行对自己数据的搜索?

 

回复:

一是前端搜索,示例和教程如下:

http://www.cnblogs.com/milkmap/archive/2011/06/24/2089102.html 

 

二是自己建立数据库。储存数据为:id、经纬度(Point)、名称(如百度大厦)、地址电话等信息。当用户输入关键字(如百度大厦)时,利用SQL在数据库中查找该条数据,并返回经纬度(Point)信息。然后用添加覆盖物的示例,把点打到地图上去,并且把地址电话信息等内容添加到信息窗口里。添加覆盖物示例和打开信息窗口示例如下:

http://www.cnblogs.com/milkmap/archive/2011/08/16/2135323.html 

 

 

11、如何清除地图上所有的标注?如何清除单个标注?自定义覆盖物如何清除?

 

回复:

清除地图上所有的标记,用map.clearOverlays(); 清除单个标注iMarker,用map.removeOverlay(iMarker); 显示和隐藏自定义覆盖物,可以继承overlayhide();或者show()方法。 

 

12、是否有离线地图?

 

回复:

目前只有手机离线地图,下载后可以在客户端导入。地址:http://shouji.baidu.com/map/map.html?from=1052

 

 

13、如何显示城市的轮廓?

 

回复:可以使用boundary接口。注意,该接口目前只使用于API1.1

类参考:

http://dev.baidu.com/wiki/map/index.php?title=Class:%E5%9F%BA%E7%A1%80%E7%B1%BB/Boundary 

示例,请参照教程第三部分:

http://www.cnblogs.com/milkmap/archive/2011/04/15/2017135.html 

 

 

14、如何在C\PHP\JAVA\ASP中调用API

 

回复:

百度地图API是由javascript开发的前端接口,任何后端语言都可调用,包括但不限于CPHPASPJAVA

如果您需要更多形式的API,请查看API综合产品首页,8种形式的地图API欢迎您的使用。API综合产品首页:

http://dev.baidu.com/wiki/static/index.htm 

 

 

15、我采集的GPS数据转换成百度坐标系后,偏差非常大。请问怎么解决?

 

回复:

有以下四种可能:

A、原始坐标可能不是GPS(即wgs84)的

解决方案:请确保采集到的数据时WGS84的标准。

 

B、原始坐标准确度不够

解决方案:请确保采集GPS数据时,搜到至少4颗以上的卫星。并且GPS数据准不准,还取决于周围建筑物的高度,越高越不准,因为有遮挡。

 

C、度分秒的概念混淆

比如,在google earth上采集到的是39°31'20.51'',那么应该这样换算,31分就是31/60度,20.51秒就是20.51/3600度,结果就是39 + 31/60 + 20.51/3600 度。

 

D、经纬度顺序写反了

百度坐标是先经度,再维度,即Point(lng, lat)。谷歌坐标的顺序恰好相反,是(lat, lng)

 

附上,百度的坐标转换工具:

http://dev.baidu.com/wiki/static/map/API/examples/?v=1.2&0_5#0&5 

 

 

16Place API有什么功能?

 

回复:

Place API主要功能是做数据管理。用户自己不用存储数据,只需调用我们的各个分类数据ID,就可以了。还能做深度的检索定制;根据自己的需求出检索排序。

 

17、除了官网外,还有哪些地方可以学习百度地图API技术?

 

回复:

官网示例学习:http://dev.baidu.com/wiki/static/map/API/examples/ 

API实践教程:http://www.cnblogs.com/milkmap/ 

API开发机制:http://www.cnblogs.com/jz1108/ 

 

 

18、我有大批坐标需要转换,应该如何操作呢?

 

回复:

首先有两种坐标转换接口供使用,单次接口和批量接口。单次接口的限制是独立IP 50/秒,可同时请求多次;批量接口是请求一次,最多返回20个坐标。

单次示例:

http://dev.baidu.com/wiki/static/map/API/examples/?v=1.2&0_5#0&5 

批量示例:

http://dev.baidu.com/wiki/static/map/API/examples/?v=1.2&0_6#0&6 

 

推荐一种方法:

每隔10秒取一次GPS坐标,存在队列中备用。

使用单次或者批量坐标转换接口,每秒执行一次,将队列中的坐标进行转换。

 

19、交通流量、三维地图、打车费、卫星图是什么情况?

 

回复:

三维地图:

北京 上海 广州 深圳

 

打车费用:

北京,上海,广州,深圳,成都、天津、杭州、武汉、苏州、南京、重庆、郑州、西安、济南、青岛、长沙。

 

交通流量:

北京,上海,广州,深圳,南京,南昌,成都,重庆,武汉,大连,常州

 

卫星图覆盖级别:

上线的卫星图包含高中低三个分辨率的卫星图,覆盖1-19级底图,其中1-7级为低分辨率全球覆盖,8-13级为中分辨率全中国覆盖,14-19级为高清分辨率部分城市重点区域覆盖。我们将陆续更新上线共339个城市。

 

20、如何通过经纬度查询到已加上的标注(Marker)

 

回复:Marker 是通过map.AddOverlay()加上的,所以也用map可以得到加上的所有Marker:

var mkrs = map.getOverlays();

for (var i=1; i<mkrs.length;i++) {

...

}

要注意的是,假如用BMapLib.MarkerTool加上3Marker后,map中含有的marker数量为4,第一个(mkrs[0])应该是MarkerTool。所以遍历Marker要从1length

 

21