2017-05-17 16 views
2

住所の土地利用を返す関数をコーディングする必要があります。これまでのところ、私の解決策はVB.Netに基づいており、私は情報を受け取るためにNominatimを使用しています。その結果、私はクラスと型の2つの属性を取得しましたが、土地利用情報が必要です。OpenStreetMap NominatimとLandUse

この情報をどのように取得できるのか、ご意見はありますか?このサイトはOSMの土地利用のリストです:https://wiki.openstreetmap.org/wiki/Key:landuse

私はOSMのシェイプファイルも持っていますが、どのように私が.Netで使うべきか分かりません。私の試みはCatfood.Shapefileを使用することでしたが、ポリゴンにランドスケープ属性が見つかりませんでした。

 Dim Webbrowser1 As New WebBrowser 
     Dim ci As New System.Globalization.CultureInfo("en-US") 
     Dim latitude, longitude As Decimal 
     Dim doc As New System.Xml.XmlDocument 
     Dim myReq As Net.HttpWebRequest = DirectCast(Net.WebRequest.Create(url), Net.HttpWebRequest) 
     Dim webResponse As Net.HttpWebResponse = Nothing 
     Try 
      'Ergebnissatz von OpenStreetMaps laden 
      webResponse = TryCast(myReq.GetResponse(), Net.HttpWebResponse) 
     Catch 
      Exit Sub 
     End Try 

     If webResponse IsNot Nothing Then 
      If webResponse.StatusCode = Net.HttpStatusCode.OK Then 
       doc.Load(webResponse.GetResponseStream()) 
      End If 
     Else 
      Exit Sub 
     End If 

     Dim geometry As System.Xml.XmlNode = doc.SelectSingleNode("searchresults/place") 
     latitude = Convert.ToDecimal(geometry.Attributes("lat").Value, ci) 
     longitude = Convert.ToDecimal(geometry.Attributes("lon").Value, ci) 
     Debug.Print(geometry.Attributes("class").Value.ToString) 
     Debug.Print(geometry.Attributes("type").Value.ToString) 
+0

[mcve] – Mederic

+0

に記載されている任意のコードコードを書くためのソリューションを探しているときに、どのようにコードを共有できますか? – muffi

+0

あなたが[mcve]と[ask]を読んでいれば、私たちは人々をコードするだけではなく、試してみることに気づいたでしょう。そして、あなたはまた言った、あなたはこれまでの私の解決策を言ったので、あなたはすでに情報を得るためのコードを持っています:) – Mederic

答えて

2

Nominatimは、他の情報を返すように意図ジオコーダとがありません:

これは、私は経度、緯度、クラスおよびタイプ属性を取得する方法です。追加の手順が必要です。 Nominatimを使用して、住所の地理的位置を取得します。その後、Overpass APIを使用して、この地理的位置の周辺のすべての土地を取得します。ここで

跨線橋APIのクエリ例です。

way(around:500,50.7,7.1)[landuse]; 
(._;>;); 
out; 

result on overpass-turbo(跨線橋APIのWebフロントエンド)を表示します。このクエリはlanduseというタグを持ち、座標50.7,7.1から500m以内のすべてのwaysを返します。

+1

良い音 - 非常に良い。次に、.NETアプリケーションでこのAPIをどのように統合するかを検索します。ありがとうございました! – muffi

+0

あなたが私の答えが好きならそれを受け入れてください:) – scai

+0

あなたの例の使用を今検索した後、私は実行時にクエリURLを作成する方法を知っています。これまでのところ、私はそれを愛し、私はもちろんそれを受け入れる:-)もう一つの質問:私は周りでテストしました:例えば500で、例えば10で、これは少なかった、答えに土地利用がなかった。ポイント(緯度/経度)の土地利用を得る方法はありますか?ありがとうございました! – muffi

関連する問題