6

Próbowałem używać menedżera znaczników map Google, ale wydaje mi się, że za każdym razem uderzam w ceglany mur, śledzę samouczki, jak tworzyć markermanager w dokumentacji Google'a, ale wygląda na to, że nic nie działa dla mnie , czy jest to problem w pisaniu mojego kodu? zabrakło pomysłów, w tym momencie ustawiłem JEDEN znacznik, by opuścić mapę na podstawie latlng.Google Map Marker Manager V3

Czy ktoś może spróbować wprowadzić kod instruktażowy i znaleźć dla mnie działające rozwiązanie? doprowadza mnie do szału.

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

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

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

    @*<script src="../../Scripts/markermanager.js" type="text/javascript"></script>*@ 

    <script type="text/javascript"> 

     function initialize() { 
      var latlng = new google.maps.LatLng(-34.397, 150.644); 
      var myOptions = { 
       zoom: 8, 
       center: latlng, 
       mapTypeId: google.maps.MapTypeId.ROADMAP // map view, can be set to satellite, street, roadview, aerialview 
      }; 
      map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

      var marker = new google.maps.Marker({ 
       position: latlng, 
       map: map, 
       animation: google.maps.Animation.DROP, 
       title: "Uluru (Ayers Rock)" 
      }); 

      marker.setMap(map); 
     } 

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

    </script> 
+1

zostały dołączone do pliku, ale nie używasz klasy menedżera marker z powyższego kodu. Dlaczego? –

+0

wywołuje błędy: GBounds nie jest zdefiniowany [Break On This Error] GBounds.prototype.containsPoint = function (point) {w pliku markermanager.js – MJCoder

+0

Z jakiego menedżera znaczników korzystasz? Czy używasz menedżera znaczników utworzonego dla interfejsu GMAP API v2 z interfejsem GMAP API v3? –

Odpowiedz

15

Oto przykład, jak zacząć grę:

var map; 
 
var mgr; 
 

 
function initialize() { 
 
    var myOptions = { 
 
    zoom: 8, 
 
    center: new google.maps.LatLng(-34.397, 150.644), 
 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }; 
 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
 
    mgr = new MarkerManager(map); 
 
    google.maps.event.addListener(mgr, "loaded", function() { 
 
    for (var i = 0; i < 1000; i++) { 
 
     var marker = new google.maps.Marker({ 
 
     position: new google.maps.LatLng(Math.random() * 180 - 90, Math.random() * 360 - 180), 
 
     title: "Random marker #" + i 
 
     }); 
 
     mgr.addMarker(marker, 0); 
 
    } 
 
    mgr.refresh(); 
 
    }); 
 
} 
 
google.maps.event.addDomListener(window, "load", initialize);
<script src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
 
<script src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markermanager/src/markermanager.js"></script> 
 

 
<div id="map_canvas" style="height: 400px;"></div> 
 
<p>Pan or zoom out to see markers</p>

Zauważ, że podczas tworzenia znacznik, ja nie określił map: map lub marker.setMap(map). Zamiast tego znaczniki są dodawane do menedżera znaczników, który z kolei dodaje je do mapy, gdy dzwonisz pod numer markermanager.refresh().

Należy również pamiętać, że dodałem wszystkie znaczniki na poziomie powiększenia 0. Najlepiej załadować kilka znaczników na niższych poziomach powiększenia i więcej znaczników na wyższych poziomach zoomu.

+0

doskonały przykład .. po prostu to, czego potrzebowałem, więc widzę, że użyliśmy pętli for, która utworzy do 1000 znaczników i umieści je losowo za pomocą metody math.random(), jak to zrobię, gdy mapa załaduje wszystkie markery są wyświetlane bez powiększania lub pomniejszania, aby zobaczyć je wszystkie? będzie jak: map.fitBounds (latlngbounds); – MJCoder

+0

dla powyższego przykładu, jak zmieściłbym wszystkie znaczniki na mapie bez powiększania/pomniejszania? map.fitBounds(); czy to jest tak? – MJCoder

+0

pracuję teraz dla mnie, teraz będę patrzył na JSON Wynik w MVC3 :) dzięki Salman :) – MJCoder