Je veux vérifier si une latitude/longitude particulière se trouve dans la zone continentale des États-Unis ou non. Je ne veux pas utiliser les API en ligne et j'utilise Python.Étant donné la latitude/longitude, dites si la coordonnée est dans la zone continentale des États-Unis ou non
Je téléchargé 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
L'échantillon lon, lat est dans les limites des États-Unis, mais poly.contains retourne Faux. Je ne suis pas sûr de savoir quel est le problème et comment résoudre le problème afin que je puisse tester si un point est dans la zone continentale des États-Unis.
http: //. gis.stackexchange.com/questions/84114/shapely-unable-to-tell-if-polygon-contains-point Êtes-vous sûr que votre forme est «lon, lat» au lieu de «lat, lon»? – TemporalWolf
ouais, c'est lon, lat. J'ai vérifié l'inverse, ne fonctionne pas non plus. J'ai fini par utiliser les fichiers de forme d'état et maintenant je vérifie tous les états avec la même méthode et si l'un d'entre eux retourne vrai alors c'est vrai, bien que hacky cela semble fonctionner pour l'instant. – Ash