2015-10-19 3 views
-1

Я искал в Google, как я могу использовать диспетчер маркеров со значением в массиве У меня есть много Marker с долготой и широтой информации в массиве увидеть пример кода, как показано нижеКак Marker менеджер со значением в массиве

var locations = [ 
          ['rabat', 33.906896,-6.263123], 
          ['rabat2', 34.053993,-6.792237], 
          ['agdal', 33.994469,-6.848702], 
          ['casa', 33.587596,-7.657156], 
          ['casa2', 33.531808,-7.674601], 
          ['casa3', 33.58824,-7.673278], 
          ['casa4', 33.542325,-7.578557], 
          ['agadir', 30.433948,-9.600005], 
          ['kech', 31.634676,-8.000164], 
          ['oujda,', 34.689969,-1.912365], 
          ['tanger,', 35.771586,-5.801868], 
          ['JIJEL-ACHOUAT',36.8,5.883333333,1], 
          ['JIJEL-PORT',36.81666667,5.883333333,2], 
          ['SKIKDA',36.88333333,6.9,3], 
          ['ANNABA',36.83333333,7.816666667,4], 
          ['EL-KALA',36.9,8.45,8], 
          ['ALGER-PORT',36.76666667,3.1,9], 
          ['DELLYS',36.91666667,3.95,10.4], 
          ['DAR-EL-BEIDA',36.68333333,3.216666667,12.08571429], 
          ['TIZI-OUZOU',36.7,4.05,13.77142857] 
         ]; 

то, что мне нужно, когда у меня есть страницы я нужно просто показывая некоторые маркеры и когда я увеличить свои карты я хочу, чтобы получить другой маркер я пытался что-то, но это не работает увидеть код как ниже:

   var mgr; 
       var map; 
      function initialize(){ 

        var mapOptions = { 
            zoom: 4, 
            center: new google.maps.LatLng(28.975750, 10.669184), 
            mapTypeId: google.maps.MapTypeId.SATELLITE 
           }; 
         map = new google.maps.Map(document.getElementById('resultcnn'), mapOptions); 
         mgr = new MarkerManager(map); 

        var locations = [ 
          ['rabat', 33.906896,-6.263123], 
          ['rabat2', 34.053993,-6.792237], 
          ['agdal', 33.994469,-6.848702], 
          ['casa', 33.587596,-7.657156], 
          ['casa2', 33.531808,-7.674601], 
          ['casa3', 33.58824,-7.673278], 
          ['casa4', 33.542325,-7.578557], 
          ['agadir', 30.433948,-9.600005], 
          ['kech', 31.634676,-8.000164], 
          ['oujda,', 34.689969,-1.912365], 
          ['tanger,', 35.771586,-5.801868], 
          ['JIJEL-ACHOUAT',36.8,5.883333333,1], 
          ['JIJEL-PORT',36.81666667,5.883333333,2], 
          ['SKIKDA',36.88333333,6.9,3], 
          ['ANNABA',36.83333333,7.816666667,4], 
          ['EL-KALA',36.9,8.45,8], 
          ['ALGER-PORT',36.76666667,3.1,9], 
          ['DELLYS',36.91666667,3.95,10.4], 
          ['DAR-EL-BEIDA',36.68333333,3.216666667,12.08571429], 
          ['TIZI-OUZOU',36.7,4.05,13.77142857] 
         ]; 

            google.maps.event.addListener(mgr, 'loaded', function() { 
            for (var i = 0; i < locations.length; i++) { 
             var marker = new google.maps.Marker({ 
              position: new google.maps.LatLng(locations[i][1], locations[i][2]), 

              map: map 
             }); 
             mgr.addMarkers(marker,5); 
            } 
            mgr.refresh(); 
            }); 


      } 

С благодарностью

ответ

1
  1. Не добавлять маркеры на карте, пусть MarkerManager сделать что
  2. Если вы только добавление одного маркера, используйте .addMarker, не .addMarkers

proof of concept fiddle

фрагмент кода :

var mgr; 
 
var map; 
 

 
function initialize() { 
 

 
    var mapOptions = { 
 
    zoom: 4, 
 
    center: new google.maps.LatLng(34.6479355684, -0.2292535), 
 
    mapTypeId: google.maps.MapTypeId.SATELLITE 
 
    }; 
 
    map = new google.maps.Map(document.getElementById('resultcnn'), mapOptions); 
 

 
    mgr = new MarkerManager(map); 
 

 
    var locations = [ 
 
    ['rabat', 33.906896, -6.263123], 
 
    ['rabat2', 34.053993, -6.792237], 
 
    ['agdal', 33.994469, -6.848702], 
 
    ['casa', 33.587596, -7.657156], 
 
    ['casa2', 33.531808, -7.674601], 
 
    ['casa3', 33.58824, -7.673278], 
 
    ['casa4', 33.542325, -7.578557], 
 
    ['agadir', 30.433948, -9.600005], 
 
    ['kech', 31.634676, -8.000164], 
 
    ['oujda,', 34.689969, -1.912365], 
 
    ['tanger,', 35.771586, -5.801868], 
 
    ['JIJEL-ACHOUAT', 36.8, 5.883333333, 1], 
 
    ['JIJEL-PORT', 36.81666667, 5.883333333, 2], 
 
    ['SKIKDA', 36.88333333, 6.9, 3], 
 
    ['ANNABA', 36.83333333, 7.816666667, 4], 
 
    ['EL-KALA', 36.9, 8.45, 8], 
 
    ['ALGER-PORT', 36.76666667, 3.1, 9], 
 
    ['DELLYS', 36.91666667, 3.95, 10.4], 
 
    ['DAR-EL-BEIDA', 36.68333333, 3.216666667, 12.08571429], 
 
    ['TIZI-OUZOU', 36.7, 4.05, 13.77142857] 
 
    ]; 
 

 
    google.maps.event.addListener(mgr, 'loaded', function() { 
 
    for (var i = 0; i < locations.length; i++) { 
 
     var marker = new google.maps.Marker({ 
 
     position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
 
     }); 
 
     mgr.addMarker(marker, 5); 
 
    } 
 
    mgr.refresh(); 
 
    }); 
 
} 
 
google.maps.event.addDomListener(window, 'load', initialize);
html, 
 
body, 
 
#resultcnn { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<script src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markermanager/src/markermanager.js"></script> 
 
<div id="resultcnn"></div>

+0

Спасибо за ответ, но что мне нужно, когда я нахожусь в увеличении: 4 Мне нужно отобразить, например, 5 маркеров, и когда я нахожусь в увеличении: 5 мне нужно отобразить 10 элементов ..... потому что у меня есть 1000 данных –

+0

И где он указал, что в вашем вопросе? В этом случае, где в вашем коде вы пытались это сделать? – geocodezip

+0

Да, код, который я поделил, - это код, который я пытался сделать. –

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