отображение местоположения адреса с помощью Google Maps onload - PullRequest
2 голосов
/ 06 января 2012

Я пытаюсь показать местоположение адреса при загрузке страницы, но моя карта вообще не отображается.Я пытался предупредить (адрес), и это работает.Он показывает правильный адрес, который я пытаюсь получить.Но я не уверен, правильно ли я это делаю?

<script>
    var geocoder;
    var map;
    function codeAddress() {
    geocoder = new google.maps.Geocoder();
    //var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
            var city_state_zip = document.getElementById("city_state_zip").innerHTML;
            var street_address = document.getElementById("street_address").innerHTML;
            var address = street_address + " " + city_state_zip;//document.getElementById(street_addres +" "+ city_state_zip).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);
              }
            });
          }



    window.onload = function(){
            codeAddress();
       }
</script>

Я объединил initialize () с codeAddress (), найденным в этом примере: http://code.google.com/apis/maps/documentation/javascript/geocoding.html#GeocodingStatusCodes Причина, по которой я хочуобъедините это, потому что я не хочу загружать карту со случайным LatLng, и я хочу, чтобы она загружалась с адресом, который у меня уже есть.

У кого-нибудь есть идеи, правильно ли я это делаю?

Спасибо!

1 Ответ

4 голосов
/ 06 января 2012

Следующая модификация скрипта заставляет его работать для тех, кто был в той же лодке, что и я.Теперь это позволяет мне загружать определенный адрес при загрузке страницы, он автоматически определяет широту и долготу из моего html.

Это небольшое изменение с сайта Google

<script>
  var geocoder;
  var map;
  function codeAddress() {
    geocoder = new google.maps.Geocoder();
    var lat='';
    var lng=''
    var city_state_zip = document.getElementById("city_state_zip").innerHTML;
    var street_address = document.getElementById("street_address").innerHTML;
    var address = street_address + " " + city_state_zip;
    geocoder.geocode( { 'address': address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
       lat = results[0].geometry.location.lat(); //getting the lat
       lng = results[0].geometry.location.lng(); //getting the lng
       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);
            }
     });
     var latlng = new google.maps.LatLng(lat, lng);
     var myOptions = {
         zoom: 8,
         center: latlng,
         mapTypeId: google.maps.MapTypeId.ROADMAP
     }
     map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
     }


window.onload = function(){
       codeAddress();
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...