我可以将WGS84纬度/经度直接存储为MySQL中的空间数据吗?

我可以将WGS84纬度/经度直接存储为MySQL中的空间数据吗?,mysql,spatial-index,wgs84,Mysql,Spatial Index,Wgs84,我有一套。保守的方法是将它们存储为number(),并按此处()计算距离 更高级的方法是为“范围内”()创建用户定义的函数 使用。但我不太清楚是否可以直接存储WGS坐标,然后根据点数据类型查询距离 示例:数据如下所示:“lat”40.7142298,“lng”-73.9614669,这就是我要导入的内容。然后像“选择lat/lng 10km范围内的所有元组”这样的查询。SQLServer2008具有您可以使用的地理数据类型,要返回查询,请使用open query。完成后,对数据库进行地理空间定位

我有一套。保守的方法是将它们存储为number(),并按此处()计算距离

更高级的方法是为“范围内”()创建用户定义的函数

使用。但我不太清楚是否可以直接存储WGS坐标,然后根据
数据类型查询距离


示例:数据如下所示:
“lat”40.7142298
“lng”-73.9614669
,这就是我要导入的内容。然后像“选择lat/lng 10km范围内的所有元组”这样的查询。

SQLServer2008具有您可以使用的地理数据类型,要返回查询,请使用open query。完成后,对数据库进行地理空间定位,并开始做一些事情。

您阅读了吗


要进行查询,请定义一个查询区域(例如矩形),然后在

中按
进行过滤。我刚刚注意到您要求使用MYSQL,我不知道MYSQL中的等价物是什么,但它应该有更类似的内容。我可能完全没有理解您问题的要点,但是存储“lat=40.7,lng=-73.9”这样的坐标有什么问题作为一个
点(40.7-73.9)
?或者是您希望在导入数据时避免(字符串)转换?或者我在这里遗漏了一点-我从未使用过MySQL spatial。DB如何知道40.7是WGS坐标,而不是正常X/Y系统中的坐标,即测量坐标与极坐标(纬度和经度)。我怎样才能让大家明白,40.30不是30分钟,而是0.3分钟。现在我明白我错过了什么:)是的,要计算与坐标的距离,必须将线性距离转换为极坐标。这是。关于你的第二个问题,
POINT()
数据类型是十进制的,因此“40.5”只能表示“40.5”。但是坐标看起来仍然像笛卡尔坐标系中的坐标。你能指出一个例子吗,我可以看到它是如何使用极坐标作为纬度/经度的。但是我不认为MySQL是最好的选择,没有最好的选择。这取决于各种因素。作为一个开源选择,PostgreSQL可能值得一试,但我还没有使用过它。PostGIS绝对应该为您的用例提供教程。非常感谢您的帮助!