JOSM によって生成された自分の地域のデータセットをいじっているだけです。Osmosisを使用して0.6 APIスキームでmySQL DBに移動しましたが、今は必死に次のことを試しています:
都市のすべての通りを取得したい。私の知る限り、OSM データにはこれを判断するためのタグ/関係がないため、近接検索を使用して、市内中心部を表すノードの周囲の半径内にあるすべてのノードを取得してみました。
ほとんどの場合、ここでアプローチを見ました
私が得たのは、ID 36187002 のノードの周囲で半径 10 km 以内の最も近い 100 個のノードを取得する次の SQL コードです。
set @nodeid = 36187002;
set @dist = 10;
select longitude, latitude into @mylon, @mylat from nodes where id=@nodeid 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 lats/lons が 10.000.000 で乗算されることであり、この関数を機能させるためにどのように修正すればよいかわかりません。
これについてのアイデアはありますか?すべてのソリューション/代替手段は大歓迎です!