mysql 大地坐标系_坐标系中找一个参考点某个范围内坐标点的问题
时间: 2024-03-02 14:48:12 浏览: 28
如果你想在 MySQL 中根据大地坐标系中的参考点找到某个范围内的坐标点,可以使用以下步骤:
1. 将大地坐标系转换为平面坐标系,以便进行距离计算。可以使用 MySQL 自带的 GIS 函数 ST_Transform() 进行转换。
2. 根据参考点和范围计算出矩形的边界,可以使用 GIS 函数 ST_Expand()。
3. 使用 GIS 函数 ST_Contains() 判断每个坐标点是否在矩形范围内。
下面是一个示例查询语句,假设我们有一个名为 `points` 的数据表,其中包含 `longitude` 和 `latitude` 两列,分别表示经度和纬度。我们想要找到以参考点经度为 120.123,纬度为 30.456 为中心,半径为 1000 米范围内的所有坐标点:
```
SELECT *
FROM points
WHERE ST_Contains(
ST_Transform(
ST_Expand(
ST_Buffer(
ST_Transform(
POINT(120.123, 30.456), -- 参考点坐标
4326, -- 大地坐标系
3857 -- 平面坐标系
),
1000 -- 半径为 1000 米
),
3857 -- 平面坐标系
),
4326 -- 大地坐标系
),
POINT(longitude, latitude) -- 待查询坐标点
);
```
注意,上述查询语句中使用的坐标系为 WGS84(EPSG 4326)和 Web Mercator(EPSG 3857),如果你使用的是其他坐标系,需要根据实际情况进行修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)