Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >批量获取百度地图中的县级以上行政区域的边界数据

批量获取百度地图中的县级以上行政区域的边界数据

作者头像
sparkexpert
发布于 2022-05-07 06:18:06
发布于 2022-05-07 06:18:06
8920
举报

最近在做一个演示DEMO的时候,需要省界和市一级界线的数据。以前自己是有这样的SHP数据的,然而现在由于行政区划更新很快,而自己之前下的数据还是2010年版本的国家基础数据。

网上没有相关的最新的界线数据,只好自己去搜索一下。还是不少人在做这样的东西的,如http://www.cnblogs.com/milkmap/archive/2012/04/11/2442430.html,http://www.cnblogs.com/i-gps/archive/2012/05/18/2507941.html等。而且都是利用百度地图的接口来实现的。

刚好按照网上的方法,自己也能搞定某一个边界的下载,按照网上的一个HTML页面就可以搞定的。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>获取地区轮廓线</title> <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"> </script> <style type="text/css"> body{font-size:13px;margin:10px} #container{width:800px;height:500px;border:1px solid gray} </style> </head> <body> <div id="container"></div> <br /> 输入省、直辖市或县名称:<input type="text" id="districtName" style="width:80px" value="重庆市"> <input type="button" οnclick="getBoundary()" value="获取轮廓线"> <textarea id="Div1" style="width:100%;height:200px"></textarea> <script type="text/javascript"> var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 5); map.addControl(new BMap.NavigationControl({type: BMAP_NAVIGATION_CONTROL_SMALL})); map.enableScrollWheelZoom(); function getBoundary(){            var bdary = new BMap.Boundary();     var name = document.getElementById("districtName").value;     bdary.get(name, function(rs){       //获取行政区域         map.clearOverlays();        //清除地图覆盖物       document.getElementById('Div1').innerText = rs.boundaries;          var count = rs.boundaries.length; //行政区域的点有多少个         for(var i = 0; i < count; i++){             var ply = new BMap.Polygon(rs.boundaries[i], {strokeWeight: 2, strokeColor: "#ff0000"}); //建立多边形覆盖物             map.addOverlay(ply);  //添加覆盖物             map.setViewport(ply.getPath());    //调整视野                  }                 });   } </script> </body> </html>

但是中国的县级以上区域总共有3500多个,这样的话,逐个弄肯定是不行的。

于是呢,采用.net的webbrowser来实现对边界数据的批量下载。

其原理非常简单,就是通过webbrowser的document获取页面中指定的input和按钮,进行消息触发。

由于百度提供的边界线接口中,县级区域数据并未完全更新完整,如三沙市,广丰县实质上已经变为区等,所以这样界线数据相对来说还是有些滞后。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
百度高德地图行政区域边界GeoJSON数据获取并绘制行政区域
highcharts 是提供地图数据包的:https://www.highcharts.com/docs/maps/map-collection
周陆军博客
2023/04/09
4.5K0
Qt编写地图综合应用9-行政区划
行政区划在地图应用中非常有用,行政区划是行政区域划分的简称,是国家为了进行分级管理而实行的区域划分,百度地图提供的内置的函数类支持传入行政区划的名称来获取对应的边界点集合,然后根据该集合来绘制点集合,最后将该点集合封闭连起来,就形成了行政区划的轮廓图了,使用下来发现地图本身提供的函数可以支持到县城,如果需要精确到乡镇那就需要其他办法获得,一种是直接加载事先准备好的乡镇的边界点集合的js文件,一种是在地图上绘制多边形,然后开启可编辑属性,人为的拖动边界,最后获取整个多边形的边界点集合即可,这种方法有个专业术语叫扒数据,在音乐界叫扒带。其实方法一的前提也是按照方法二来获取的,对于很小的应用数量不多的乡镇可以采用此法,如果需要很多省市的乡镇那就可能需要安排专人去获取了。
feiyangqingyun
2020/04/12
1.3K0
Qt编写地图综合应用9-行政区划
高质量编码-在地图上调整Excel位置经纬度(前端开发)
省略说明html和css,下面介绍一下js中各部分函数负责的功能。 image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png image.png im
MiaoGIS
2021/07/14
7980
高质量编码-在地图上调整Excel位置经纬度(前端开发)
页面中插入百度地图(使用百度地图API)
<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”插入地图.aspx.cs” Inherits=”插入地图” %>
全栈程序员站长
2022/07/06
7810
页面中插入百度地图(使用百度地图API)
js 百度地图
http://api.map.baidu.com/lbsapi/creatmap/
WindWant
2020/09/11
2.5K0
js 百度地图
百度地图API显示多个标注点带百度样式信息检索窗口的代码
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/113841.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
6170
如何在vue单页应用中使用百度地图
原文:https://www.cnblogs.com/jiekzou/p/10485604.html
周星星9527
2021/08/13
1.6K0
如何在vue单页应用中使用百度地图
百度API的经历,怎样为多个点添加带检索功能的信息窗口
不管我们要做什么样的效果,APIKey(密钥)都是不可缺少的要件,所以我们需要先去百度申请我们的APIKey!!!
Yiiven
2022/12/15
1.3K0
百度地图电子围栏功能的实现
最近公司项目需求,要做一个百度地图电子围栏的功能,在网上查了一下资料,看了很多博客,大多数都写的不是很详细,我看的云里雾里的,最后终于集合所有的几篇资料,自己做出了一个简单的demo,下面将过程记录和分享一下,希望给予有需要同学一些帮助,我这个人说话比较啰嗦,所以写的一定会很详细的,哈哈!闲言少叙,开始了。
CherishTheYouth
2019/07/30
3.6K0
百度地图电子围栏功能的实现
第151天:网页中插入百度地图方法(不需要密钥)
 以上就是网页中插入百度地图的方法,做企业站,总是要插入百度地图,以后再也不用愁了。
半指温柔乐
2018/09/11
5.2K0
第151天:网页中插入百度地图方法(不需要密钥)
vue-next-admin可视化demo1卫星地图
演示地址: https://lyt-top.gitee.io/vue-next-admin-preview/#/visualizingDemo1 演示效果: 代码: <template> <div class="visualizing-demo1"> <!-- 地图 --> <div id="visualizingDemo1" style="height: 100%"></div> <div class="visualizing-container"> <!-
周星星9527
2021/11/03
7081
vue-next-admin可视化demo1卫星地图
高德地图(6)获取行政区
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title></title> <script type="text/javascript" src="https://web
贵哥的编程之路
2021/06/08
9330
高德地图(6)获取行政区
使用百度地图——入门
大家好,又见面了,我是全栈君。 创建一个地图对象   创建一个新点   初始化地图,设置中心坐标和地图级别   配置地图的其他特点:加入变焦控制、启用鼠标滚轮缩放功能 创建覆盖物对象   创建标注对象   设置标注的标题   加入对象属性   给标注加入事件监听函数   将标注加入到地图中 <%@ page language="java" pageEncoding="UTF-8"%> <%@ page import="com.telewave.systemejb.entity.SysUser"%> <%@
全栈程序员站长
2022/01/18
5530
使用百度地图——入门
百度地图api根据坐标搜索附近信息_最简单app制作
  这几天比较空闲,就接触了下百度地图的API(开发者中心链接地址:http://developer.baidu.com),发现调用还是挺方便的。只要简单几步注册下,就可以获得一个Key,就能直接调用(PS:好像1.3版本前的无需注册获取key,就能直接调用api)。   想着能结合到自己的项目中去,那也挺不错的。看了园子中的几篇文章,感觉甚好,想自己也动手试试。 在调用百度地图API的时候,经纬度的获取必然是关键,那么怎么样获取到经纬度的值呢?这是一个最首要解决的问题。 通过查询资料,看了几个例子,得知了调用的方法(感谢与时俱进的实例,给予很大的帮助)。站着巨人的肩膀上,就能比较快的实现功能。   闲话不多,下面就直接给大家介绍下,具体要怎么调用百度地图API。   首先新建一张html页面。然后引用上API:
全栈程序员站长
2022/09/20
1K0
百度地图api根据坐标搜索附近信息_最简单app制作
百度地图电子围栏功能
今年疫情以来,工作都比较紧凑,没能抽出时间来记录工作日常了。最近接触一个项目需要使用到百度地图的围栏功能,作为前期调研,先探探路。 经过一番搜搜,找到一篇不错的文章。专门介绍,百度地图围栏的。地址如下:https://www.cnblogs.com/CherishTheYouth/p/CherishTheYouth_20190416.html
用户5640963
2020/10/26
4.1K0
百度地图电子围栏功能
angularJs集成百度地图
app.controller('mapSignController',function($scope,$rootScope,Message, $window,$uibModalInstance){
JQ实验室
2022/02/09
3590
前端切图:调用百度地图API
原型图 图片发自简书App <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <s
王小婷
2018/06/01
1.3K0
Qt编写地图综合应用6-百度在线地图
百度在线地图的应用老早就做过,后面经过不断的完善才到今天的这个程序,除了基本的可以载入地图并设置一些相关的属性以外,还增加了各种js函数直接异步加载数据比如动态添加点、矩形、圆形、行政区划等各种。当然最大的是增加了离线地图的支持,当年这个离线地图拖了很久很久才去做,最终还是搞定了。
feiyangqingyun
2020/04/09
2.2K0
Qt编写地图综合应用6-百度在线地图
百度地图AP1「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116471.html原文链接:https://javaforall.cn
全栈程序员站长
2022/01/21
6680
百度地图API开发指南(三)
首先您需要定义自定义覆盖物的构造函数,在下面的示例中我们定义一个名为SquareOverlay的构造函数,它包含中心点和边长两个参数,用来在地图上创建一个方形覆盖物。
幽鸿
2020/04/01
1.9K0
百度地图API开发指南(三)
相关推荐
百度高德地图行政区域边界GeoJSON数据获取并绘制行政区域
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档