Показать сообщение отдельно
  #1 (permalink)  
Старый 10.02.2015, 15:09
Интересующийся
Отправить личное сообщение для clubman Посмотреть профиль Найти все сообщения от clubman
 
Регистрация: 10.02.2015
Сообщений: 12

Ошибка Google MAps API V3
Суть проблемы, когда нажимаю на маркер то текст который должен всплывать не всплывает. Открывается просто пустое окно. Сам скрипт вызова прилагаю.

<script type="text/javascript">
    function initialize() {
        var myLatlng = new google.maps.LatLng(56.323297, 43.062578);
        var mapOptions = {
            zoom: 15,
            center: myLatlng,
            scaleControl: true
        };
        var allMarkers = [],
                map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions),
                markers = {new_obj},
                infoWin = [],
                setMarker = function (markers, clear) {
                    if (clear) {
                        for (var i in allMarkers) {
                            allMarkers[i].setMap(null)
                        }
                    }
                    for (var i in infoWin) {
                        console.log(infoWin[i])
                        infoWin[i].close();
                    }
                    for (var i in markers) {
                        var marker = null;
                        if (typeof  allMarkers[markers[i].id] == 'object') {
                            marker = allMarkers[markers[i].id];
                            allMarkers[i].setMap(map);
                        } else {
                            var prepareCords = markers[i].LatLng.split(',');
                            var icon = (markers[i].icon) ? new google.maps.MarkerImage(markers[i].icon) : null;
                            console.log(markers[i].icon,icon);
                            marker = new google.maps.Marker({
                                id: markers[i].id,
                                position: new google.maps.LatLng(prepareCords[0], prepareCords[1]),
                                map: map,
                                icon: icon,
                                clickable: true,
                                title: markers[i].title,
                                contentString: markers[i].contentString
                            });
                            google.maps.event.addDomListener(marker, 'click', function (e) {
                                for (var j in infoWin) {
                                    infoWin[j].close();
                                }
                                infoWin[this.id] = new google.maps.InfoWindow({
                                    content: this.contentString,
                                    maxWidth: 200
                                });
                                infoWin[this.id].open(map, this)
                            });
                            allMarkers[markers[i].id] = marker;
                        }
                    }
                }

        for (var i in markers) {
            setMarker(markers[i], false)
        }
        var trafficLayer = new google.maps.TrafficLayer();
        trafficLayer.setMap(map);

        $('*[data-cat]').click(function () {
            var id = $(this).data('cat');
            if (id == 0) {
                for (var i in markers) {
                    setMarker(markers[i], false)
                }
            } else {
                setMarker(markers[id], true)
            }

        })
    }

    google.maps.event.addDomListener(window, 'load', initialize);

</script>


вот так отображает:
Ответить с цитированием