座標ではなく図形にジオコーディングするにはどうすればよいですか?


8

ポイントではなくシェイプへのジオコーディング

私が現在取り組んでいるプロジェクトはFind-A-Recordです。私たちは、家系図のレコードコレクションをジオコーディングし、それらを空間インデックスに格納しています(詳細については、ブログを参照してください)。検索は形状に基づいています。検索領域と交差する、または検索領域内に含まれるコレクションを返します。

開発の初期段階では、ジオネームを使用してコレクションを特定の場所にジオコーディングしました。これは、市、町、村などの下位の行政レベルに関連付けられているコレクションに適しています。ただし、郡、州、および国のレベルを取得すると、それは本当に壊れます。

1940年の米国国勢調査は米国に関連付けられており、カンザス州北部のポイントが割り当てられます。そのポイントに近くない米国内のクエリは、1940年の米国国勢調査を返しません。

これを解決するには、点ではなく形状でコレクションをジオコーディングする必要があります。

OSM

OpenStreetMapsには必要なデータがありますが、抽出するのは非常に困難です。管理階層は明示的に保存されません。Nominatimは、OSMのこの問題を解決するために使用されます。Nominatim検索では機能のみが返されます。したがって、テメでのナイトンのクエリは、2つのバス停を返しますが、行政境界関係は返しません。

跨線橋APIは有望に見えたが、それはファジー文字列の一致を行うことはできません。高架道路では、完全一致または正規表現の一致のみを実行できます。場所名を標準化する簡単な方法があれば、Overpassを使用できます。言い換えると、OSMがOSM階層に従って「イギリスのウスターにあるナイトメオン」を「イギリスのウスターにあるテメCPのナイトン」に標準化する方法をOSMがOSM階層に従って提供した場合、ファジー文字列マッチングは必要ありません。

概要

必要なのは、場所(または行政レベル)のあいまい文字列検索を実行して、その境界を取得できるサービスです。

全世界の境界データを取得することは難しいと認識しています。ありがたいことに、おそらくすぐには必要はないでしょう。私たちは、家系図の記録が存在し、系図学者が研究を行う世界の地域のデータのみが必要です。

管理境界を照会できるようにOSMにインデックスを付ける独自のサービスを構築する必要があるようです。しかし、私たちは本当にそうしたくないでしょう。既存のサービスでこのデータを取得できる他の方法はありますか?

回答:


6

クールなプロジェクト!MapIt:Globalご覧ください

MapItは、地理的ポイントを行政区域にマップするサービスです。このエディションは、完全に素晴らしいOpenStreetMapプロジェクトのソースデータに基づいているため、境界が足りない場合は境界を追加してください。英国にお住まいの場合は、Ordnance Surveyデータを開いたMapIt UKの方が便利でしょう。

MapItは、地球上のポイントの座標を持ち、それがどの国、地域、都市、選挙区、または州にあるかを知る必要があるすべての人に役立ちます。また、これらすべての境界の形状を調べるのにも最適です。

このサービスの慈善的で少量の使用は無料です– 続きを読む

ソースはGithubからダウンロードできます

ライセンスが必要ですか?詳細を読むか、連絡してください(commercial@mysociety.org)。


それはかなり近いです。私は彼らが文字列検索を許可することを望みます。Overpassを使用すると、ほとんど同じことができます。

結果を商業的に使用する唯一の方法である独自のサーバーにシステム全体をインストールすることは、code.mapit.mysociety.org(OSMを使用する場合は500GBの空き容量を推奨)に文書化されているように、かなり複雑なプロセスのようです。彼らが使用しているソースの1つであるGADMにも非営利の制限があることに注意してください。
Rob Hoare


1
@JustinY:こんにちは、私はMapIt:Globalに取り組んだ開発者の1人です。文字列プレフィックス()で検索できることを見たことがあると思いますが、あいまい検索が必要な場合は、Issue Trackerでリクエストすることをお勧めしますか?これはオープンソースプロジェクトであるため、作業に費やす時間がなくても、おそらくボランティアがそうするでしょう。
Mark Longair、

1
@MarkLongair素晴らしい提案。github.com/mysociety/mapit/issues/101

2

現在、グローバルな地名と境界データ(履歴を含む)も扱っているので、あなたが何をしているか理解できます!

ただし、問題には実際に2つのステップがあると思います。1。あいまいな名前検索を使用して管理領域の名前を標準に変換し、2。境界のデータベースでその場所の境界を調べます。あいまい検索もあるデータを見つけるのではなく。

WeRelate Placesは、古い地名のステップ1に役立ちます。すでに使用している他の多くのジオコーダーは、現代の名前を標準化できます。

特に履歴データについては、適切な境界データの多くが非営利ライセンス(またはそれより悪い)の下にあるため、ステップ2は現在非常に困難です。国と管理者1レベルの出発点はNatural Earthです。

次に、USGeoJSONuk-atlasなどの政府のオープンデータから抽出された、下位の行政区分のための全国ベースのソースがあります 。私が気づいていることは、本当にグローバルなスコープではありません。

データの出所とライセンスを追跡するように注意してください。非営利の制限は非常に一般的です。たとえば、GADMVision of Britain(US)Atlas of Historical County Boundariesなどです。


2つのステップがある可能性があることを指摘していただきありがとうございます。名前を標準化するためにOSMを使用する簡単な方法があれば、問題を簡単に解決できます(OSMが利用できる境界で)。

この時点では、質の高いデータを取得することはそれほど心配していません。ほとんどの場合、州や国などの大規模な管理領域が必要です。質の高い郡のデータがあればいいのですが、必須ではありません。

そのレベルでは、各国のadm1まで、Natural Earthはおそらく(ADM0とADM1の境界)から始めるのに最適なオプションです。SHPファイルは、ogr2ogrおよび他の同様のユーティリティを使用して、GeoJSONまたは他のさまざまな形式に変換できます。
Rob Hoare

うわー、どういうわけか私はあなたの答えでそれを逃した。再度指摘いただきありがとうございます。

2

place_idでは、Nominatimクエリに値4828147のフィールドが含まれています。このフィールドは、Nominatimの内部識別子として機能します(グローバルに一意ではありません)。ただし、この場所の Nominatimの内部住所階層を表示するために使用できます。この階層には、境界リレーション、たとえばリレーション1875245やその他のリレーションも含まれています。

このリストをウォークスルーしてadmin_levelキーを見ると、探している関係を見つけることができるはずです。残念ながら、この特別なページはまだAPIを介して利用できないようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.