【问题标题】:MySql Geometry: How to populate table with a multipolygon from an multi-dimensional array?MySql Geometry:如何使用多维数组中的多面体填充表?
【发布时间】:2016-05-25 17:21:46
【问题描述】:

我一直在开发一款软件,该软件允许用户以一种完成循环并设置地理边界的方式添加指向地图的指针。像这样:

然后构建一个多维数组,准备好作为 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 的空间函数的理解非常有限,我目前认为用多面体填充表格需要使用许多线串参数,例如:

GeomFromText('MultiPolygon(((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1)))')

是否可以用从多维数组创建的多面体填充表?比如:

 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]
                                 ]
                               ]
                             ]
                           ))')

【问题讨论】:

    标签: mysql arrays multidimensional-array polygon spatial


    【解决方案1】:

    有两种方法。

    1. 将多维数组转换为 LINESTRINGS 数组,然后使用 MySQL 函数或类似于 IMPLODE 函数的函数来生成与您的示例相同的 Multipoligon。
    2. 将数组转换为 JSON 并使用 MySQL 5.7 ST_GeomFromGeoJSON 函数:https://dev.mysql.com/doc/refman/5.7/en/spatial-geojson-functions.html

    【讨论】:

      猜你喜欢
      • 2016-02-18
      • 1970-01-01
      • 2012-11-13
      • 2018-01-27
      • 2023-03-17
      • 2013-06-25
      • 2014-11-20
      • 2023-02-11
      • 2011-01-11
      相关资源
      最近更新 更多