作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如果我在 MySQL 中有一个名为 Poly 的列,类型为 polygon,我想获取 NW 角、NE 角、SE 角和 SW 角,我该怎么做?从 Envelope() 应该有 lat1、lat2、lon1 和 lon2 组成四个角,如下所示 lat1,lon1 是 NW; lat1,lon2 为东北方向; lat2,lon2 是东南方向; lat2,lon1 是 SW。当我尝试 X(PointN(Envelope(Poly),1)) AS lat1 时,它总是返回 NULL。这可以在 MySQL 中完成吗?
SELECT
X(PointN(Envelope(Poly),1)) AS lat1, X(PointN(Envelope(Poly),3)) AS lat2,
Y(PointN(Envelope(Poly),1)) AS lon1, Y(PointN(Envelope(Poly),2)) AS lon2
FROM boundaries.mt_us_zip5_2013_boundaries_polys_bin
WHERE zip = '00601';
上面的查询返回:
NULL,NULL,NULL,NULL
这是信封的样子:
SELECT AsText(Envelope(Poly))
FROM boundaries.mt_us_zip5_2013_boundaries_polys_bin
WHERE zip = '00601';
最后一个查询返回:
POLYGON((18.111929 -66.836366,18.250344 -66.836366,18.250344 -66.659293,18.111929 -66.659293,18.111929 -66.836366))
我正在使用 MySQL 5.5.36 版本,升级到新版本的 MySQL 是否可以提供我需要的功能?
最佳答案
PointN
仅在 LineString
上定义,但幸运的是您可以在 Polygon
上调用 ExteriorRing
来获得线串
。在你的例子中:
SELECT
X(PointN(ExteriorRing(Envelope(Poly)),1)) AS lat1,
X(PointN(ExteriorRing(Envelope(Poly)),3)) AS lat2,
Y(PointN(ExteriorRing(Envelope(Poly)),1)) AS lon1,
Y(PointN(ExteriorRing(Envelope(Poly)),2)) AS lon2
FROM boundaries.mt_us_zip5_2013_boundaries_polys_bin
WHERE zip = '00601';
关于mysql - 有没有办法从 MySQL 的 Envelope(Poly) 中选择 lat1、lat2、lon1、lon2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23555772/
我是一名优秀的程序员,十分优秀!