2011-12-14 3 views
0

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

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 
+0

Является ли пример кода выше main.js? Где «а»? – omarello

+0

'a is null' - типичная ошибка, которую вы получите из javascript Google Maps, когда в вашем коде есть ошибка JS. – duncan

+0

Можете ли вы показать нам содержимое элемента 11-го массива? – duncan

ответ

0

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

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

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

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

затем посмотреть в окне поджигатель консоли для просмотра свойств массива enter image description here

0

Имя массива является неправильным:

var properties_add21ress = new Array(); 
+0

его просто орфографическая ошибка при публикации вопроса, но это не проблема. Спасибо за ответ. – Nehal

Смежные вопросы