是否可以将sqlsoup或其他python MySQL库与MySql的Geometry,Point,Polygon等任何空间类型一起使用?如果是这样,有人可以展示如何使用所述python库来执行SELECT并从多边形中提取点吗?
答案 0 :(得分:2)
我不知道一个查询MySQL并处理空间数据的包,但MySQL supports well-known-text和well-known-binary空间数据格式(这将允许您存储点) ,线条,多边形等)。
您需要使用MySQLdb对MySQL进行查询,并使用SQL语句(examples here)获取数据。如果你想要的只是构成多边形的点,你可以做一些简单的字符串操作来构造一个点数组:
input = "POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10))"
def polygon_to_points(polygon):
geometry = polygon[10:-2]
coordinates = geometry.split(', ')
coord_pairs = []
for c in coordinates:
pair = c.split(' ')
pair_num = [float(pair[0]), float(pair[1])]
coord_pairs.append(pair_num)
return coord_pairs
按预期返回[[30.0,10.0],[10.0,20.0],[20.0,40.0],[40.0,40.0],[30.0,10.0]]
。如果您想进行更复杂的空间查询/分析,请查看Shapely包。