问题标签 [spatial-query]
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.
mysql - 如何使用 MySQL 空间扩展创建具有半径和中心坐标的圆形几何?
我正在尝试使用中心和半径的坐标在MySQL中创建圆形几何。我到处搜索......我在网站上的 MySQL 文档中能找到的都是多边形。可能是我找错地方了。任何人都可以帮助我使用适当的 SQL 来帮助我创建一个将该圆形几何图形存储为表中的列之一的表吗?另外,我什至不确定在 MySQL 中是否有办法这样做?..我使用的版本是 MySQL 5.6。
提前致谢。
mysql - 如何根据 LAT/LONG 和 MySQL 中的距离获取最近的邻居位置?
我需要根据纬度和经度以及距离参数获取最近邻居商家位置的列表。为此,我使用以下查询创建了一个表:
现在,我还使用以下示例查询将一些记录插入到该表中,以确保点几何插入正常。
现在我需要在 MYSQL 中构造一个选择查询,它将从指定的纬度、经度和距离返回此表中的所有位置。
例如,如果我的纬度为 39.34,经度为 -84.56,距离为 5 英里,我如何构建查询以从上面创建的表中获取 5 英里范围内的所有位置记录。? .
sql-server - 缓存用户特定的邻近搜索
形势与目标
想象一个用户搜索系统,它提供从用户自己的位置进行的邻近搜索,该位置由十进制纬度/经度组合指定。例如,亚特兰大居民的位置将由 表示,33.756944,-84.390278
并且该用户的周界搜索应该从半径 10 英里、50 英里等产生他所在区域内的其他用户。
表值函数计算距离并相应地为用户提供,按与开始搜索的用户的距离升序排列。它总是一个实时查询,而且是一个艰难而频繁的查询。现在,我们想要构建某种缓存来减少负载。
在寻求解决方案的路上
到目前为止,所有用户都按其纬度/经度的整数部分分组。这个想法是用网格方块中的所有用户创建缓存文件,因此访问相关的缓存文件会很容易。如果一个方格包含的用户多于缓存文件应包含的用户数,则该方格将被四等分或进一步分成八块,依此类推。为了充分利用正方形及其缓存文件,可以考虑多个重叠正方形。这种方法的一个缺陷是,将高密度大都市地区和宽敞的乡村地区划分为网格和四等分覆盖缓存文件可能不是最佳的。
继续阅读,我偶然发现了最近邻搜索、曼哈顿距离和树式空间划分技术(如 kd 树、四叉树或二进制空间划分)等主题。此外,SQL Server 提供了自己的地理数据类型和函数(尽管我猜纯数学FLOAT
方式具有足够的性能)。当然,关键是让以用户为中心的邻近搜索可缓存。
问题!
我在这方面没有找到太多资源,但我确信我不是第一个有这个计划的人。请记住,这不是关于搜索,而是关于缓存。
- 我可以放弃我的方法吗?
- 有没有办法将用户有利地划分为大小相等的地理区域?
- 是否有存储空间用户信息以实现高效邻近搜索的最佳实践?
- 您如何看待上述技术(四叉树等)以及如何将它们与缓存配对?
- 您知道成功缓存特定于用户的邻近搜索的示例吗?
php - 如何检查空间搜索是否在 Solr 中工作
我正在尝试 Solr 中的空间搜索。我所做的是停止服务,然后更新schema.xml
文件collection1
以包含以下内容:
然后我再次启动服务以更新 Solr 中的文档:
卷曲响应都很好,当我使用此查询检查结果时:
它返回了结果:
现在我的问题是我真的正确设置了吗?如果是的话,一旦我使用如下所示的空间查询,我可以使用什么查询来检查它是否真的返回了一些东西:
我的主要问题是我真的不知道要为参考点提供什么才能返回 Solr 索引中已经存在的记录。
因此,例如,如果我在索引中有以下坐标:
将返回具有该坐标的特定记录的空间查询将是什么。我尝试使用d=0
但没有返回任何内容:
有任何想法吗?提前致谢。
.net - 查询 DBGeometry 以获取特定的 LatLng 值
背景
我有一个国家数据库,我从这里的形状文件中获取并使用http://www.sharpgis.net的 Shape2Sql 工具上传到我的数据库。
在使用该工具时,我选择了使用 SRID 4326 的选项,因为我相信这代表了地球表面的几何形状(如果我错了,请纠正我)。
当我在 Sql management studio 中运行 Select 时,在结果窗格中有一个空间选项卡,它基本上显示了世界地图,即查询中的所有几何数据,我可以在那里看到英国。
问题是:
我有一组 LatLng 坐标,我想找出坐标所在的国家。我正在使用实体框架,我的代码看起来像这样
即使我在数据库中有英国并且我使用我当前的位置作为坐标,我的查询总是将国家/地区返回为 null。
当我将第 2 行更改为var myLocation = DbGeometry.FromText(string.Format("POINT({0} {1})", coords[1], coords[0]), 4326);
.
我遇到了一个例外:
坐标:
有谁知道如何正确地做到这一点?
更新
我已经使用以下查询直接在 SQL 服务器上解决了这个问题
Inters 列对于 United Kingdom 为 1,否则为 0,有人知道我如何从 EntityFramework 执行 MakeValid 吗?
mysql - MYSQL Spatial 中使用的指标是什么?
我正在尝试确定MySQL Spatial 5.6.12的公制系统。
例如,我创建了下表以存储多条记录的点几何。
创建表后,我成功地向表中插入了一些记录。
现在,我构建了以下查询来获取距离指定 LAT/LONG 一英里内的所有记录。这是我为此运行的查询:
运行此查询后,我确实得到了一些记录,但距离似乎不是以英里或米为单位。它是一些小数值,例如 0.0123、0.0145 等……</p>
我在 MySQL 的任何地方都找不到关于此的任何文档?有谁知道 MySQL 中使用的是什么公制系统?如果有,我如何将其转换为里程?
这意味着,如果我需要运行上面的查询来获取一英里内的所有记录,我该如何重建它?
solr - 为什么 solr spatial/geofilt 省略其他 fq 条件?
我是 Solr 的初学者。以下是我的 fq 查询-
我的查询目标是查找距给定 LatLon 100 公里范围内的所有项目,其中没有 start_date 或 end_date 落在日期范围 [2013-07-01T0:00:00Z TO 2013-07-18T0:00:00Z] 内。这里 start_date 和 end_date 是多值字段。但它不过滤该日期范围。当我如下删除 GEOFILT 选项时,它确实如此 -
即使它适用于其他 fq 条件但不适用于 GEOFILT。
mysql - MYSQL 空间查询 - 返回包含来自单独表的点的多边形
我是 MYSQL 空间函数的新手。我已经成功创建了一个包含 2 个表的数据库:
并用一些测试数据填充它们(一些点与多边形重叠,一些不重叠,一些多边形不包含点)。
返回被任何点重叠的多边形以及每个多边形重叠的点列表的最有效查询是什么?这可能在一个查询中吗?
非常感谢
python - 从numpy数组中获取给定半径的值
我想在 python 的二维 numpy 数组中围绕给定值恢复“缓冲区”。这个想法是选择给定半径内包含的所有值,然后将它们屏蔽。它会是这样的:
- 在矩阵中选择一个“单元格”,例如
matrix[x, y]
- 获取邻域中包含的单元格,其中距离
x, y
小于半径r
我想为此实现一个快速函数,因为我有一个大数组进行处理(形状为 7000 x 10000)。
postgis - PostGIS 的 st_overlaps 方法仅返回与构成我正在搜索的多边形外部的 LinearRing 重叠的结果
我在 ruby/rails 上使用 PostGIS,并创建了一个简单的类似盒子的多边形,我希望在该多边形下搜索一个县的地块。st_overlaps 工具以前曾为此工作过,这次也工作过,有点。
所以我创建了多边形来搜索它下面的地块(事实证明是多个多边形)
运行活动记录调用后:
我得到 157 个结果。远远低于预期。我使用我的自定义脚本将它们导出为 kml 文件。我会尽快上传以供查看。
一旦加载到 Google 地球中,您将在该 kml 中看到的是一个平行四边形的引脚标记包裹,其区域(多边形)明显位于我创建的用于搜索的参数多边形的外环上。沿着这些看不见的线有这么多的地块,形状如此清晰,形状中间没有大头针,这一事实清楚地表明搜索结果只是在地块多面体与外边缘的重叠处(LinearRing ) 的搜索多边形。
根据我对文档的重新阅读st_overlaps
,我对这里似乎存在什么问题感到困惑。
这是查看 kmz 导出的链接。(坐标在导出前转换为地理坐标)。您可以在浏览器中查看它。搜索多边形本身不包括在内,但很容易看出它的外环在哪里 https://docs.google.com/file/d/0B5inC0VAuhH1TXdTbWQ2RngxZk0/edit?usp=sharing