note から WordPress に出戻りました!😭

[ Google Maps ] マーカーをドラッグして座標を取得するサンプル。住所から検索もできます!

だるかぶ

サンダルでスーパーカブ乗りの『だるかぶ』です!
ご訪問ありがとうございます。ゆっくりしていってね。(本ページは広告を含みます。)

マーカーをドラッグして座標を取得でき、さらに、住所からの検索もできる Google Maps のサンプルを作ってみました! マーカー座標の微調整などにご利用ください。

Google Maps JavaScript API v3 を使っています。

この記事の目次 非表示

サンプルのソースコード

サンプルのソースコードは次のような感じです。

<!DOCTYPE html>
<html>
<head>
<meta content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>[ Google Maps ] マーカーをドラッグして座標を取得するサンプル。住所から検索もできます!</title>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">

var geocoder;
var map;
var myLatlng = new google.maps.LatLng(35.6894875,139.6917064); // 座標の初期値
var marker;

// 初期化処理
function initialize() {

    geocoder = new google.maps.Geocoder();

    var myOptions = {
        zoom: 8,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }

    // 地図を生成する
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    // マーカーを追加
    marker = new google.maps.Marker({
        position: myLatlng,
        map: map, 
        draggable: true // ドラッグ可能にする
    });

    // ドラッグが終了した時の処理
    google.maps.event.addListener(marker, "dragend", function() {
        setLatLng(marker);
        map.setCenter(marker.getPosition());
    });

    setLatLng(marker); // 座標書き出し

}

// 住所から検索
function codeAddress() {
    var address = document.getElementById("address").value;
    geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            marker.setPosition(results[0].geometry.location);
            setLatLng(marker); // 座標書き出し
        } else {
            alert("Geocode was not successful for the following reason: " + status);
        }
    });
}

// マーカーの位置をテキストフィールドに書きだす。
function setLatLng(marker) {
    var p = marker.getPosition();
    document.getElementById('latitude').value  = p.lat();
    document.getElementById('longitude').value = p.lng();
}

</script>
</head>
<body onload="initialize()">
<input type="textbox" value="Osaka"> <input type="button" value="住所から検索" onclick="codeAddress()">
<div style="width:640px; height:480px;"></div>
現在の座標 : <input type="text" size="22" /> <input type="text" size="22" />
</body>
</html>

以上です〜。

現場からは以上です。それでは、またッ!!!