我有一个描述西班牙边界的点列表。我想知道一对lat,lon是否在这些边界内。我尝试了以下方法:
  
  import shapefile
import matplotlib.pyplot as plt
from shapely.geometry import MultiPoint, Point, Polygon
from shapely.geometry.polygon import Polygon
sf = shapefile.Reader(r"\ESP_adm0.shp")
shapes = sf.shapes()
lat = []; lon = []
for i in range(len(shapes[0].points)):
    lon.append(shapes[0].points[i][0]);lat.append(shapes[0].points[i][1])
  
   我知道我正在检索点,因为我能够绘制并获得所需的结果:
  
  plt.plot(lon,lat,'.', ms=0.1)
  
   (在下面的链接中绘制)
   
    plot result
   
  
  
   我执行以下操作以将点变成多边形:
  
      coords = list(zip(lat,lon))
    spain_pol = Polygon(coords)
  
   然后我使用contains函数,总是得到false。
  
      spain_pol.contains(Point(0,42))
    spain_pol.contains(Point(42,0))
  
   这两个都返回false。事实上,我没有得到一个点,我试图返回一个真的。
  
  
   我尝试了各种各样的事情,我想我一定错过了一些基本的东西。也许西班牙有岛屿,而且有不止一个多边形,这就是问题所在?我迷路了。欢迎任何帮助。