问题标签 [mysql-spatial]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
358 浏览

laravel - 覆盖 Laravel 模型视图

我正在尝试使用 MySQL 空间数据类型尽可能本地处理地图标记位置。我不想求助于额外的列,lat最终lng,,我也希望能够对线和多边形(以及其他几何图形)进行编码。该表具有point列类型:

在视图方面,考虑到在数据库中创建这些空间类型的内置支持,Eloquent 比我想象的要笨一些。如果我get()是模型,map_center则显示原始编码几何。

我写了一个center()方法,它返回一个包含 lat 和 long 的对象:

输出:

这是一个不错的解决方法,但有点难看。相反,我希望 Eloquent 提取它,以便模型返回人类可读的坐标,例如:

鉴于它是一种point类型(具有两个组件),是否可以使用ST_AsText(p)包含ST_X(p)and的对象自动检索数据ST_Y(p)

这可能吗?

0 投票
1 回答
410 浏览

mysql - 从 POLYGON 对象获取最小/最大点

我有一个geom包含多边形列的表。例如:

如何从该对象中提取最小和最大纬度和经度值作为浮点数?想法是在数据库中创建minLatmaxLat等列,以加快搜索速度。

0 投票
1 回答
137 浏览

python - mysql计算返回位置的距离

这不是重复的: Find distance between two points using latitude and longitude in mysql

我尝试了查询,但它不起作用,我得到空数据集和 0 作为答案。

查看答案,这就是解决方案,我不知道为什么这个问题被标记为来自 Shadow 的重复

我有一个具有以下结构的表:

我有一个 android 应用程序,可以 ping 我的服务器并在每次更改位置时添加一条记录。

例如

如果我走一个方向,我可以计算总距离:

然后我可以减去两个坐标,最终得到0.004000的经度距离

问题:

如果我添加:

那么我应该得到:0.008000

但我得到 0 因为位置 1 与位置 4 相同

0 投票
1 回答
228 浏览

mysql - MySQL 8.0 ST_CONTAINS 返回多边形外的记录,并错过多边形内的记录

我在使用 mysql 时遇到了差异st_contains。我有一个区域表,其中包含它们的latitudelongitude列,我只想查询落在多边形内的所有记录。

当我这样做时,mysql返回多边形外的记录,并错过肯定在多边形内的记录。我能够使用 mysql 结果的谷歌地图创建视觉效果来帮助我调试。

这是我能够使用谷歌地图创建的记录的视觉效果

下面是 SQL 查询

从视觉上看,它显示了所提供的多边形之外的记录,并且缺少应该在多边形内的记录。

例如,我有一个澳大利亚黑斯廷斯的区域记录,latitude:-38.3longitude:145.216667显然在多边形中,但 mysql 从不返回此记录。新西兰境内也有多项记录。

边界是使用谷歌地图绘图插件生成的。

这是一个mysql错误,还是我做错了什么?

0 投票
0 回答
198 浏览

sql-server - ogr2ogr 错误:“无法初始化与服务器的连接....”

运行 ogr2ogr 时,我收到下面屏幕截图中详细说明的错误。使用的命令在我的另一台计算机上运行。我想知道这是否是因为我没有适当的权限而触发的错误。

连接到数据库的 OGR2OGR 错误

最后一个细节:我上传到的数据库存在。

0 投票
2 回答
730 浏览

mysql - 将 PostGIS 中的空间数据导入 MySQL

我有一个 PostgreSQL 数据库,它在表的一列中包含 KML 数据。我用 postGIS 命令查询它,查询如下:

geometry列中,数据存储为 KML,如下所示:

所以我ST_geomFromKML用来将数据转换为几何图形,然后搜索围绕该点创建的圆的交点。

我想将数据库迁移到 MySQL,并且想使用它的空间功能,但是我没有找到一种方法来使用/转换 MySQL 中的 KML 数据,就像我在 PostGIS 中所做的那样。

有没有办法做到这一点?

0 投票
1 回答
50 浏览

mysql - 如何将 PostGIS 查询转换为 MySQL 空间查询

我需要翻译这个 PostGIS 查询:

到带有空间数据的 MySQL。

我试过这个,但它不工作:

MySQLboundary列包含以下格式的数据:

POLYGON((11.752094222227 44.322710250414,11.753712975677 44.322710250414,11.753712975677 44.321900873689,11.752094222227 44.321900873689,11.752094222227 44.322710250414))

我究竟做错了什么?

0 投票
0 回答
161 浏览

java - 传递 POINT 数据类型值的 JSON 格式是什么?

我正在使用 Java、Spring boot、MySQL 和数据 JPA。在这里检查我的代码

在我的 application.properties 文件中,我添加了

在传递 JSON 时,"point": "51.61100420, -0.10213410"我遇到了这个错误

> “JSON 解析错误:无法构造实例org.springframework.data.geo.Point(尽管至少存在一个 Creator):没有字符串参数构造函数/工厂方法可以从字符串值反序列化('(51.61100420,-0.10213410)');嵌套异常是 com.fasterxml。 jackson.databind.exc.MismatchedInputException:无法构造实例org.springframework.data.geo.Point(尽管至少存在一个创建者):没有字符串参数构造函数/工厂方法可以从字符串值反序列化('(51.61100420,-0.10213410)')\n 在 [来源: (PushbackInputStream);行:11,列:12]

请帮我解决这个问题,在此先感谢

0 投票
1 回答
103 浏览

mysql - 如何找到沿折线Mysql的最近距离

我正在构建一个拼车应用程序。

该应用程序具有搜索驱动程序的功能。

司机(工作中心的员工)可以从应用程序中选择前往目的地的路线。

同样属于工作中心并且在路线内的乘客可以加入他们的行程。

这是在用户在应用程序中输入目的地后通过搜索功能完成的。

这是游乐设施的表结构

driver id是驱动程序的ID,path是从驱动程序源到目的地的行字符串。为简单起见,我不会包含其他字段

我的任务是找到所有经过我的位置且匹配率达到 85% 或以上的司机

在查看了 Mysql spatial Types https://dev.mysql.com/doc/refman/8.0/en/spatial-types.html之后,我编写了一个自己的查询,看起来部分还可以,请参阅下面的查询

工作正常Point(10.0141713 76.33320359999999)介于Point(10.013059 76.363075) and point(9.9771685 76.2773228)

但这行不通

Point(10.0185876 76.3439941)也在之间Point(10.013059 76.363075) and point(9.9771685 76.2773228)

我想我需要为上面的内容添加一些覆盖距离point才能返回我不知道的真值。

我预计骑行匹配率超过 85%。

我的意思是用户不必属于驱动程序选择的线串,允许小公差。

我正在使用 mysql 版本 8。

请帮忙。

0 投票
1 回答
15 浏览

mysql - ST_EQUALS 没有返回正确的结果?

在两个多边形上运行 ST_EQUALS 时,我得到了这些奇怪的结果:

多边形的坐标完全相同,但 MYSQL 返回 0 表示它们不相等。

当我在没有 SRID(默认 = 0)的情况下运行查询时,

MySQL 返回 1 表示它们确实相等。

我在这里缺少什么吗?谢谢你。