Я пытаюсь принять адрес в цикле for и получить широту и долготу этого адреса и создать маркер с значениями lat/long.Google maps Геокодер и маркер не работают
У меня есть преобразование адреса в lat/long, но я не могу получить «новый маркер», чтобы принимать значения.
Любые предложения?
var latitude;
var longitude;
var myLatLng;
for (i = 0; i < locations.length; i++) {
var geocoder = new google.maps.Geocoder();
var BuisAddress = locations[i][1];
geocoder.geocode({ 'address': BuisAddress }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latitude = results[0].geometry.location.lat();
longitude = results[0].geometry.location.lng();
}
});
myLatLng = new google.maps.LatLng(latitude, longitude);
marker = new google.maps.Marker({
position: myLatLng,
map: map
});
**** первый UPDATE ****
, если я сделаю это, то только один маркер появляется, когда у меня есть несколько адресов и маркер всплывающее не работает. Если я сделаю следующее, то появятся все три маркера, но все же не будут работать с кликабельными всплывающими окнами.
var geocoder = new google.maps.Geocoder();
BuisAddress = locations[i][1];
geocoder.geocode({ 'address': BuisAddress }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latitude = results[0].geometry.location.lat();
longitude = results[0].geometry.location.lng();
myLatLng = new google.maps.LatLng(latitude, longitude);
marker = new google.maps.Marker({
position: myLatLng,
map: map
});
}
});
myLatLng = new google.maps.LatLng(latitude,longitude);
marker = new google.maps.Marker({
position: myLatLng,
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
var str = encodeURI(locations[i][1]).replace(",", "");
var address = str.replace(/%20/g, "+");
var infowindow = new google.maps.InfoWindow();
Геокодер является асинхронным. Вы должны ** использовать ** возвращенный результат в функции обратного вызова. – geocodezip
Связанный вопрос: [Многоадресный массив Google maps Uncaught TypeError: Не удается прочитать свойство «0» неопределенного] (http://stackoverflow.com/questions/32318578/multi-address-array-google-maps-uncaught-typeerror-cannot -read-property-0-of) – geocodezip
Связанный вопрос: [Сопоставление нескольких местоположений с API API Google Maps v3 и API геокодирования] (http://stackoverflow.com/questions/29463131/mapping-multiple-locations-with-google- maps-javascript-api-v3-and-geocoding-api) – geocodezip