Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Ошибка Google MAps API V3 (https://javascript.ru/forum/dom-window/53598-oshibka-google-maps-api-v3.html)

clubman 10.02.2015 15:09

Ошибка 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>


вот так отображает:

nice_try 10.02.2015 15:19

какая ошибка вылазит? чему равно this.contentString и marker внутри
google.maps.event.addDomListener(marker, 'click', function (e) {
?

clubman 10.02.2015 15:29

извиняюсь но посмотреть никак не могу((( на меркер навожу хочу сделать проинспектировать но не нажимается. Если быть точнее то вообще не могу маркер проинспектировать:cray:

nice_try 10.02.2015 16:09

выводи в консоль командой console.log(marker) либо используй breakpoint во вкладке sources

clubman 10.02.2015 16:30

console.log(marker)
VM164:2 Uncaught ReferenceError: marker is not definedmessage: "marker is not defined"stack: (...)get stack: function () { [native code] }set stack: function () { [native code] }__proto__: Error

P/S вроде правильно вывел

nice_try 10.02.2015 16:51

могу посоветовать только запилить тестовый пример, люба сюда, либо в песочницу, либо на jsfiddle.net

clubman 10.02.2015 17:59

к сожалению этот скрипт платный и не хотелось бы его в открытый доступ кидать. Может как вариант ко мне через тимвиевер подключитесь и глянете. соответственно не бесплатно.


Часовой пояс GMT +3, время: 12:54.