https://developers.google.com/maps/documentation/javascript/geocoding?hl=ja
http://pcrice.blog129.fc2.com/blog-entry-161.html
https://sites.google.com/site/gmapsapi3/Home/services
http://negimemo.net/1860
現在地の緯度・経度を取得してそれを引数に都道府県を特定したかったので
上記を参考に取得確認できるようなものをてけとーにかいたのでメモ
<html>
<body>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<script type="text/javascript">
if (navigator.geolocation) {
// 現在の位置情報を取得
navigator.geolocation.getCurrentPosition(
function (pos){
reversegeocoding(pos.coords.latitude,pos.coords.longitude);
},
// (2)位置情報の取得に失敗した場合
function (error) {
var message = "";
switch (error.code) {
// 位置情報が取得できない場合
case error.POSITION_UNAVAILABLE:
message = "位置情報の取得ができませんでした。";
break;
// Geolocationの使用が許可されない場合
case error.PERMISSION_DENIED:
message = "位置情報取得の使用許可がされませんでした。";
break;
// タイムアウトした場合
case error.PERMISSION_DENIED_TIMEOUT:
message = "位置情報取得中にタイムアウトしました。";
break;
}
window.alert(message);
}
);
} else {
window.alert("本ブラウザではGeolocationが使えません");
}
function reversegeocoding(lat,lng){
var geocoder;
alert("id: " + lat); // 緯度
alert("keido: " + lng); // 経度
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat,lng);
if (geocoder) {
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
for (var r = 0; r < results.length; r ++) {
var end = 0;
var address = results[r].address_components;
for (var i = 0; i < address.length; i++) {
switch (address[i].types[0]) {
case "administrative_area_level_1":
alert(address[i].long_name);
end = 1;
break;
}
}
if(end == 1){
break;
}
}
}else{
alert("Geocoder failed due to: " + status);
}
});
}
}
</script>
</body>
</html>
0 件のコメント:
コメントを投稿