Google Map API добавляет более 10 маркеров - PullRequest
0 голосов
/ 14 декабря 2011

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

var map = null;
var geocoder = null;
var bounds = null;
var gdir;

var properties_address = new Array();
var blueIcon = new GIcon(G_DEFAULT_ICON);
blueIcon.iconSize = new GSize(26, 33);
markerOptions = { icon:blueIcon };
blueIcon.image = "https://mysite/images/marker.gif";

properties_address = ["Abohar,Punjab,india", "Achhalda,Uttar Pradesh,india", "Achhnera,Uttar Pradesh,india", "Adari,Uttar Pradesh,india", "Adilabad,Andhra Pradesh,india", "Adipur,Gujarat,india", "Adoni,Andhra Pradesh,india", "Adoor,Kerala,india", "Agartala,Tripura,india", "Agra,Uttar Pradesh,india", "Ahmedabad,Gujarat,india", "Ahmedgarh,Punjab,india", "Ahmednagar,Maharashtra,india", "Aizawl,Mizoram,india", "Ajmer,Rajasthan,india", "Akaltara,Chhattisgarh,india", "Akola,Maharashtra,india", "Alappuzha,Kerala,india"];

$(document).ready(function() {
    bounds = new GLatLngBounds;
    initialize();
 });

 function initialize() {
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(21.88, 78.442626), 5);
        geocoder = new GClientGeocoder();
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());

        $.each(properties_address, function(index, property) {
          showAddressByAddress(index, property, false);
        });                        
    }
}

function showAddressByAddress(index,address, is_custom)
{
    if(address){
        geocoder.getLatLng(address,function(point) {
            var marker = new GMarker(point,markerOptions);
            map.addOverlay(marker);
            bounds.extend(marker.getPoint());
            map.setZoom(map.getBoundsZoomLevel(bounds));
            map.setCenter(bounds.getCenter());

            GEvent.addListener(marker, "mouseover", function() {
                if(!is_custom){
                    address_html = address + '<br /><a id="route_'+index+'" href="#" class="route_url" data-address="'+ address +'">Route from here</a>';
                }else{
                    address_html = address;
                }

                marker.openInfoWindowHtml(address_html);
            });               

        });
    }
}

Код работает нормально, пока я не предоставлю ему 10 адресов в массиве properties_address, но более 10 адресов дают мне следующую ошибку.

a is null
http://maps.gstatic.com/intl/en_ALL/mapfiles/377a/maps2.api/main.js
Line 1131

Ответы [ 3 ]

0 голосов
/ 15 декабря 2011

Неверное имя массива:

var properties_add21ress = new Array();
0 голосов
/ 15 декабря 2011

Исправлено, я просто пропустил точку, не найденную геокодом.

function showAddressByAddress(index,address, is_custom)
{
    if(address){
        geocoder.getLatLng(address,function(point) {
            if(point){
                var marker = new GMarker(point,markerOptions);

                map.addOverlay(marker);
                bounds.extend(marker.getPoint());
                map.setZoom(map.getBoundsZoomLevel(bounds));
                map.setCenter(bounds.getCenter());


                GEvent.addListener(marker, "mouseover", function() {
                    if(!is_custom){
                        address_html = address + '<br /><a id="route_'+index+'" href="#" class="route_url" data-address="'+ address +'">Route from here</a>';
                    }else{
                        address_html = address;
                    }

                    marker.openInfoWindowHtml(address_html);
                });

            }
        });
    }
0 голосов
/ 14 декабря 2011

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

<html>
<script type="text/javascript">
var myCars=["Saab","Volvo","BMW"];;
console.log(myCars);    
</script>
</html>`

, затем посмотрите в окне консоли firebug, чтобы просмотреть свойства массива. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...