【问题标题】:MySQL: How to build polygin with radius/center of certain point?MySQL:如何用某个点的半径/中心构建多边形?
【发布时间】:2020-01-11 21:26:24
【问题描述】:

我有一个 MySQL 表,其中包含存储在 POINT 数据类型中的地点的经度/纬度,名称为 lonlat(POINT 数据类型)。

我还有一个名为 area 的列,POLYGON MySQL 数据类型。

我想用矩形多边形填充area 列,该矩形多边形的半径(例如100 米)为lonlat 列,lonlat 是这个矩形多边形的中心。

如何使用更新命令来做到这一点?我想要这样的查询,但是如何填充区域?

UPDATE places SET area={?}

注意:MySQL 版本为 5.7

【问题讨论】:

  • 内切还是外切?
  • 外接正方形多边形

标签: mysql geometry geospatial spatial spatial-query


【解决方案1】:

经过尝试,我找到了这段代码,但它构建了diamond,半径为15米lonlat坐标:

update places set area=ST_GEOMFROMTEXT(concat( 'POLYGON((', ST_X(lonlat)+0.000135,' ',ST_Y(lonlat) ,',', ST_X(lonlat),' ',ST_Y(lonlat)-0.000135 ,',', ST_X(lonlat)-0.000135,' ',ST_Y(lonlat) ,',', ST_X(lonlat),' ',ST_Y(lonlat)+0.000135 , ',', ST_X(lonlat)+0.000135,' ',ST_Y(lonlat) ,'))'))

【讨论】:

  • 0.000135度的值等于15米
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多