2013-03-06 42 views

回答

2

我不知道一个包,两个询问MySQL和处理空间数据,但MySQL supportswell-known-textwell-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包。