【发布时间】:2021-07-13 17:37:59
【问题描述】:
我想在地理边界内随机生成 k 个纬度/经度点,特别是曼哈顿。我想到的一种解决方案是根据中心点的半径生成点,但这要么太不准确(没有覆盖足够的空间),要么最终会出现在海洋中(我希望它们只出现在陆地上)。如何实现这一点,是否有任何 python 库可以帮助解决这种地理限制?
【问题讨论】:
标签: python
我想在地理边界内随机生成 k 个纬度/经度点,特别是曼哈顿。我想到的一种解决方案是根据中心点的半径生成点,但这要么太不准确(没有覆盖足够的空间),要么最终会出现在海洋中(我希望它们只出现在陆地上)。如何实现这一点,是否有任何 python 库可以帮助解决这种地理限制?
【问题讨论】:
标签: python
您可以使用osmnx。它将从 Openstreetmap 加载道路网络。然后可以将道路网络图馈送到osmnx.utils_geo.sample_points 以创建统一的随机点样本。它们不会最终落入海洋,因为它们与道路网络相连。
import osmnx as ox
G = ox.graph_from_place("Manhattan, New York")
Gp = ox.project_graph(G)
points = ox.utils_geo.sample_points(ox.get_undirected(Gp), 20) # generate 20 random points
【讨论】: