我只是在使用由JOSM生成的我的区域数据集。我使用Osmosis将其移入mySQL DB中,使用0.6 API方案,现在我正在拼命尝试以下操作:OpenStreetMap使用mySQL进行接近搜索
我想获得一个城市的所有街道。 AFAIK OSM数据中没有标记/关系来确定这一点,因此我尝试使用邻近搜索来获取代表城市中心的节点周围半径内的所有节点。
大部分我看着方法here
我什么时候是下面的SQL代码,应该让我的节点周围最近的100个节点ID为36187002和10公里半径范围内。
set @nodeid = 36187002;
set @dist = 10;
select longitude, latitude into @mylon, @mylat from nodes where [email protected] limit 1;
SELECT id, (6371 * acos(cos(radians(@mylon)) * cos(radians(latitude)) *
cos(radians( longitude) - radians(@mylat)) + sin(radians(@mylon)) * sin(radians(latitude))))
AS distance
FROM nodes HAVING distance < @dist ORDER BY distance LIMIT 0 , 100;
那么..它不起作用。 :(我猜主要问题是,OSM拉特/隆是乘以10.000.000,我不知道如何纠正这个功能,使其工作。
关于此任何想法?所有的解决方案/替代品是非常欢迎!