首页 > 解决方案 > 如何从 GeometryArray 或 LineString 中提取坐标?

问题描述

我想在我拥有的geojson文件中测量一个点(带坐标)和一条线(在几个线串中有许多点或坐标)之间的最小距离。(使用geopandas加载文件)

I will give an example of geojson data here
"type": "FeatureCollection",
"features": [
{ "type": "Feature", "properties": { "N02_001": "23", "N02_002": "5", "N02_003": "沖縄都市モノレール線", "N02_004": "沖縄都市モノレール" }, "geometry": { "type": "LineString", "coordinates": [ [ 127.67948, 26.21454 ], [ 127.6797, 26.21474 ], [ 127.67975, 26.2148 ], [ 127.68217, 26.21728 ], [ 127.68357, 26.21862 ], [ 127.68394, 26.21891 ], [ 127.68419, 26.21905 ] ] } },

加载的数据是

      N02_001 N02_002     N02_003         N02_004                                           geometry
0          23       5  沖縄都市モノレール線       沖縄都市モノレール  LINESTRING (127.67948 26.21454, 127.67970 26.2...
1          12       5    いわて銀河鉄道線  アイジーアールいわて銀河鉄道  LINESTRING (141.29139 40.33740, 141.29176 40.3...
2          12       5    いわて銀河鉄道線  アイジーアールいわて銀河鉄道  LINESTRING (141.27554 40.23936, 141.27567 40.2...
3          12       5    いわて銀河鉄道線  アイジーアールいわて銀河鉄道  LINESTRING (141.28659 40.26092, 141.28538 40.2...
4          12       5    いわて銀河鉄道線  アイジーアールいわて銀河鉄道  LINESTRING (141.29082 40.28615, 141.29089 40.2...

我试图通过拆分记录的每个几何部分来仅绘制坐标部分,以便使用数组进行计算。- 但它不起作用,因为每条记录都是线串或几何数组。

为了找到其他方法,我在这里阅读了关于 google 和 QnAs 的几篇文章,但除了 1 attribute 之外我找不到任何提示;距离(其他)写在这里(http://geopandas.org/data_structures.html#attributes)。

我想如果我可以使某个点形成几何点,我可以得到与线和某个点的最小距离。(但现在不知道如何做到这一点)

很抱歉,我没有几个代码可以给你看。我现在只有 3 部分代码。读取文件,尝试拆分(不起作用),按列切片 GeoSeries(切片对象是 LineString 或 GeometryArray 的数组)

请给我一些建议。

filename = "N02-18_RailroadSection.geojson"
linename = "総武線"
import pandas as pd
import numpy as np
import geopandas as gpd
#load file
gdf1 = gpd.read_file(fn)
#draw records have certain value ; line name
all_wthcl = gdf1[gdf1.N02_003==linename]

标签: pythongeopandas

解决方案


推荐阅读