ZENRIN MAPs APIを活用する
ZENRIN MAPs APIの利用方法について案内しています。
今回は、自社の保有する不動産データ(住所表記の揺らぎや住所欠損が発生している)を、ZENRIN MAPs APIの建物情報を利用してクレンジングする(住所表記のゆらぎや欠損をなくす)プロセスを紹介します。
ZENRIN MAPs APIについて
ZENRIN MAPs APIsとは、地図の会社ゼンリングループが提供するAPIサービスです。地図コンテンツや検索機能、位置情報に関連する機能をWebサイトやWebアプリケーション、スマートフォンアプリ等に実装する為の開発ツールです。
建物属性情報・施設情報・各種統計データなどを過去から現在まで地図基盤に搭載。様々なコンテンツ表示や検索、過去情報等を活用し、地域の変遷を捉える事で、対象エリアの状況把握にご活用いただけます。
ゼンリンの位置情報コンテンツを活用してクレンジングし、最新かつ精度の高い位置情報(住所・座標)を返却。ビジネスで"使えるデータ"として活用シーンを拡大させます。
ZENRIN MAPs APIの紹介ページ
https://www.zenrin.co.jp/product/category/iot/api/index.html
不動産データベースを構築する上で、住所表記の揺らぎや住所の番地以降の情報が欠損している、同一住所に複数の物件があるなど、特に建物情報が一意にならず難航します。
国土交通省で不動産IDを整備する動きはありますが、まだ時間がかかりそうです。
https://www.mlit.go.jp/tochi_fudousan_kensetsugyo/tochi_fudousan_kensetsugyo_tk5_000001_00025.html
ZENRIN MAPs APIは、以下のように、ZIDと呼ばれるゼンリン独自のIDがすべての建物に割り振られており、住所や建物の情報がデータベース化されています。
有料サービスにはなりますが、こちらを活用することで住所表記の揺らぎや住所の番地以降の情報の欠損が発生していても、他の情報との整合から一意の不動産として識別できるようになるため、今回はZENRIN MAPs APIの活用について取り上げます。
APIの活用方法について
今回は、自社の保有する不動産データ(住所表記の揺らぎや住所欠損が発生している)を、ZENRIN MAPs APIの建物情報を利用してクレンジングする(住所表記のゆらぎや欠損をなくす)プロセスを紹介します。
今回はZENRIN MAPs APIの建物ターゲティングというサービスを利用します。
https://developers.zmaps-api.com/v20/reference/webAPI/targeting.html
ZENRIN MAPs APIを契約すると、APIを利用するための認証方法の設定とアクセスキーの取得ができるようになります。認証方法は、今回はOAuth2.0認証の場合を紹介します。
https://developers.zmaps-api.com/v20/reference/webAPI/oauth2/token.html
建物情報を取得してスプレッドシート上に転記する
APIで取得できるデータは以下です。
item | zid string |
建物ZID 建物等の地物毎にふられるパーマネントのID |
zid_attr string |
属性ZID 地物内のテナント施設等といった属性情報毎にふられるパーマネントのID |
|
building_name string |
建物名称 | |
name string |
名称 | |
name_read_through string |
名称読み下し(全角カタカナ) | |
post_code string |
郵便番号 | |
address_code string |
住所コード | |
address string |
住所 | |
room_count integer |
部屋数 | |
tenant_floor_type integer |
階数種別 該当階の地上、地下などの種別です。
|
|
tenant_floor string |
テナント・部屋の階数 | |
tenant_floor_num integer |
テナント・部屋の階数数値 | |
tenant_room_name string |
部屋名称 | |
building_type integer |
建物・テナントを判別する区分
|
|
building_top_floor_num integer |
建物の最上階数 | |
building_bottom_floor_num integer |
建物の地下階数 (地下階が存在しない場合は0、地下階数が不明な場合は-1が返却されます。) |
|
position | ["経度","緯度"] | |
area_size integer |
面積(単位:m² 平方メートル) | |
total_area_size integer |
延べ床面積(単位:m² 平方メートル) | |
distance number |
検索座標と代表点の直線距離(proximityを指定した場合のみ返却) 単位はm |
1. 実行環境の準備: APIを利用するためのコードを記述する場としてGoogle App Scriptを、データの出力先としてスプレッドシートを準備します。
まずはOAuth2.0認証で、APIを利用するためのトークンを取得します。
function fetchBuildingDataWithToken() {
var tokenUrl = "https://[domain]/oauth2/token トークン取得先のURLです。[domain]の部分を適宜変更する必要あり";
var clientId = 'クライアントID';
var clientSecret = 'クライアントシークレットキー';
var tokenCredentials = Utilities.base64Encode(clientId + ':' + clientSecret);
var payload = {
'grant_type': 'client_credentials'
};
var tokenOptions = {
'method': 'post',
'contentType': 'application/x-www-form-urlencoded',
'headers': {
'Authorization': 'Basic ' + tokenCredentials
},
'payload': payload
};
var tokenResponse = UrlFetchApp.fetch(tokenUrl, tokenOptions);
var tokenJson = JSON.parse(tokenResponse.getContentText());
var accessToken = tokenJson.access_token;
2. エリアの選定: 収集するデータの範囲を決めます。
次に建物情報を取得した範囲を決めます。
今回は、指定した緯度経度を中心に半径300m以内の建物情報を取得します。
上記を実行すると、以下のようにスプレッドシートに建物情報が転記されます。
今回は、ZENRIN MAPs APIについて紹介しました。次回はここからデータクレンジングを行う流れをご紹介したいと思います。
不動産DXに関するご相談などもお気軽にどうぞ。