http://developer.baidu.com/map/index.php?title=lbscloud/api/geosearch
智能搜索
- local = new BMap.LocalSearch(map, { //智能搜索
- renderOptions:{ map: map}
- });
- located = true;
- local.setMarkersSetCallback(callback);
- local.search('北京市');
获取两点间距离,可以算出覆盖区域,比如覆盖区域10个坐标和中心点算距离
- <script type="text/javascript">
- // 百度地图API功能
- var map = new BMap.Map("allmap");
- map.centerAndZoom("重庆",12); //初始化地图,设置城市和地图级别。
- var pointA = new BMap.Point(106.486654,29.490295); // 创建点坐标A--大渡口区
- var pointB = new BMap.Point(106.581515,29.615467); // 创建点坐标B--江北区
- alert('从大渡口区到江北区的距离是:'+(map.getDistance(pointA,pointB)).toFixed(2)+' 米。'); //获取两点距离,保留小数点后两位
- var polyline = new BMap.Polyline([pointA,pointB], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5}); //定义折线
- map.addOverlay(polyline); //添加折线到地图上
- </script>
3 坐标转换
我们知道,Google地图、soso地图与百度地图的坐标是不一样的,通常会差挺远一段距离。因此我们在微信中使用百度地图导航等百度地图API时,若 根据微信获取的用户位置信息的话,得到的结果通常是不准确的。这时我们就需要把微信获取的用户位置坐标转换成百度地图对应的坐标才可以。
圆形区域搜索
- <script type="text/javascript">
- // 百度地图API功能
- var map = new BMap.Map("allmap"); // 创建Map实例
- var mPoint = new BMap.Point(116.404, 39.915);
- map.enableScrollWheelZoom();
- map.centerAndZoom(mPoint,15);
- var circle = new BMap.Circle(mPoint,1000,{fillColor:"blue", strokeWeight: 1 ,fillOpacity: 0.3, strokeOpacity: 0.3});
- map.addOverlay(circle);
- var local = new BMap.LocalSearch(map, {renderOptions: {map: map, autoViewport: false}});
- local.searchNearby('餐馆',mPoint,1000);
- </script>