【新手必读】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/谷歌转到百度来的,为什么有坐标偏移?请问如何进行坐标转换?如何批量转换坐标?
回复:
针对IOS、android和javascript,有三个版本的坐标转换文档。请将您的公司名称、项目名称、项目简介、联系人和联系方式,发邮件至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
移动平台(S60、android、IOS)的定位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
数据抽希:比如有10个marker,选择其中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、如何制作自定义图标?安居客、酷讯上的图标是如何制作的?房产标注,银行标注是如何制作的?
一种是只有图片,比如银行标注,《更换icon的marker》示例和教程如下:
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); 显示和隐藏自定义覆盖物,可以继承overlay的hide();或者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开发的前端接口,任何后端语言都可调用,包括但不限于C、PHP、ASP、JAVA。
如果您需要更多形式的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
16、Place 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加上3个Marker后,map中含有的marker数量为4,第一个(mkrs[0])应该是MarkerTool。所以遍历Marker要从1到length
21、