将经纬度数据存储到数据库中,并查询附近的记录
我正在创建一个将使用地理定位的 Rails 应用程序。人们可以向记录添加经度和纬度。如果有多个带有地理位置的记录,则可以看到带有附近记录的 Google 地图,就像 Twitter 地理位置一样。
如何存储坐标(我不介意进行计算)并查找附近的记录?我的数据库是MySQL。
谢谢。
I am creating a rails application which will use geolocation. One can add a longi- and latitude to a record. If there are multiple records with geolocations, one can see a Google Map with nearby records, just like Twitter geolocation.
How can I store the coordinates (I don't mind to do calculations) and find nearby records? My database is MySQL.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Geokit 适用于从数据库中提取数据后的数据,但如果您希望使用空间数据从数据库构建查询,则不行。如果你只使用 mysql 那么你会陷入做大量计算的困境。由于您使用的是 Rails,因此您至少有以下选项: http://freelancing -god.github.com/ts/en/geosearching.html 它应该为您处理大量的计算。
Geokit is OK for data after it is pulled from a database, but not if you are looking to structure a query from the database using spatial data. If you were only using mysql then you would be kind of stuck doing alot of calculations. Since you are using rails, you have at least this option: http://freelancing-god.github.com/ts/en/geosearching.html which should take care of a great deal of the calculations for you.
您可以使用acts_as_solr_reloaded来索引和查询您的空间数据,因为您不需要在主表中存储纬度和经度信息,而是创建一个迁移,该迁移创建一个本地表,在其中存储纬度和经度信息。您可以查询solr 索引也使用纬度、经度和半径。
You can use acts_as_solr_reloaded to index and query your spatial data for this you need not to store latitude and longitude information in your main table but rather it creates a migration which creates a locals table where it stores the latitude and longitude information.And you can query the solr indexes using this also with latitude,longitude and radius.
看看 Geokit。它广泛用于基于地图的应用程序。
Have a look at Geokit. It is widely used in map-based applications.
根据您的要求,您可以采取两种方法:
There are two approaches you could take, depending on your requirements: