0

Googleジオコーダーサービスを使用して、ユーザーが入力した都市の座標を取得しようとしています。ただし、LatLng()オブジェクト(latlngCity)の初期化に問題があるようで、マップは表示されません。コードは次のとおりです。

var map;
var latlngCity;

function initialize() {
  var geocoder = new google.maps.Geocoder();
  geocoder.geocode({'address': 'Lisbon, PT'}, function(results, status) {
      if(status == google.maps.GeocoderStatus.OK) {
        latlngCity = results[0].geometry.location;
      }
  });


  var myMapOptions = {
      zoom: 8,
      center: latlngCity,
      mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  map = new google.maps.Map(document.getElementById("map_canvas"),
      myMapOptions);
}

簡単にするために、住所の都市文字列を自分で挿入しています。変数mapとlatlngCityはグローバルです。このコードに何か問題がありますか?どうもありがとう。

4

1 に答える 1

0

マップ作成コードをコールバックに移動する必要がありgeocodeます(または、デフォルトの位置でマップを作成してから、コールバック内でマップを再中央揃えします)。

あなたのコードでは、はまだ実行されているlatlngCity間(非同期)のマップ作成時によって定義されていません。geocode

これが理にかなっていることを願っています。それ以外の場合は、いくつかのコードを提供します。お知らせ下さい。

于 2011-06-21T16:17:16.340 に答える