Как я могу получить объект API карты Google после того, как он объявлен / инициализирован; повторно центрировать объект карты (v3)? - PullRequest
1 голос
/ 09 мая 2011

Я только начинаю работу с API Google Maps API (v3), и он выглядит хорошо, но у меня возникают трудности с получением объекта карты после того, как он был объявлен / инициализирован в другом месте.

<script type="text/javascript">
  function initialize() {
    var latlng = new google.maps.LatLng(38.90229, -77.021899);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);
  }

  function Search() {
    alert ("Searching...");
    var map = document.getElementById("map_canvas");
    // Want to do is map.setCenter(...) but I don't know how to retrieve the map object
  }

</script>

функцию поиска, над которой я работаю?Я хочу перецентрировать карту, в конечном счете.Но, как правило, я хочу получить объект карты, созданный при инициализации.

Спасибо.

1 Ответ

2 голосов
/ 12 мая 2011

Вы должны вернуть карту в intialize () (и, возможно, изменить имя функции). Теперь у вас есть локальная переменная внутри функции initialize (). Итак, последняя строка функции инициализации должна быть больше похожа на

return new google.maps.Map(document.getElementById("map_canvas"), myOptions);

Затем, когда вы вызываете initialize, присвойте возвращаемое значение переменной, скажем, под названием map. Получив объект карты, возвращенный в переменную, вы можете перецентрировать с помощью:

map.setCenter(new google.maps.LatLng(lat, lon)); 

Как у вас сейчас, вы, вероятно, захотите передать map в качестве параметра в Search ().

...