[英]Database design for search of geocoordinates
在MySQL数据库中,我有动物(大象)的跟踪数据。 目前的设计如下:
timestamp(INT) | individualID(INT) | longitude(DECIMAL) | latitude(DECIMAL)
现在我想向数据库提几个问题
是否有一些可用于MySQL的内置功能? 我应该选择不同的数据库吗?
有一个基于OGC SFS (简单功能规范)实现GEOMETRY
的MySQL Spatial Extension 。 它是许多数据库引擎的SPATIAL数据实现的基本标准。
对于客户端,有OpenLayers ,HTML5 SVG, Google Maps 。 看看GIS.StackExchange.com 。
从我的经验来看(如果它可能需要计算,就像2年前一样),MySQL实现空间数据就足够了,但不是最好的。 它在Oracle和MS SQL Server(IMHO)中实现得更好。 如果你不打算构建非常复杂的地图 - MySQL功能就足够了。 对于复杂的功能,我建议使用不同的数据库引擎。
在SO上有类似的问题: 找到两个纬度/长点之间距离的最快方法 ,其中接受的答案使用MySQL Spatial Extension。 如果您要进行更多研究,可以在其他问题上找到答案。
我也可以尝试提供查询依据:
MIN()
+ GLength()
+ LineString
+ Point
s)。 Contains()
+ Polygon
+ Point
。 Contains()
+ Polygon
+ Point
)。 我使用以下代码克服了我的PHP应用程序中的前两个问题http://www.geodatasource.com/developers/php那里还有一个SQL版本的解决方案。
基本上,您需要使用三角法计算地球表面上弧的长度,以获得2个网格点之间的距离。
然后,您可以比较多个人与基地位置的距离,并消除距离超过50公里的所有人,以便让您的动物群在周界内。
你的问题的第3部分需要一些更复杂的代数,这不是我所解决的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.