我想知道我是否得到一个用户的经纬度,并想检查他是否位于存储在我的数据库(MongoDB)中的任何多边形中。如何使用mongoDB实现这一点。例如我的数据库将有10个多边形存储为GeoJson对象。我得到一个经纬度并想检查这个经纬度是否位于我的数据库中的10个多边形中的任何一个。这可以在MongoDB中实现吗? 最佳答案 我不认为你的特殊情况可以在MongoDB中实现。MongoDB确实具有$polygonoperator的多边形计算。.但是,此运算符采用多边形并确认其中是否有任何文档,而不是相反。
我在点数组(纬度、经度)中得到了一个区域的点列表。我已经在这些数组上建立了索引,现在我想知道一个点是否在该多边形内。MongoDB有可能吗?我已经尝试过这些命令,但没有成功:>polygonA=[[48.780809,2.307129],[48.781809,2.300129],[48.770809,2.317129]]>db.contours.find({"rings.ring":{"$within":{"$polygon":polygonA}}})和>db.runCommand({geoNear:"contours",within:[2.307129,48.780809,],num
我正在用Java构建一个应用程序,我必须在其中将GeoJson多边形存储在MongoDB中,然后我必须查询以检查一个点以及它与$geoIntersects相交的多边形数量。我有几个关于GeoJson多边形的问题,但我没有在网上找到答案。标准(https://www.rfc-editor.org/rfc/rfc7946)说:AlinearringMUSTfollowtheright-handrulewithrespecttotheareaitbounds,i.e.,exteriorringsarecounterclockwise,andholesareclockwise.但我做了一个测试
我有一个任意点代表房子的位置。在我的MongoDB中,我有一个集合,其中包含代表不同区域的多边形(类似于邮政编码)。我想返回集合中给定点在该区域内的区域。目前我正在将点转换成一个“小”框并使用这样的查询(按预期工作):(被框化的点:[56.121371,13.114797])db.areas.find({"area":{"$geoIntersects":{"$geometry":{"type":"Polygon","coordinates":[[[56.120371,13.113797],[56.120371,13.115797],[56.122371,13.115797],[56.1
我有以下mongoDB文档,它通过“GPS”字段表示当前车辆位置{"_id":ObjectId("565564e2f3e3f5bd2bdfad18"),"vehicleId":6521,"time":1448389800,"GPS":"18.55419790592852,73.80579963326454","readings":{"RPM":{"value":1000},"Speed":{"value":40}}}我需要找出这个条目是否落在坐标指定的多边形内:{lat:18.554321,lng:73.805231},{lat:18.553838,lng:73.804936},{la
如officialdocumentation中所示,多边形GeoJSON对象的结构如下图所示:db.someCollection.insert({type:"Polygon",coordinates:[[[0,0],[3,6],[6,1],[0,0]]]});为什么TypeA格式的结构不是如下所示?类型Adb.someCollection.insert({type:"Polygon",coordinates:[[0,0],[3,6],[6,1],[0,0]]});我认为原因可能是要存储多个地理围栏。像这样:类型Bdb.someCollection.insert({type:"Polyg
因为我的另一个问题没有成功(HowtoextendpolygonbyacertaindistanceinPHP/Mysql?),我想找到一个更简单的解决方案。我有一个位置表(由lat和lng定义)和一个位置表(存储为几何的多边形)。我需要的是在多边形+一定半径(例如1/4英里)内搜索mysql中的记录。有获取多边形中心点的函数ST_Centroid,但是如何获取中心点到最远点的距离,从而得到圆的外延半径? 最佳答案 圆是扩展多边形最简单的解决方案,但聊胜于无。这是获取多边形最远点的计算。$polygon和$centroid从数据库中
我有一个包含地理标记对象的MySQL数据库。通过使用用户绘制的边界多边形来标记对象,然后我的程序将其导出到数据库中。边界多边形作为多边形(MySQL空间扩展类型)存储在数据库中。我可以想到几种方法来做到这一点,但我对其中任何一种都不是很满意,因为这需要一个高效的过程,并且会相当频繁地执行,尽管相关的记录可能只有不到50,000条表。我需要一种方法,在给定地球上的任何一点的情况下,找到与最近的地理标记/边界对象相对应的记录。它不需要在所有情况下都是正确的,但是,假设(只是为了发明一个数字),95%的时间。如果不需要非常频繁地进行手动更正,则可以接受。 最佳答案
我正在尝试为我的基于PHP浏览器的策略游戏创建六边形世界地图。我在我的数据库中创建了一个表,每行包含以下数据:id、type、x、y和occupied。其中type是瓷砖的种类,以数字定义。例如,1是草。map本身是25x25。我想从数据库中绘制带有可点击图block的map,并可以使用箭头在map中导航。我真的不知道如何开始,我们将不胜感激。提前谢谢你,法比安我知道我必须为此使用Javascript,但我仍然不知道如何创建用于从数据库加载图block和坐标的数组并在页面上使用javascript显示它们。 最佳答案 假设您询问的是
首先,我承认我在空间函数方面的经验非常少。我在MySQL中有一个表,其中包含20个字段和23549187条包含地理数据的记录。其中一个字段是“点”,它是点数据类型,并具有空间索引。我有一个查询选择多边形内的所有点,如下所示,select*from`table_name`whereST_CONTAINS(ST_GEOMFROMTEXT('POLYGON((151.186-23.497,151.207-23.505,151.178-23.496,151.174-23.49800000000001,151.176-23.496,151.179-23.49500000000002,151.18