制作国界线正确的世界地图 (Shapefile)

制作国界线正确的世界地图 (Shapefile)

参考

获取标准世界地图

国家自然资源部 获取标准世界地图。下载.eps格式文件。
在这里插入图片描述

在 Adobe Illustrate 中提取地图边界线

  1. 用 Adobe Illustrate 打开下载的 .eps 文件。选择 视图 -> 画板适合窗口大小 将图缩放至全窗口可见
    在这里插入图片描述

  2. 点击选择工具 -> 选择既包含 大陆线(蓝色)又包含 国界线 (黑色) 的界限(如图选择后变为蓝色的线)-> 点击 选择 -> 点击 相同 -> 点击 填色和描边
    在这里插入图片描述

  3. 得到如下图结果
    在这里插入图片描述

  4. 按键盘 BackspaceDelete 键,去除涂色,结果如下
    在这里插入图片描述

  5. 右击 直接选择工具 -> 切换为 套索工具
    在这里插入图片描述

  6. 如图,用 套索工具 圈住非国界的线或字体,并按 Delete 键删除。
    在这里插入图片描述

  7. 重复上述步骤,直至只剩需要的国界线,如下图
    在这里插入图片描述

  8. Ctrl + A 全选所有边界,选择 文件 -> 导出 -> 导出为 ,如下图
    在这里插入图片描述

  9. 选择导出文件为 .dwg 格式,保存边界文件
    在这里插入图片描述

  10. 点击 导出 后,选择 AutoCAD 版本 (注意版本必须低于2013) -> 选择仅导出所选图稿 -> 确定,保存结果成功
    在这里插入图片描述

QGIS 将 .dwg 文件转为 .shp (Shapefile) 文件

  1. 打开 QGIS,选择 工程 -> 导入导出 -> 从DWG/DXF中导入图层
    在这里插入图片描述

  2. 点击 从DWG/DXF中导入图层后,在弹出框中选择 ··· ,弹出保存位置对话框,选择保存位置,输入输出文件名,点击 确定。指定输出文件
    在这里插入图片描述

  3. CRS选择 EPSG: 4326 -> 导入 -> 保存的边界线的 .dwg文件 -> 打开,导入 dwg 文件。该步骤耗费较长时间导入。导入完成后,填写 组名 -> ok,导入完成。
    在这里插入图片描述

  4. 右击 polylines -> 导出 -> 要素另存为
    在这里插入图片描述

  5. 格式选择 ESRI Shapefile -> 选择输出文件位置及名称 -> CSR 选择 ESPG: 4326 -> OK 即可保存为 Shapefile 文件。
    在这里插入图片描述

  6. 上述方法保存的世界地图可从 https://download.csdn.net/download/m0_37568304/87348357下载

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Python可以使用shapefile库来处理shapefile地图,并进行地图匹配操作。地图匹配是将离散的GPS轨迹点与地图网络进行匹配,以获得与之相对应的地理位置。 首先,需要安装shapefile库。可以使用pip命令来安装: ``` pip install pyshp ``` 导入shapefile库,读取地图数据: ```python import shapefile sf = shapefile.Reader("map.shp") ``` 读取GPS轨迹数据: ```python gps_points = [(x1, y1), (x2, y2), ...] # 假设GPS轨迹数据为一系列坐标点 ``` 对于每一个GPS点,需要找到最近的道路线。可以使用点-线匹配算法来实现。首先,遍历所有道路线,计算每条道路线上距离当前GPS点最近的投影点: ```python from shapely.geometry import Point, LineString nearest_points = [] # 记录每个GPS点对应的最近点 for gps_point in gps_points: min_distance = float('inf') # 设置一个初始最小距离为无穷大 nearest_point = None # 记录当前最近的投影点 # 遍历所有道路线 for shape in sf.shapes(): line = LineString(shape.points) point = Point(gps_point) distance = line.distance(point) if distance < min_distance: min_distance = distance nearest_point = line.interpolate(line.project(point)) nearest_points.append(nearest_point) ``` 通过上述步骤,我们可以获得每个GPS点对应的最近投影点nearest_points。接下来,可以根据需要进行进一步处理,比如绘制匹配结果或计算匹配误差等。 以上是Python中使用shapefile库进行shapefile地图匹配的简要过程。 ### 回答2: Python中有许多库可以用于shapefile地图匹配,常用的有geopandas和shapely库。 geopandas库是在pandas库的基础上开发的,提供了更丰富的地理数据处理功能。它使用了shapely库的功能,可以轻松实现地图匹配的需求。首先,我们可以使用geopandas库读取shapefile文件,得到一个geopandas的GeoDataFrame对象。 ```python import geopandas as gpd # 读取shapefile文件 gdf = gpd.read_file("path/to/shapefile.shp") ``` 接下来,我们可以使用shapely库提供的方法对地理数据进行匹配。shapely库包含了许多用于几何操作的函数,可以对地图数据进行空间查询、空间关系判断等操作。 ```python from shapely.geometry import Point # 创建一个Point对象 point = Point(1, 1) # 判断point是否在gdf中 contains = gdf.contains(point) # 打印结果 print(contains) ``` 除此之外,geopandas库还提供了一些方便的方法,如空间索引、空间切割等。这些功能可以帮助我们更高效地进行地图匹配操作。 ```python from shapely.ops import unary_union # 创建一个buffer区域 buffer = unary_union(gdf.geometry.buffer(0.1)) # 判断point是否在buffer区域内 within = buffer.contains(point) # 打印结果 print(within) ``` 总的来说,使用Python的geopandas和shapely库可以很方便地实现shapefile地图的匹配操作,让我们可以更灵活地处理地理空间数据。 ### 回答3: shapefile地图匹配是指在地理信息系统中使用Python编程语言进行地图数据之间的匹配和关联。Python中提供了多种工具和库来实现这一目的,其中最常用的库包括geopandas和pyshp。 首先,需要将shapefile地图数据加载到Python中。可以使用geopandas库中的read_file()函数来读取shapefile文件,并将其转换为一个GeoDataFrame对象。GeoDataFrame对象是pandas库的一个拓展,可用于处理地理数据。 然后,可以使用geopandas库提供的空间查询和操作功能,来进行地图数据的匹配。例如,可以使用sjoin()函数进行空间连接,将两个GeoDataFrame对象基于空间关系进行匹配。这可以用来查找在两个地图数据集之间共享边界、相交或包含的地理要素。 另外,可以使用pyshp库来进行shapefile地图数据的读写和操作。pyshp库提供了Shapefile类和相关函数,可以用于在Python中读取、创建和编辑shapefile文件。通过读取shapefile文件,可以得到地图数据的几何属性和属性表,进一步实现地图数据的匹配和分析。 最后,根据实际需求,可以使用Python的数据处理和可视化库,如pandas、numpy和matplotlib,对匹配后的地图数据进行分析和展示。可以根据匹配结果计算统计指标、制作地图图层或生成图表,帮助用户更好地理解地图数据。 总之,使用Python进行shapefile地图匹配可以方便地实现地图数据的关联和分析。通过合理选择适用的库和函数,可以高效地处理大规模和复杂的地图数据,并实现各种空间查询和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值