3

是否可以将 sqlsoup 或其他一些 python MySQL 库与 MySql 的几何、点、多边形等任何空间类型一起使用?如果是这样,有人可以展示如何使用所述 python 库执行 SELECT 并从多边形中提取点吗?

4

1 回答 1

2

我不知道有一个包既可以查询 MySQL 又可以处理空间数据,但是MySQL 支持众所周知的文本和众所周知的二进制空间数据格式(这将允许您存储点、线、多边形等)。

您需要使用MySQLdb对您的 MySQL 进行查询,使用SQL 语句获取数据(此处的示例)。如果你想要的只是组成一个多边形的点,你可以做一些简单的字符串操作来构造一个点数组:

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包。

于 2013-04-18T14:00:48.777 回答