0

ここにあるサンプルのGoogleマップコードを調整しようとしていますhttps://developers.google.com/maps/documentation/javascript/geocodingので、ページの読み込み時に住所をジオコーディングします。したがって、固定座標 (ビュー ファイルから既に読み込まれている) はなくなり、人間の操作なしで単独でジオコーディングする必要があります。

var geocoder;
var map;
function initialize() {
  geocoder = new google.maps.Geocoder();
  var latlng = new google.maps.LatLng(-34.397, 150.644);
  var mapOptions = {
    zoom: 8,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
}

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);
      var marker = new google.maps.Marker({
        map: map,
        position: results[0].geometry.location
    });
    } else {
    alert("Geocode was not successful for the following reason: " + status);
    }
  });
}

ご協力いただきありがとうございます。

4

1 に答える 1

0

ここで何を尋ねているのかわからない。ページが表示されるときに住所をジオコーディングする場合は、#address要素に値が必要です。

<input type="text" id="address" value="1600 Pennsylvania Ave NW  Washington, DC 20500">

...そして、関数内で関数initialize()geocode()関数を呼び出すだけです。window.onload

window.onload = function() {
    initialize();
    codeAddress();
}

ここに jsFiddle のデモがあります: http://jsfiddle.net/fYbqe/

EDIT jsFiddle を更新して、カスタム アドレスの使用を少し簡単にしました: http://jsfiddle.net/fYbqe/1/

于 2013-04-03T01:29:03.777 に答える