2016-10-12 3 views
3

Ich möchte den Abstand zwischen einem Punkt und der Grenze eines Landes mit Python/shapely berechnen. Es sollte nur feine Punktdistanz (Poly), z.B. hier Find Coordinate of Closest Point on Polygon Shapely gezeigt, aber mit geopandas Gesicht ich das Thema: 'GeoSeries' object has no attribute '_geom'gis berechne Entfernung zwischen Punkt und Polygon/Grenze

Was in meinem Umgang mit den Daten ist falsch? Meine Grenze-Datensatz ist von http://www.gadm.org/

'GeoSeries' object has no attribute '_geom'

+0

Wie auf dem Bild zu sehen: 0 MultiPolygon dtype: object –

+0

Ist 'austriaBorders.geometry' wirklich eine wohlgeformte Geometrie? bitte, führe 'print type (austriaBorders.geometry)' – eguaio

+0

Ich lese die ESRI-Datei über geopandas –

Antwort

3

Nach geopandas Dokumentation, ein GeoSeries ist ein Vektor von Geometrien (in Ihrem Fall, sagt 0 (POLYGON..., dass Sie nur ein Objekt, aber es ist immer noch ein Vektor). Es sollte eine Möglichkeit geben, das erste Geometrieelement zu erhalten. Die GeoSeries-Klasse implementiert die __getitem__-Methode, daher sollte austriaBorders.geometry[0] Ihnen die Geometrie geben, die Sie benötigen. Versuchen Sie es mit point.distance(austriaBorders.geometry[0]).

Wenn Sie nur die Entfernung zu einem Punkt benötigen, hat die GeoSeries die Methode distance implementiert, aber es wird einen Vektor mit dem Abstand zu jeder Geometrie zurückgeben, die es enthält (laut Dokumentation).

+2

tatsächlich [0] ist shapely.geometry.multipolygon.MultiPolygon –

Verwandte Themen