MySql 几何:如何使用多维数组中的多面体填充 table?
MySql Geometry: How to populate table with a multipolygon from an multi-dimensional array?
我一直在开发一款软件,允许用户以完成循环并设置地理边界的方式向地图添加指针。像这样:
这将构建一个多维数组,准备将其作为 MULTIPOLYGON 存储在 MySql 中。
每个数组看起来都像这样 -- 尽管精简得少了一点。
[
[
[68.935,-48.625],
[69.58,-48.94],
[70.525,-49.065],
[70.56,-49.255]
]
]
或
[
[
[
[-77.53466,23.75975],
[-77.78,23.71],
[-78.03405,24.28615],
[-77.53466,23.75975]
]
],
[
[
[-77.82,26.58],
[-77.82,26.58]
]
],
[
[
[-77,26.59],
[-77,26.59]
]
]
]
多维数组的深度没有限制,仅由用户输入的详细程度和[或]区域是否被分成多个部分来设置——想想孤岛。
我目前对 MySql 的空间函数的理解非常有限,我目前认为用多边形填充 table 需要使用多个线串参数,例如:
GeomFromText('MultiPolygon(((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1)))')
是否可以用从多维数组创建的多面体填充 table?类似于:
GeomFromText('MultiPolygon(([
[
[
[-77.53466,23.75975],
[-77.78,23.71],
[-78.03405,24.28615],
[-77.53466,23.75975]
]
],
[
[
[-77.82,26.58],
[-77.82,26.58]
]
],
[
[
[-77,26.59],
[-77,26.59]
]
]
]
))')
有两种方法。
- 将多维数组转换为 LINESTRINGS 数组,然后使用 MySQL 函数或类似于 IMPLODE 函数的函数生成与示例中相同的 Multipoligon。
- 将数组转换为JSON并使用MySQL 5.7 ST_GeomFromGeoJSON函数:https://dev.mysql.com/doc/refman/5.7/en/spatial-geojson-functions.html
我一直在开发一款软件,允许用户以完成循环并设置地理边界的方式向地图添加指针。像这样:
这将构建一个多维数组,准备将其作为 MULTIPOLYGON 存储在 MySql 中。
每个数组看起来都像这样 -- 尽管精简得少了一点。
[
[
[68.935,-48.625],
[69.58,-48.94],
[70.525,-49.065],
[70.56,-49.255]
]
]
或
[
[
[
[-77.53466,23.75975],
[-77.78,23.71],
[-78.03405,24.28615],
[-77.53466,23.75975]
]
],
[
[
[-77.82,26.58],
[-77.82,26.58]
]
],
[
[
[-77,26.59],
[-77,26.59]
]
]
]
多维数组的深度没有限制,仅由用户输入的详细程度和[或]区域是否被分成多个部分来设置——想想孤岛。
我目前对 MySql 的空间函数的理解非常有限,我目前认为用多边形填充 table 需要使用多个线串参数,例如:
GeomFromText('MultiPolygon(((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1)))')
是否可以用从多维数组创建的多面体填充 table?类似于:
GeomFromText('MultiPolygon(([
[
[
[-77.53466,23.75975],
[-77.78,23.71],
[-78.03405,24.28615],
[-77.53466,23.75975]
]
],
[
[
[-77.82,26.58],
[-77.82,26.58]
]
],
[
[
[-77,26.59],
[-77,26.59]
]
]
]
))')
有两种方法。
- 将多维数组转换为 LINESTRINGS 数组,然后使用 MySQL 函数或类似于 IMPLODE 函数的函数生成与示例中相同的 Multipoligon。
- 将数组转换为JSON并使用MySQL 5.7 ST_GeomFromGeoJSON函数:https://dev.mysql.com/doc/refman/5.7/en/spatial-geojson-functions.html