1.ArcGis for javascript整合百度地图搜索
1.1.首先引入百度地图的api
1 <!-- 引入百度地图API --> 2 <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=********"></script>
1.2.初始化百度地图搜索相关的实例
1 function initBDMAP() { 2 bdMap = new BMap.Map('myMap'); 3 lon = 120.00000000; // 经度 4 lat = 30.00000000; // 纬度 5 bdMap.centerAndZoom(new BMap.Point(lon, lat), 11); // 根据经纬度实例化百度地图, 在进行搜索时, 会默认搜索经纬度所在的城市 6 const options = { 7 onSearchComplete(results) { 8 if (bdMapLocal.getStatus() === BMAP_STATUS_SUCCESS) { 9 // 运行到这里说明搜索成功, 搜索结果在results对象里面, 处理结果集 10 ...... 11 } 12 }, 13 }; 14 bdMapLocal = new BMap.LocalSearch(tdtMap, options); // 初始化百度地图搜索API, 将百度地图实例<bdMap>和回调函数<options>绑定到搜索API 15 }
1.3.调用搜索API进行搜索
bdMapLocal.search(param); // 当调用搜索API的search方法时, 会自动进行搜索, 并且自动进入回调函数
2.ArcGis for javascript整合天地图搜索
2.1.引入天地图API
1 <!-- 引入天地图提供地名搜索服务 --> 2 <script type="text/javascript" src="http://api.tianditu.com/api?v=4.0"></script>
2.2.初始化天地图的实例
1 function initTDTMAP() { 2 tdtMap = new T.Map('tdtMap'); 3 // 设置显示地图的中心点和级别 4 lon = 120.00000000; 5 lat = 30.00000000; 6 tdtMap.centerAndZoom(new T.LngLat(lon, lat), 12); 7 const tdtConfig = { 8 pageCapacity: 50, // 一次最多能查询多少条数据 9 onSearchComplete: TdtLocalSearchResult, // 接收数据的回调函数 10 }; 11 // 创建搜索对象 12 TdtLocalSearch = new T.LocalSearch(tdtMap, tdtConfig); 13 }
2.3.创建回调函数
1 function TdtLocalSearchResult(result) { 2 // 根据返回类型解析搜索结果 3 switch (parseInt(result.getResultType(), 10)) { 4 case 1: 5 // 解析点数据结果 6 parsingSearchResults(result.getPois()); 7 break; 8 case 2: 9 // 解析其他点数结果 10 ...... 11 break; 12 ...... 13 default: 14 console.log('天地图搜索路名无结果'); 15 } 16 }
2.4.处理结果集
1 function parsingSearchResults(tdtobj) { 2 if (tdtobj) { 3 // 处理结果集 4 for (let i = 0; i < tdtobj.length; i += 1) { 5 ...... 6 } 7 } 8 }
3.ArcGis for javascript整合高德地图搜索
3.1.引入高德地图API
1 <!-- 引入高德地图API --> 2 <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.2&key=1f675cd5121e2db5ab8bc326d3913373"></script>
3.2.初始化高德地图
1 function initGDMAP() { 2 gdMap = new AMap.Map('myMap', { 3 resizeEnable: true, 4 }); 5 }
3.3.创建搜索的方法以及函数的回调
1 function gdMapSearchPaging(roadPage, roadSize, param) { 2 AMap.service(['AMap.PlaceSearch'], () => { 3 placeSearch = new AMap.PlaceSearch({ // 构造地点查询类 4 pageSize: roadSize, // 分页查询的每页显示记录数 5 pageIndex: roadPage, // 分页查询的页码参数 6 city: '0571', // 城市编码<高德地图的搜索是根据城市编码进行搜索> 7 map: gdMap, 8 }); 9 }); 10 placeSearch.search(param, (status, result) => { 11 if (roadData.length > 0) { 12 for (let i = 0; i < 10; i += 1) { 13 // 处理结果集 14 ...... 15 } 16 } 17 }); 18 }