IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 高德地图开放平台——行政区划分DistrictSearch 准确定位区域,指定某一城市的行政区 -> 正文阅读

[JavaScript知识库]高德地图开放平台——行政区划分DistrictSearch 准确定位区域,指定某一城市的行政区

当搜索宝山区时,会定位到赤峰市的元宝山区👇,然而想要的是上海市宝山区。

解决办法,利用AMap.PlaceSearch获得行政区号adcode,用adcode来搜索对应的区域。

这里利用了AMap.PlaceSearch支持模糊搜索的功能。且AMap.DistrictSearch支持区号搜索

效果图👇,支持模糊搜索:

上代码
head部分

	<!-- 行政区边界查询 -->
	<div class="input-card" style="right:31rem; width:10rem;">

    <div class="input-item">

            <input id='district' type="text" value='滨江区'>
    </div>
    <input id="draw" type="button" class="btn" value="行政区查询" />
	</div>

body部分

 var district = null;
    var polygons=[];
    function drawBounds() {
        //加载行政区划插件
        if(!district){
            //实例化DistrictSearch
            var opts = {
                subdistrict: 0,   //获取边界不需要返回下级行政区
                extensions: 'all',  //返回行政区边界坐标组等具体信息
                level: 'district',  //查询行政级别为 市
            };
            district = new AMap.DistrictSearch(opts);
        }
        // 通过PlaceSearch类返回唯一的行政区号adcode,然后用adcode来搜索边界。
		var placeSearch = new AMap.PlaceSearch({ 
		pageSize: 3, // 单页显示结果条数
		pageIndex: 1, // 页码
		// city: "010", // 兴趣点城市
		citylimit: false,  //是否强制限制在设置的城市内搜索
		map: map, // 展现结果的地图实例
		// panel: "panel", // 结果列表将在此容器中进行展示。
		autoFitView: false // 是否自动调整地图视野使绘制的 Marker点都处于视口的可见范围
			});
			
        // district.setLevel(document.getElementById('level').value)		// 设置行政区级别
		
		placeSearch.search(document.getElementById('district').value, function(status, result){
			// 获取adcode
			adcode = result.poiList.pois[0].adcode   
			
			// 获取并绘制边界
			district.search(adcode, function(status, result) {
            map.remove(polygons)//清除上次结果
            polygons = [];
            var bounds = result.districtList[0].boundaries;
			
            if (bounds) {
                for (var i = 0, l = bounds.length; i < l; i++) {
                    //生成行政区划polygon
                    var polygon = new AMap.Polygon({
                        strokeWeight: 2.5,
                        path: bounds[i],
                        fillOpacity: 0.3,      // 行政区透明度
                        fillColor: '#80d8ff',
                        strokeColor: '#0091ea'
                    });
                    polygons.push(polygon);
                }
            }
            map.add(polygons)
            map.setFitView(polygons); //视口自适应
        });
	placeSearch.clear();  // 清除搜索标记
	});
	
		

    }
    drawBounds();
    document.getElementById('draw').onclick = drawBounds;
    document.getElementById('district').onkeydown = function(e) {
        if (e.keyCode === 13) {
            drawBounds();
            return false;
        }
        return true;
    };

参考链接:JSAPI2.0:AMap.PlaceSearch
行政区边界查询—示例中心
省市区选定行政区查询—示例中心

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:20:01  更:2022-03-08 22:23:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:55:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码