我想将位置的纬度和经度值存储在mysql数据库表中。考虑到未来,我将希望能够在特定位置的特定半径内找到这些位置。话虽如此,我应该将纬度和经度值存储在哪些数据类型中?请给我提供一个用于创建列的创建表脚本,如下所示:
place_id | lat | long
上表中是否可能缺少我会为我提供当前可能看不到的其他信息的列?
谢谢你的帮助。
您应将这些点存储在数据类型的单列中,Point
该列可以用索引建立SPATIAL
索引(如果表类型为MyISAM
):
CREATE SPATIAL INDEX sx_place_location ON place (location)
SELECT *
FROM mytable
WHERE MBRContains
(
LineString
(
Point($x - $radius, $y - $radius),
Point($x + $radius, $y + $radius)
)
location
)
AND Distance(Point($x, $y), location) <= $radius
这将大大提高查询的速度,例如“在给定半径内查找所有对象”。
请注意,最好使用简单的TM
公制坐标(东和北),而不是极坐标(纬度和经度)。对于小半径,它们足够精确,并且计算也大大简化了。如果您所有的点都在一个半身中并且远离极点,则可以使用单个中央子午线。
当然,您仍然可以使用极坐标,但是用于计算MBR
和的公式将更加复杂。
问题内容: 在询问具体的代码示例之前,我只想问一下是否可以进行类似此伪代码的查询: 从表中选择项目,其中经度/经度=-在某个经度/经度点的x英里内- 那可行吗?还是我必须跳过一些箍?可以推荐的任何好的方法都很棒! 问题答案: 您应该搜索Haversine公式,但是一个好的开始可能是: 使用PHP,MySQL和Google Maps创建商店定位器 -请参见“使用MySQL查找位置”部分 使用MySQ
我有一对纬度 然而,我需要一个更灵活的解决方案,例如,我希望能够指定1/3, 1/4, 8/9等对点之间。 注:lat1,long1
Highmaps 从 1.1.0 开始支持经纬度定位功能,该功能依赖第三方库 proj4js(需要在 Highmaps 之前引入),最新版的文件可以从 cdnjs 上获取 <script src="https://cdn.bootcdn.net/ajax/libs/proj4js/2.7.2/proj4.js"></script> 有了经纬度支持后,我们可以通过 lon 和 lat 属性来指定经
我有一个onCreate的活动,它计算您的位置和附近的事件之间的距离,我使用lastNotnloceto获取当前设备位置并在谷歌地图上标记它,但我需要它来写经度和纬度它的方法之外用于计算距离。 我已经使用LocationManager来获取粗略的坐标,但这些坐标不够准确,对于距离不到半英里的东西来说,距离为50英里。我目前拥有它,因此将覆盖从LocationManager获得的经度和纬度,但它没有
问题内容: 我正在编写一个小程序,为了提高效率,我需要能够找到数组中最接近的纬度和经度。 假设您有以下代码: 我得到的结果是: 它应该是(在此示例中,列表中的最后一个对象) 我知道如何获取单个值的最接近单元格,但我想让lambda函数考虑这两个值,但我不确定如何做到。救命? 问题答案: 为了正确计算地球上各点之间的距离,您需要使用Haversine公式。使用此答案中提供的Python实现,您可以像
问题内容: 我有一张表,上面有: 城市纬度经度 而且我需要一个sql查询来知道所有城市都距离纽约100英里。 问题答案: 也许这对您有帮助:http : //www.scribd.com/doc/2569355/Geo-Distance-Search-with- MySQL 这是一个不错的介绍。或只是google for ,您会发现一些教程。 如果有可能并且想让它变得更简单,请直接使用支持距离查询