Google Maps、Microsoft Live Search Mapsなど、地図や衛星写真を用いた巨大な地域検索サービスが注目されていますが、これらのサービスとの連携に欠かせないものが住所の検索です。視覚的な地図情報は、人間にとっては使いやすくても、コンピュータにとっては画像データにすぎません。プログラムから地域検索サービスを応用するには、正しい経緯度による座標や住所、郵便番号などの情報と関連付ける必要があります。

GeoNames』は、こうした情報を提供してくれる巨大な住所検索サービスです。世界中の地域の郵便番号や住所の情報を集めたデータベースであり、住所などから経緯度を含む結果が得られます。GeoNames自体も、Google MapsやWikipedia などのサービスと組み合わせて、検索結果から地域の情報や地図を表示します。Web APIが公開されているため、経緯度情報を必要とするアプリケーションなどへも応用できます。

「GeoNames」の検索ページ。テキストボックスに地域名を入力して「search」を押す(画面左)。画面中央・右は、「十勝」「tockachi」を検索した場合の結果

GeoNamesが公開しているAPIを呼び出すことで、郵便番号や座標から住所などを得ることができます。逆に、住所から該当する地域を検索することも可能です。結果はXML形式とJSON形式のいずれかで得られます。たとえば、マンハッタンを検索する場合は、次のサービスを呼び出します。

http://ws.geonames.org/search?q=Manhattan&maxRows=10

デフォルトではXML形式でデータが返されます。Webブラウザで上記URLを直接表示すると、マンハッタンの検索結果がXMLで表示されます。JavaScriptで実装されたブラウザベースのアプリケーションからサービスを呼び出す場合はJSONのほうが都合がよいかもしれません。JSON形式で結果を取得する場合は、typeパラメータを追加したJSONという値を指定します。

http://ws.geonames.org/search?q=Manhattan&maxRows=10&type=JSON

このように、GeoNamesのサービスを呼び出すことで、地域名から、その地域の経緯度などの詳細な情報を検索できます。この結果とGoogle Mapsなどの地図と組み合わせることによって、経緯度情報から検索した地域の地図や衛星写真を表示するサービスを作れます。