36

私のプロジェクトでは、マップの中心を新しい座標に移動したいと考えています。これは私がマップ用に持っているコードです

function initialize() {
    var mapOptions = {
      center: new google.maps.LatLng(0, 0),
      zoom: 4,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
        mapOptions);
  }
  function moveToLocation(lat, lng){
     var center = new google.maps.LatLng(lat, lng);
     var map = document.getElementById("map_canvas");
     map.panTo(center);

  }

moveToLocation 関数は呼び出されますが、マップは中央に移動しません。私が見逃しているものはありますか?

4

2 に答える 2

79

あなたの問題は、オブジェクトを取得しようとして をmoveToLocation使用しているが、期待している要素ではなく、のみを取得することです。したがって、変数には機能がないため、機能しません。必要なのは、変数をどこかに置き去りにすることであり、計画どおりに機能するはずです。次のようにグローバル変数を使用できます。document.getElementByIdMapHTMLDivElementgoogle.maps.MapmappanTomap

window.map = undefined;      // global variable

function initialize() {
  const mapOptions = {
    center: new google.maps.LatLng(0, 0),
    zoom: 4,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  // assigning to global variable:
  window.map = new google.maps.Map(
    document.getElementById("map_canvas"), mapOptions);
}

function moveToLocation(lat, lng){
  const center = new google.maps.LatLng(lat, lng);
  // using global variable:
  window.map.panTo(center);
}

動作中の jsFiddle を参照してください: http://jsfiddle.net/fqt7L/1/

于 2012-10-02T22:55:18.573 に答える