Карты Google инициализируются с использованием пользовательских маркеровJquery

Программирование на jquery
Ответить
Anonymous
 Карты Google инициализируются с использованием пользовательских маркеров

Сообщение Anonymous »

Следующая функция инициализации выдает сообщение «Невозможно установить свойства неопределенных» в этой строке: (markers[markerItem.id] = маркер):

Код: Выделить всё

       function initMap() {
var marker = null;
var map_markers = map_settings.marker;
//console.log('map_markers.length '+map_markers.length);
//console.log('map_settings.start_lat '+map_settings.start_lng);
if(map_markers.length > 0) var bounds = new google.maps.LatLngBounds();
var mylat = map_settings.start_lat;
var mylong = map_settings.start_lng;
var mapOptions = { center: new google.maps.LatLng(mylat, mylong), zoom: 6, mapTypeId: google.maps.MapTypeId.ROADMAP };
(map = new google.maps.Map(document.getElementById("map"), mapOptions)),
map_markers.length > 0 &&
map_markers.forEach(function(markerItem) {
var marker_icon = "";
var marker = "";
markerItem.icon && (marker_icon = markerItem.icon);
marker = new google.maps.Marker({ position: new google.maps.LatLng(markerItem.lat, markerItem.lng), map: map, title: markerItem.title, infoWindow: void 0 }),
icon = { url: markerItem.icon },
image_icon = new Image();
console.log('marker '+ marker );
if (
((image_icon.src = markerItem.icon),
(image_icon.onload = function () {
marker.setIcon(icon);
}),
(image_icon.onerror = function () {
marker.setIcon(null);
}),
(marker.infoWindow = new google.maps.InfoWindow({ content: markerItem.info, maxWidth: 200 })),
google.maps.event.addListener(marker, "click", function () {
markers.forEach(function (item) {
item.infoWindow && item.infoWindow.close();
}),
this.infoWindow && this.infoWindow.open(map, this);
}),
(markers[markerItem.id] = marker),
bounds.extend(marker.position),
bounds.getNorthEast().equals(bounds.getSouthWest()))
) {
var extendPoint1 = new google.maps.LatLng(bounds.getNorthEast().lat() + 0.01, bounds.getNorthEast().lng() + 0.01),
extendPoint2 = new google.maps.LatLng(bounds.getNorthEast().lat() - 0.01, bounds.getNorthEast().lng() - 0.01);
bounds.extend(extendPoint1), bounds.extend(extendPoint2);
}
}),
map_markers.length > 0 && map.fitBounds(bounds);
}

У меня есть аналогичный код, работающий в старом проекте... что я здесь контролирую?

Подробнее здесь: https://stackoverflow.com/questions/790 ... om-markers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»