Диспетчер маркеров Google не определен

#javascript #google-maps #google-maps-api-3 #google-maps-markers

#javascript #google-карты #google-maps-api-3 #google-карты-маркеры

Вопрос:

я пытаюсь создать диспетчер маркеров Google, но получаю сообщение об ошибке, маркер не определен, я закомментировал код, который вызывает проблему, я установил его для пользователя, нажимающего на карту и помещающего маркер, я хочу, чтобы он мог делать это автоматически, появляясь на карте Google с помощьюДИСПЕТЧЕР МАРКЕРОВ GOOGLE

 @{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<div id="map_canvas" style="width:500px; height:500px;"></div>

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true">

</script>


    <script type="text/javascript">

        var map;
        var counter;
        var latlng;
        var locationAddress;
        var geocoder;
        function initialize() {
            geocoder = new google.maps.Geocoder();
            latlng = new google.maps.LatLng(46.043830, 14.488864);
            var myOptions = {
                zoom: 16,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
            counter = 0;

            google.maps.event.addListener(map, 'click', function (event) {
                map.setCenter(event.latlng);
                placeMarker(event.latLng);

            });


        }

        function placeMarker(location) {
            var clickedLocation = new google.maps.LatLng(location);
            latlng = location;
            var marker = new google.maps.Marker({
                position: location,
                map: map
            });
            codeLatLng(location, marker);
        }

        function addLocationInfo(marker) {
            var infoWindow = new google.maps.InfoWindow({ content: locationAddress, size: new google.maps.Size(50, 50) });
            google.maps.event.addListener(marker, 'click', function () {
                infoWindow.open(map, marker);
            });
        }

        function codeLatLng(latlng, marker) {
            if (geocoder) {
                geocoder.geocode({ 'latLng': latlng }, function (results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        if (results[1]) {
                            locationAddress = results[1].formatted_address;
                        }
                    } else {
                        locationAddress = "Neznan naslov";
                    }
                    addLocationInfo(marker);
                });
            }
        }

//        // Create a new instance of the MarkerManager
//        var mgr = new MarkerManager(map);
//        // Create marker array
//        var markers = [];
//        // Loop to create markers and adding them to the MarkerManager
//        for (var i = 0; i < 50; i  = 0.1) {
//            var marker = new GMarker(new GLatLng(59.0   i, 13.80   i));
//            markers.push(marker);
//        }
//        // Add the array to the MarkerManager
//        mgr.addMarkers(markers);
//        // Refresh the MarkerManager to make the markers appear on the map
//        mgr.refresh();

        $(document).ready(function () {
            initialize();
        });

    </script>
  

Сообщение об ошибке: MarkerManager не определен

Ответ №1:

Вы смешиваете код Google Maps API 2 и API 3.
Удалите параметр v = 2 или измените его на v = 3 (или, например, v = 3.5).

Измените это: sensor=true на sensor= true или sensor= false

Удалите ключ API, который требуется только для API 2.

Избавьтесь от всего кода типа GMap2, GLatLng, который предназначен для API 2, и измените его на синтаксис API 3.

Комментарии:

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

2. попытка сделать это по-своему все еще вызывает проблемы, я буду придерживаться поправки к кодированию, которую я внес в свой первый пост, и ждать, пока кто-нибудь не сможет мне помочь / направить

3. «your way» по-прежнему использует код API 2, который несовместим с API 3. Вы вызываете файл JS, который требуется менеджеру маркеров?

4. как мне тогда изменить его на API 3? для меня все это довольно ново. Черт, у меня нет файла JS, откуда я могу его загрузить, или я могу вызвать его извне?

5. Вероятно, вы могли бы начать здесь: google-maps-utility-library-v3.googlecode.com/svn/tags /…