SQLの窓 イラストAC フリー素材

2016年06月11日

Google Maps API の ジオコーディング サービスで、住所から緯度・経度の取得

久しぶりに調べたら、インターネットでは古い V2 の情報ばかりだったので。

Google の 日本語ドキュメントページ(ジオコーディング サービス)

▲ のページにそのままのサンプルがあるので、以下のようなソースコードでテストしました

API の読み込みにAPIキーを省略しています
( API キーは自分専用のを取得して指定します )
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js"></script>
<script>
var lat = 34.7013233;
var lng = 135.4966954;
var geocoder = new google.maps.Geocoder();
var map;

$(function(){
	$("#geo_action").on("click",function(){
		geocoder.geocode( {'address': $("#address").val()}, function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				map.setCenter(results[0].geometry.location);
				var marker = new google.maps.Marker({
					map: map,
					position: results[0].geometry.location
				});
				// lat と lng
				console.log(results[0].geometry.location.lat(),results[0].geometry.location.lng());
			}
			else {
				alert("Geocode が失敗しました : " + status);
			}
		});
	});
});

function loadMap(doc,obj_str,a,b,c) {
	var latlng = new google.maps.LatLng(a,b);
	var myOptions = {
		zoom: c,
		center: latlng,
		mapTypeControlOptions: {
			mapTypeIds: [
				google.maps.MapTypeId.HYBRID,
				google.maps.MapTypeId.ROADMAP,
				google.maps.MapTypeId.SATELLITE
			],
			style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
		},
		mapTypeId: google.maps.MapTypeId.HYBRID,
		scaleControl: true
	};
	map = new google.maps.Map(doc.getElementById(obj_str),myOptions);
}
google.maps.event.addDomListener(window, 'load', function () {
	loadMap(document,"target_area",lat,lng,15);
}); 
</script>
住所 <input type="text" id="address" style='margin-bottom:10px;width:450px;'> <input type="button" id="geo_action" value="実行">
<div id='target_area' style='width: 600px; height: 480px'></div>
API キー無しでも動作しますが、console ではその旨のワーニングが出るので、将来的には動作しなくなる可能性はあります。
Google Maps API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys
そもそも、Google の API は課金制で、相当数の利用があった場合は支払いの必要性が出て来る為、Google では API キーを元に連絡するというプロセスの為に API が必要です。 一般ユーザが使用する程度では、課金対象になる事はありませんが、認識は必要でしょう。
posted by at 2016-06-11 15:32 | Google MAP | このブログの読者になる | 更新情報をチェックする