问题标签 [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.
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)
?
这可能吗?
mysql - 从 POLYGON 对象获取最小/最大点
我有一个geom
包含多边形列的表。例如:
如何从该对象中提取最小和最大纬度和经度值作为浮点数?想法是在数据库中创建minLat
、maxLat
等列,以加快搜索速度。
python - mysql计算返回位置的距离
这不是重复的: Find distance between two points using latitude and longitude in mysql
我尝试了查询,但它不起作用,我得到空数据集和 0 作为答案。
查看答案,这就是解决方案,我不知道为什么这个问题被标记为来自 Shadow 的重复
我有一个具有以下结构的表:
我有一个 android 应用程序,可以 ping 我的服务器并在每次更改位置时添加一条记录。
例如
如果我走一个方向,我可以计算总距离:
然后我可以减去两个坐标,最终得到0.004000的经度距离
问题:
如果我添加:
那么我应该得到:0.008000
但我得到 0 因为位置 1 与位置 4 相同
mysql - MySQL 8.0 ST_CONTAINS 返回多边形外的记录,并错过多边形内的记录
我在使用 mysql 时遇到了差异st_contains
。我有一个区域表,其中包含它们的latitude
和longitude
列,我只想查询落在多边形内的所有记录。
当我这样做时,mysql返回多边形外的记录,并错过肯定在多边形内的记录。我能够使用 mysql 结果的谷歌地图创建视觉效果来帮助我调试。
下面是 SQL 查询
从视觉上看,它显示了所提供的多边形之外的记录,并且缺少应该在多边形内的记录。
例如,我有一个澳大利亚黑斯廷斯的区域记录,latitude:-38.3
它longitude:145.216667
显然在多边形中,但 mysql 从不返回此记录。新西兰境内也有多项记录。
边界是使用谷歌地图绘图插件生成的。
这是一个mysql错误,还是我做错了什么?
sql-server - ogr2ogr 错误:“无法初始化与服务器的连接....”
运行 ogr2ogr 时,我收到下面屏幕截图中详细说明的错误。使用的命令在我的另一台计算机上运行。我想知道这是否是因为我没有适当的权限而触发的错误。
最后一个细节:我上传到的数据库存在。
mysql - 将 PostGIS 中的空间数据导入 MySQL
我有一个 PostgreSQL 数据库,它在表的一列中包含 KML 数据。我用 postGIS 命令查询它,查询如下:
在geometry
列中,数据存储为 KML,如下所示:
所以我ST_geomFromKML
用来将数据转换为几何图形,然后搜索围绕该点创建的圆的交点。
我想将数据库迁移到 MySQL,并且想使用它的空间功能,但是我没有找到一种方法来使用/转换 MySQL 中的 KML 数据,就像我在 PostGIS 中所做的那样。
有没有办法做到这一点?
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))
我究竟做错了什么?
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]
请帮我解决这个问题,在此先感谢
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。
请帮忙。
mysql - ST_EQUALS 没有返回正确的结果?
在两个多边形上运行 ST_EQUALS 时,我得到了这些奇怪的结果:
多边形的坐标完全相同,但 MYSQL 返回 0 表示它们不相等。
当我在没有 SRID(默认 = 0)的情况下运行查询时,
MySQL 返回 1 表示它们确实相等。
我在这里缺少什么吗?谢谢你。