python - 是否有对 mySQL 有空间支持的 python 库?

标签 python mysql spatial

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

最佳答案

我不知道有哪个包既可以查询 MySQL 又可以处理空间数据,但是 MySQL supports well-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包。

关于python - 是否有对 mySQL 有空间支持的 python 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15258892/

相关文章:

python - 如何在tkinter中获取<Motion>的方向?

mysql - 从第二个表中选择多个项目

php - 从 PHP 中的重复记录中获取特定数据

mysql - 通过对列进行分组返回特定​​行

NHibernate 空间映射返回 Antrl 错误

python - 使用 geopandas 从 NetCDF 数据中提取国家/地区

python - PySAL OLS 模型 : AttributeError: 'OLS' object has no attribute 'predict'

python - 使用边缘检测和 scikit-image 在 Python 中去除背景/屏蔽

python - os.path.join 似乎对打开斜杠很敏感,为什么?

javascript - Django:当 JavaScript 代码使用 python 变量时,如何将 JavaScript 代码单独存放在静态文件夹中