我必须在 Python 中编写一个函数,该函数采用坐标列表和坐标参考系统(作为 EPSG 代码)。如果坐标在坐标系中有效,则返回 True,否则返回 False。我怎样才能做到这一点?
我的想法是获取最小和最大纬度和经度,创建一个粘合多边形并检查点是否落在里面。问题是我不知道如何从 EPSG 代码中获取最小和最大纬度和经度。我唯一的想法是将它们手动写入函数,这是毫无意义的。
这是正确的方法还是我想多了而有更简单的方法?
到目前为止,我有:
def valid_coordinates(EPSG):
print "Coordinate System : ", arcpy.SpatialReference(EPSG).name
array = arcpy.Array([
arcpy.Point(-180, -90),
arcpy.Point(180, -90),
arcpy.Point(-180, 90),
arcpy.Point(180, 90),
arcpy.Point(-180, -90),
])# build a polygon based on the array
polygon = arcpy.Polygon(array, EPSG)
point_1 = Point(-0.4, 30.3)
point_2 = Point(-1000,-5000)
print "Point 1: ", polygon.contains(point_1) #returns True which is correct
print "Point 2: ", polygon.contains(point_2) #returns False is correct
但这毫无意义,因为函数应该采用任何坐标和任何 EPSG