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 }