Ich möchte überprüfen, ob eine bestimmte Breite/Länge innerhalb der kontinentalen USA ist oder nicht. Ich möchte keine Online-APIs verwenden und verwende Python.Gegebene Breite/Länge sagen, ob die Koordinate innerhalb der kontinentalen USA ist oder nicht
ich heruntergeladen this shapefile
from shapely.geometry import MultiPoint, Point, Polygon
import shapefile
sf = shapefile.Reader("cb_2015_us_nation_20m")
shapes = sf.shapes()
fields = sf.fields
records = sf.records()
points = shapes[0].points
poly = Polygon(points)
lon = -112
lat = 48
point = Point(-112, 48)
poly.contains(point)
#should return True because it is in continental US but returns False
Die Probe lon, lat innerhalb US Grenze ist aber poly.contains gibt False zurück. Ich bin nicht sicher, was das Problem ist und wie das Problem zu lösen, so dass ich testen kann, ob ein Punkt innerhalb der kontinentalen USA ist.
http:. // gis.stackexchange.com/questions/84114/shapely-unable-to-tell-if-polygon-contains-point Bist du sicher, dass deine Form "lon, lat" statt "lat, lon" ist? – TemporalWolf
ja, es ist lon, lat. Ich habe das Gegenteil überprüft, funktioniert auch nicht. Am Ende habe ich die State-Shape-Dateien verwendet und jetzt überprüfe ich alle Zustände mit der gleichen Methode und wenn einer von ihnen wahr zurückgibt, dann ist es wahr, obwohl Hacky es scheint, jetzt zu arbeiten. – Ash