问题标签 [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 回答
542 浏览

mysql - 使用表数据和 ST_Distance_Sphere 的 MYSQL 地理空间函数

这是我的查询,它试图返回从特定点到表中所有记录的距离。

这是表创建

这是选择语句。

但它会产生以下错误:

“错误”、“1210”、“st_distance_sphere 的参数不正确”

如何使用存储在数据库中的点类型获取计算出的距离以及数据。

这个语句完美地工作

0 投票
1 回答
2062 浏览

mysql - Mysql函数MBRContains不准确

我有以下多边形(在图片中你可以看到它覆盖的区域)

多边形区域

当我执行MBRIntersect,MBRContainsWithin函数时,它们返回绿色标记在多边形内部,但它不是(如您在图像中看到的)。我正在执行下一句来得到它:

我得到

但我期待

我尝试了以下情况:

  • 保存分配 4326 SRID 的几何图形。
  • 使用其他功能,得到相同的响应。

我正在使用 5.7.14 MySQL 版本

我究竟做错了什么?

我解决了这个问题,只是验证没有距离。但是,为什么我会从这些函数中得到这个结果?

0 投票
1 回答
395 浏览

mysql - MySQL空间查询

我有一张普通的桌子。现在我添加了一个空间列

现在我的表有空值: 在此处输入图像描述

现在在 MySQL 教程中使用 insert 语句:

但我想在已经存在的表中删除空值并根据纬度和经度在每一行中插入点数据。喜欢

并制作空间索引。我该怎么做?

0 投票
0 回答
41 浏览

mysql - 为什么点插入给出错误?

我正在使用此语句将数据插入数据库。

现在插入几何我引用了这个链接(http://dev.mysql.com/doc/refman/5.7/en/populating-spatial-columns.html)它说INSERT INTO geom VALUES (ST_GeomFromText('POINT(1 1)'));

在 SQL 中,数据是这样存储的:6828-1-1418515200000,POINT (142.4685224783753 -38.369480766871604),6828,2014-12-14T00:00:00.000Z

所以我想如果我认为 %s 将被替换为 ,POINT (142.4685224783753 -38.369480766871604)这与 MySQL 教程中的查询相同。

但是,它给出的错误IntegrityError: 1048 (23000): Column 'geometry' cannot be null.

行值

0 投票
1 回答
1286 浏览

mysql - 这个 MySQL 地理查询中使用的度量单位是什么,用于查找与中心点具有特定距离的所有点?

我正在处理 MySQL 地理查询。

因此,按照本教程:http ://howto-use-mysql-spatial-ext.blogspot.it/2007/11/using-circular-area-selection.html

我已经实现了这个查询,它找到了与指定点有特定距离的所有点:

通过这段代码,我定义了中心点和半径。

最后,我执行查询,找到所有点的距离由该设置的中心点的半径表示:

它似乎工作正常。

我的疑问是:@radius的度量单位是什么?是公里还是什么?

在此示例中, @radius的值设置为30。但究竟是什么代表了这个价值呢?

0 投票
0 回答
389 浏览

mysql - 如何以公里为单位将这个 MySql 地理查询的距离转换为从中心点开始的距离范围?

我不太喜欢数据库,我正在处理一个 MySql 地理查询,该查询必须找到距中心点指定距离范围内的所有兴趣点。

按照本教程:http ://howto-use-mysql-spatial-ext.blogspot.it/2007/11/using-circular-area-selection.html

所以我有这张桌子:

我的兴趣点存储在哪里。Point字段包含地理坐标。

然后我有这个查询应该找到从中心点到距离范围(由@radious值表示)内的所有点:

通过这段代码,我定义了中心点半径

最后,我执行查询,找到距离(距中心点)小于定义半径的所有兴趣点:

我的疑问是: @radius值的测量单位到底是什么?

我认为它可能是公里,但在做一些测试时,在我看来它不可能是因为设置了一个非常小的@radius值,我发现点离设置的中心很远。

所以我认为测量单位必须是别的东西。是我的推理正确还是这个查询错误?

如果查询正确, @radius使用的测量单位到底是什么?怎么换算成公里?(用户插入以km为单位的半径值,应转换为该查询使用的正确值)

0 投票
1 回答
286 浏览

mysql - 为什么当我尝试在 MariaDB 数据库上创建此函数(使用点数据类型)时出现此错误?

我不太喜欢数据库,我对实施本教程有以下疑问:https ://mariadb.org/jquery-and-gis-distance-in-mariadb/

所以基本上我的疑问与这个 SQL 语句有关,它创建了一个函数来计算MariaDB 数据库上两点之间的距离:

我的问题是执行上一条语句时,我收到以下错误消息:

PhpMyAdmin用 2 个红色标记在上一条语句的第一行标记点数据类型:

但我不认为这可能是真正的问题(我认为这可能是PhpMyAdmin 不知道的)因为它也将这个 cration 查询标记为红色

但它工作正常,没有错误并正确创建表。

那么,有什么问题呢?可能取决于PhpMyAdmin或我缺少什么?这个函数应该存储在哪里?

0 投票
1 回答
90 浏览

mysql - 为什么我使用这个“大圆距离”公式和谷歌地球工具来计算空间中两点之间的距离的不同值?

我不太喜欢数据库和 GIS,我对在 MySql 数据库上使用这个函数来计算 2 点之间的距离有以下疑问。

我从本教程开始,其中有这个函数用于计算 2场之间的距离:

我认为它应该返回一个以公里为单位的值作为单位测量。

然后我用它来计算空间中 2 点之间的距离(取自谷歌地图,例如意大利的罗马米兰城市)。

我正在获得合理的价值。我的疑问是,然后我使用谷歌地球中的标尺工具检查了距离,我得到了不同的值。

考虑到附近的 2 个点(距离为 2 公里)的敌人示例,我在 Google 地球计算的差异与我之前的函数之间获得了大约 300 米的差异。

考虑到非常遥远的 2 个点(例如罗马和米兰),我在 Google 地球计算的值与前一个函数计算的值之间获得了 100 公里的差异。

前一个函数总是给出更大的值。

所以我必须用它来计算小距离(最大 30 公里),所以误差应该很小,对于我的 pourpose 来说可能没问题。

但是为什么我会在我的功能和使用谷歌地球计算的距离之间获得这些差异?

0 投票
2 回答
89 浏览

php - 空间几何 SQL - 两个完全相同的查询,一个有效,另一个无效

这很奇怪我有一个存储多边形的数据库和一个正在运行的查询,该查询检查一个点是否存在于任何多边形中并检索它们。但是,当查询在我的 php 代码中创建为 sql 字符串时,它不会返回任何内容,但是如果我手动输入查询 - 它运行完美!

下面是我实际生成的 sql 的方式:

公共函数 get_by_coords($latitude, $longitude){

Where$latitude, $longitude实际上是作为字符串从 GET 变量传递的。我尝试进行类型转换,但结果是:

这里发生了什么?我在这里使用 Codeigniter。

更新

我刚刚做了一个 var_dump 并发现了一些奇怪的东西。如果我 var_dump 创建的 SQL 查询,它显示的字符比我 var_dump 直接输入字符串的查询多 6 个字符,即:

第一个字符串是生成的,而第二个是原样的 - 它显示第一个字符串中有 6 个额外的字符 - 我有一种奇怪的感觉,这些字符正在引起问题......我该如何进一步......

0 投票
1 回答
5509 浏览

php - 向 MySQL 中的函数 st_geometryfromtext 提供的 GIS 数据无效

这是我的错误:

错误号:3037

提供给函数 st_geometryfromtext 的 GIS 数据无效。

这是我的代码: