MySql的空间函数操作

MySql的空间函数操作MySql版本 > 5.6 # 计算两个坐标点之间的距离 # st_distance 计算的结果单位是度,需要乘111195(地球半径6371000*PI/180)是将值转化为米。 # /10000…

MySql的空间函数操作

MySql版本 > 5.6

# 计算两个坐标点之间的距离
# st_distance 计算的结果单位是度,需要乘111195(地球半径6371000*PI/180)是将值转化为米。
# /1000000 是将值转化为Km
SELECT b.*, (st_distance (point (b.lng,b.lat),point (116.368368,40.035424))*111195/1000000 )as juli FROM test_table b HAVING juli < 14 ORDER BY juli ASC


# 判断坐标点是否在多个面中 ST_Contains 的结果 1:表示在面内,0:不在面内
SELECT (ST_Contains (ST_GeomFromText("MultiPolygon (((116.244539 40.076175,116.244909 40.075457,116.245446 40.074242,116.250338 40.075551,116.249281 40.07762,116.248664 40.077677,116.247908 40.077677,116.247291 40.077608,116.246519 40.077415,116.245945 40.077181,116.245532 40.07698,116.245113 40.076713,116.244539 40.076175)))"),point (b.lng,b.lat)))as state, b.* FROM test_table b HAVING state = 1 ORDER BY id

知识拓展:

在MySQL中支持地理空间位置的几何表示,可存储的数据类型包括Geometry,Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon、GeometryCollection。其中Geometry可以支持任何一种空间类型的表示。

如下是各种空间几何对象的坐标文本表示(Well-known text, WKT):

常见的几何图形元素:

常见的空间几何元素:

多个同类或异类元素间的组合:

多个元素组合:

对于空间几何数据的存储和传输,除了WKT这种文本标记语言,MySQL中还常用到一种二进制格式(Well-Known Binary ,WKB),以及数据库内部存储的几何格式。这些格式最初是由Open Geospatial Consortium(OGC)组织定义的,遵循OGC标准,MySQL对中其SQL with Geometry Types环境下的一个子集实现了空间扩展。

常用的空间计算函数

1、判断两点之间的距离

ST_Distance(g1,g2),返回g1和g2之间的距离。如果任一参数是NULL或空几何,则 return value 为NULL。

2、图形1是否完全包含图形2

ST_Contains(g1,g2),返回 1 或 0 以指示g1是否完全包含g2。还可以用ST_Within(g2,g1)达到相同的效果。

3、不相交

ST_Disjoint(g1,g2),返回 1 或 0 以指示g1是否在空间上与(不相交)g2不相交。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6398.html

(0)
上一篇 2023-04-10 17:30
下一篇 2023-04-10

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注