百度地图API最佳实践百度LBS搜索部高级研发工程师贾铮目录•百度地图API简介•JavaScriptAPI新功能•Web服务介绍•移动开发指南百度地图API系列JavaScriptAPIStaticMapAPIMobileAPI(SDK)FlashAPIWebServicesJavaScriptAPI功能•卫星图和地图类型控件•Marker动画•驾车拖拽途径点•自动完成/搜索提示卫星图map.setMapType(BMAP_SATELLITE_MAP);//或者map.setMapType(BMAP_HYBRID_MAP);卫星图卫星图地图类型控件map.addControl(newBMap.MapTypesControl());//配置显示varmapTypesCtrl=newBMap.MapTypesControl({mapTypes:[BMAP_NORMAL_MAP,BMAP_HYBRID_MAP]});map.addControl(mapTypesCtrl);地图类型控件Marker动画varmkr=newBMap.Marker(position,{enableDragging:true,raiseOnDrag:true});map.addOverlay(mkr);Marker动画Marker动画//坠落效果mkr.setAnimation(BMAP_ANIMATION_DROP);//弹跳效果mkr.setAnimation(BMAP_ANIMATION_BOUNCE);//清除动画mkr.setAnimation(null);驾车拖拽途径点varoptions={renderOptions:{map:map,enableDragging:true}}varmyDrv=newBMap.DrivingRoute(map,options);驾车拖拽途径点自动完成/搜索提示varautoComplete=newBMap.Autocomplete({input:suggestId,location:map});自动完成/搜索提示Web服务•基于HTTP协议的纯数据接口•可从本地服务或程序访问•JSON、XML格式•注意访问限制•浏览器或手机客户端建议使用对应的JS或SDK形式Web服务•PlaceAPI•DirectionAPI(即将开放)•GeocoderAPI(即将开放)PlaceAPI=关键词&bounds=视野|region=区域|location=中心点+radius=半径&key=密钥=肯德基&bounds=39.915,116.404,39.975,116.414&output=json&key=your_keyPlaceAPI{status:OK,results:[{name:肯德基(新宁店),location:{lat:39.930312,lng:116.409309},address:五四大街45号万通中心1楼},{name:五四大街45号万通中心1楼,location:{lat:39.974615,lng:116.40805},address:五四大街45号万通中心1楼}]}移动开发指南•桌面系统和移动系统的差别•JavaScriptAPI对移动设备的支持•移动开发建议桌面与移动差别桌面与移动差别桌面与移动差别桌面与移动差别桌面与移动的差别•交互:鼠标vs手势•屏幕:尺寸、分辨率、DPI•网络:宽带、wifi、2G/3G•缓存:HTTPCachevs前端存储/离线应用•位置:不关心vs位置关心JavaScriptAPI移动特性•手势操作•定位•高DPI支持定位vargeoloc=newBMap.Geolocation();geoloc.getCurrentPosition(function(result){if(geoloc.getStatus()==BMAP_STATUS_SUCCESS){map.addOverlay(newBMap.Marker(result.point));map.setCenter(result.point);}});定位高DPIvarmap=newBMap.Map('map_canvas',{enableHighResolution:true})移动开发建议•考虑使用静态图服务•不使用自带的InfoWindow•关注可点元素的尺寸•尽可能减少无关元素,帮助用户集中精力完成任务API资源•API官网•API微博广告一下•《百度地图移动版SDK开发指南》