草庐IT

geoLocation

全部标签

mongodb - spring-data mongodb地理查询

我正在使用spring-data与mongodb进行通信,我正在寻找一种执行地理查询的方法,该查询将通过数据库中给定的地理点检索附近的配置文件,我对查询的要求是:1)距离限制2)返回配置文件的数量限制3)根据配置文件中的时间字段进行附加搜索4)从检索到的文档中包含/排除字段的能力起初我使用mongoTemplate.geoNear方法...Querycriteria=newQuery(Criteria.where("time").gte("some_date"));criteria.fields().exclude("friends");NearQueryquery=NearQuery

php - 添加附加查询时,Doctrine MongoDB geoNear() 实例设置为 0

我正在使用geoNear()来计算我的Mongo数据库中对象之间的距离。即使使用->field('name')->equals($name)等附加字段过滤器,查询也能完美运行...这会自动填充对象上的映射字段@ODM\Distance。$this->getQueryBuilder()->geoNear((float)$query['near_longitude'],(float)$query['near_latitude'])->spherical(true)->distanceMultiplier(self::EARTH_RD_KM);如果我添加一个->field('id')->in

mongodb - mongodb 2dsphere 索引的内部结构是什么?

Mongodb站点显示2d索引的内部是GeoHash。我想了解2dsphere索引的内部结构。是GeoHash、CartesianTiers还是其他技术?刚找到mongodb站点的博客,new-geo-features,引入2dsphere索引。但是没有详细说明。 最佳答案 blogpostyoulinkedto说了一些关于如何实现2dsphere索引的事情。它使用Google的S2几何库在地球表面创建网格单元并将它们放入B树中以便可以快速搜索它们。博文中的链接已过时,因为Google代码不再有效。现在可以看到S2的存储库here.

java - 将大量地理位置记录存储在缓存的 ArrayList 中或始终从 MongoDB 中查询它们?

我正在开发一个地理定位应用程序。这个应用程序在正确索引的MongoDB中保存了大约500K条记录。每行都有自己的纬度和经度记录值。因此,客户端必须从这50万行中恢复200个最近的点。我担心性能。起初我想到将所有记录(纬度/经度信息)保存在缓存管理器或内存数据库中。之后,可以将给定的点(纬度/经度)与缓存中的那些值进行比较。这时我的疑惑产生了。将所有这些记录存储在缓存管理器的ArrayList中,然后将记录的地理位置与ArrayList中的地理位置进行比较以计算距离会好吗?通过这种方法,我防止了MongoDB中的大量查询,另一方面,通过在ArrayList中保留大约500K条记录(地理定

google-maps - 使用 mongodb 地理空间最佳策略的谷歌地图搜索

我有一个网站,人们可以在其中查看谷歌地图上的某些地点,这些地点存储有纬度/经度坐标。存储是mongodb。现在,当用户浏览map时,我需要查找现在哪些地点在map的可见部分。我是mongo的新手,但看过空间部分。我的问题现在是进行此查找的有效方法。我是否需要在每次用户浏览map时创建一个ensureIndex,然后我如何查询map可见边界内的所有地点? 最佳答案 根据mongo文档,您可以像这样在边界框内查询box=[[40.73083,-73.99756],[40.741404,-73.988135]]db.places.find

ruby-on-rails - 使用 Mongoid Model.in 方法的最大距离

我使用geonear查询已有一段时间了,但我似乎无法弄清楚如何将结果限制在特定半径内。例如,如何在这个查询中将搜索范围限制在20英里以内?Place.near(:coordinates=>location.reverse)#mustreversetheresultingcoordinatesarraybecausemongostoresthembackwards[lng,lat] 最佳答案 南北纬度差的弧度长度,在任何纬度上约为60海里、111公里或69法定英里;您可以阅读更多关于hereinwikipedia的信息或在mongo地

mysql - 获取多边形的中心和最远点以在mysql中按半径扩展区域

因为我的另一个问题没有成功(HowtoextendpolygonbyacertaindistanceinPHP/Mysql?),我想找到一个更简单的解决方案。我有一个位置表(由lat和lng定义)和一个位置表(存储为几何的多边形)。我需要的是在多边形+一定半径(例如1/4英里)内搜索mysql中的记录。有获取多边形中心点的函数ST_Centroid,但是如何获取中心点到最远点的距离,从而得到圆的外延半径? 最佳答案 圆是扩展多边形最简单的解决方案,但聊胜于无。这是获取多边形最远点的计算。$polygon和$centroid从数据库中

php - SQL:动态扩展搜索条件

我有一个表格,其中包含带有坐标(纬度、经度)的本地企业我需要获取给定半径内的所有企业,为此,我使用一个查询来动态计算距离selectb.*from`businesses`asbwhere(1.609344*3956*2*ASIN(SQRT(POWER(SIN((lat-b.lat)*pi()/180/2),2)+COS(lat*pi()/180)*COS(b.lat*pi()/180)*POWER(SIN((lng-b.lng)*pi()/180/-2),2))))现在我需要扩大半径,以防该地区的企业太少,所以假设在给定的半径内只有10个企业我需要动态扩展半径直到我得到50

mysql - 如何将世界各地的所有地理位置存储在数据库中?

我在一个旅游网站工作,我需要存储游客去过的旅游景点。我需要地点表中的地点是唯一的,以便我可以知道特定地点等的受欢迎程度。我还需要存储所有国家、州、城市,因为我不能依赖用户输入。数据库是MySQL。查看可用于此类位置的数据集,我发现存在跨国家/地区嵌套城市的问题,这些城市可能使用省、州、县等。所以,我的问题是如何设计模式以便我可以存储所有位置。我正在考虑为国家、州、城市和地点制作表格。spots表将包含spot_name、cityId、stateId、countryId和一些具有经度和纬度边界的字段。这样我就可以根据地理位置识别相同的地点。但同样,由于州/省/县等问题,此解决方案将不起作

php - 将 Lat/Long 空间扩展插入 MySQL

我想将多边形放入MySQL数据库,然后使用PHP能够查询纬度/经度点是否在多边形内。这里有任何指针。从来没有做过这样的事情。 最佳答案 MySQL使用通常默认安装的扩展来支持空间列和函数。MySQLReferenceforspacialfeaturesHowtouseMySQLSpacialextension 关于php-将Lat/Long空间扩展插入MySQL,我们在StackOverflow上找到一个类似的问题: https://stackoverflow