маркеры с названиями от объекта, всегда повторяют название

У меня есть объект с местоположением и описанием, маркеры хорошо обозначены на карте, но в названии всегда "гато". Я пробовал несколько вещей, таких как clousers, но они не работают или я использовал их неправильно. Вложенный цикл for, который циклически повторяет объект, и он получает местоположение, но не описание, какое из них постоянно. Может ли кто-нибудь мне помочь? Это мой код:

/*OBJECT */

  var addresses1 = {
            "address_1": {
                "location": "Avenida de burgos, 9, madrid",
                "description": "gallina"
            },
            "address_2": {
                "location": "castellana, 169, madrid",
                "description": "pollo"
            },
            "address_3": {
                "location": "bilbao, 5, madrid",
                "description": "gato"
            }                
        }

/* NEsted loop indie the intilize() method */

         for (var key in addresses1) {
                var obj = addresses1[key];
                for (var y = 0; y < 1; y++) {

                    var locat = obj.location;
                    var descrip = obj.description;

                    var myAddressQuery = locat;
                    var geocoder = new google.maps.Geocoder();
                    geocoder.geocode({'address': myAddressQuery}, function(results, status) {

                            map.setCenter(results[0].geometry.location);
                            var marker = new google.maps.Marker({
                                map: map,
                                icon: image,
                                position: results[0].geometry.location,
                                title: descrip
                            });                    
                    });


                }
            }

person Polo    schedule 21.10.2014    source источник
comment
Ограниченное подключение к Интернету, я не могу дотянуться!   -  person Polo    schedule 21.10.2014


Ответы (1)


похожий вопрос

Если вы добавите в свой код функцию «geocodeAddress» (чтобы получить закрытие функции для переменной для создания маркера, она будет работать.

function geocodeAddress(maddress, description, image, map) {
  var geocoder = new google.maps.Geocoder();
  geocoder.geocode({
    'address': maddress
  }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {

      var iconBase = 'https://maps.google.com/mapfiles/kml/shapes/';
      var marker = new google.maps.Marker({
        position: results[0].geometry.location,
        icon: image,
        map: map,
        title: description
      });
      map.setCenter(results[0].geometry.location);
    } else {
      alert("Geocode was not successful for the following reason: " + status);
    }
  });
}

рабочая скрипта

Фрагмент кода:

var geocoder;
var map;
var addresses1 = {
  "address_1": {
    "location": "Avenida de burgos, 9, madrid",
    "description": "gallina"
  },
  "address_2": {
    "location": "castellana, 169, madrid",
    "description": "pollo"
  },
  "address_3": {
    "location": "bilbao, 5, madrid",
    "description": "gato"
  }
};

function geocodeAddress(maddress, description, image, map) {
  var geocoder = new google.maps.Geocoder();
  geocoder.geocode({
    'address': maddress
  }, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {

      var iconBase = 'https://maps.google.com/mapfiles/kml/shapes/';
      var marker = new google.maps.Marker({
        position: results[0].geometry.location,
        icon: image,
        map: map,
        title: description
      });
      map.setCenter(results[0].geometry.location);
    } else {
      alert("Geocode was not successful for the following reason: " + status);
    }
  });
}

function initialize() {
  var map = new google.maps.Map(
    document.getElementById("map_canvas"), {
      center: new google.maps.LatLng(37.4419, -122.1419),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
  var image = "http://maps.google.com/mapfiles/ms/micons/blue-dot.png";

  for (var key in addresses1) {
    var obj = addresses1[key];
    for (var y = 0; y < 1; y++) {

      var locat = obj.location;
      var descrip = obj.description;

      geocodeAddress(locat, descrip, image, map);
    }
  }


}
google.maps.event.addDomListener(window, "load", initialize);
html,
body,
#map_canvas {
  height: 500px;
  width: 500px;
  margin: 0px;
  padding: 0px
}
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&ext=.js"></script>
<div id="map_canvas" style="width:750px; height:450px; border: 2px solid #3872ac;"></div>

person geocodezip    schedule 21.10.2014
comment
спасибо, @geocodezip, вчера вечером у меня наконец-то получилось сделать что-то очень похожее. Еще раз спасибо! - person Polo; 22.10.2014