【发布时间】:2019-03-15 04:55:11
【问题描述】:
我想计算一个点与使用 GeoPandas 的 cascaded_union 函数创建的 Multiploygon geoseries 对象的距离。以下是我的代码:
import numpy as np
import pandas as pd
import geopandas as gpd
from shapely.ops import cascaded_union
from matplotlib import pyplot as plt
from shapely.geometry import LineString, Point, MultiPoint
fp = "\\TM_WORLD_BORDERS-0.3\\TM_WORLD_BORDERS-0.3.shp"
data = gpd.read_file(fp)
mycountries = ['Canada','Russia']
req_data = data[data.NAME.isin(mycountries)]
req_data = req_data.reset_index()
req_data = req_data.drop('index',axis=1)
polygons = [req_data['geometry'][0],req_data['geometry'][1]]
boundary = gpd.GeoSeries(cascaded_union(polygons))
boundary.plot(color = 'black')
plt.show()
我要求当我计算一个点与多面体的距离时,它应该考虑最近的国家/多边形,并且距离应该以英里/公里为单位。对此的任何帮助将不胜感激。
我尝试使用距离函数,但得到的结果不正确。此外,如果我考虑印度洋某处的某个点,它给出的结果为 0,这又不是我所需要的。
形状文件可以从 http://thematicmapping.org/downloads/world_borders.php
上的 TM_WORLD_BORDERS-0.3.zip 文件下载【问题讨论】:
-
如何定义从一个点到一个多面体的距离?
-
我将点到多面体的距离定义为该点与多面体平面中存在的最近多边形边界上的最近点之间的最小距离。我希望这能回答你的问题。
标签: python polygon distance geopandas shapely