关于ArcGis for javascript整合百度地图 天地图 高德地图进行搜索

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 }
原文地址:https://www.cnblogs.com/yanwu0527/p/8565705.html