ジオコーダを使わずに郵便番号の周辺地図を表示する
Google Maps API を使って、東京都(都庁)を中心とした日本地図を表示します。
検索ボックスで入力した郵便番号から Postal.Lookup クラス を使って住所を検索します。その住所の緯度経度から日本地図にマーカーを表示します。
そのマーカーをポイントすると吹き出しを、その噴出しの中に、郵便番号、住所、フリガナ、地方公共団体コード、緯度経度を表示します。また、マーカーをクリックすると、そのマーカー付近の地図をズーム表示します。
<script type="text/javascript"> //<![CDATA[ // GMap2 var map; // window.onload window.onload = function() { map = new GMap2(document.getElementById('map')); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GOverviewMapControl()); map.setCenter(new GLatLng(Japan.Tokyo.y, Japan.Tokyo.x), 5); } // run function run(c) { map.clearOverlays(); map.setCenter(new GLatLng(Japan.Tokyo.y, Japan.Tokyo.x), 5); var lookup = new Postal.Lookup(); lookup.onload = function() { for (var i=0; i<lookup.response.length; i++) { var addr = lookup.response[i]; map.addOverlay(createMarker(addr)); } }; lookup.send(c); } // createMarker function createMarker(addr) { var marker = new GMarker(new GLatLng(addr.y, addr.x)); GEvent.addListener(marker, 'mouseover', function() { marker.openInfoWindowHtml('<h3>〒' + addr.c + '</h3>' + '<dl>' + '<dt>住所</dt><dd>' + addr.a + '</dd>' + '<dt>フリガナ</dt><dd>' + addr.k + '</dd>' + '<dt>地方公共団体コード</dt><dd>' + addr.g + '</dd>' + '<dt>経度</dt><dd>' + addr.x + '</dd>' + '<dt>緯度</dt><dd>' + addr.y + '</dd>' + '</dl>' ); }); GEvent.addListener(marker, 'click', function() { map.setCenter(new GLatLng(addr.y, addr.x), 15); }); return marker; } //]]> </script> <form name="f" onsubmit="run(this.c.value); return false;"> 〒 <input type="text" name="c" value="160-0021" size="20" /> <input type="submit" name="g" value="検索" /> </form> <div id="map" style="width:558px; height:558px"></div>
関連情報
- ベーシック
- 送信フォーム
- with jQuery
- Google Maps API
- BLOGRANGER API