Autor Zpráva
vecerapl
Profil
Potřebuji si na své stránce na mapě Google Maps zobrazit několik GPS pozic. Bohužel jsou generovány automaticky v počtu 1 až 100, tak že musím vyřešit optimální vycentrování mapy dle GPS a vložit i optimální zoom.

Například se jedná o použítí:
map.setCenter(new GLatLng(50.08741, 14.4208), 13);


Řešil tohle už někdo? Za výpomoc moc děkuji.
ninja
Profil
Statická mapa se umí vecentrovat sama, u klasické ji musíte trochu pomoci:
1. Zjistit hraniční body (nejsevernější, nejvýchodnější, atd.).
2. Spočítat střed a nastavit (nenastavovat zoom).
3. Využít funkce fitBounds:
map.fitBounds(new google.maps.LatLngBounds(
   //bottom left
   new google.maps.LatLng(lat_min, lng_min),
   //top right
   new google.maps.LatLng(lat_max, lng_max)
));


Nebo nenastavovat střed a nechat to na automatice.
vecerapl
Profil
A jak přesně ten script mám vsadit, aby to bylo funkční?

  <script type="text/javascript"> 
 
    function initialize() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(50.08741, 14.4208), 13);
 
        var myIcon = new GIcon(G_DEFAULT_ICON);
        myIcon.image = "/images/map-icon.png";
        myIcon.iconSize = new GSize(31, 31);
        myIcon.imageMap = [ 0,0, 31,0, 31,31, 0,31 ];
        
        myIcon.shadow = "none";
        
        var markerOptions = { icon:myIcon };
	
	// bod 1
	var point1 = new GLatLng(50.08486,14.4632);
	var marker1 = new GMarker(point1, markerOptions);
	
        GEvent.addListener(marker1, "click", function () {
	      marker1.openInfoWindowHtml('<a href="#" title=""><img src="/images/sleva.jpg" class="mapPointImg" /></a><p class="mapPointadress">Nábřeží 134<br /> Praha 10</p><p><span class="mapPointPrice">Cena: 254 Kč</span><span class="mapPointDiscount">Sleva: 57%</span></p><p class="mapPointLink"><a href="#" title="">Zobrazit detail slevy &raquo;</a></p>');
        });
        map.addOverlay(marker1);
	
	// bod 2
	var point2 = new GLatLng(50.08780,14.4021);
	var marker2 = new GMarker(point2, markerOptions);
	
        GEvent.addListener(marker2, "click", function () {
	      marker2.openInfoWindowHtml('<a href="#" title=""><img src="/images/sleva.jpg" class="mapPointImg" /></a><p class="mapPointadress">Nábřeží 134<br /> Praha 10</p><p><span class="mapPointPrice">Cena: 254 Kč</span><span class="mapPointDiscount">Sleva: 57%</span></p><p class="mapPointLink"><a href="#" title="">Zobrazit detail slevy &raquo;</a></p>');
        });
        map.addOverlay(marker2);
	
        // bod 3
	var point3 = new GLatLng(50.08085,14.4323);
        var marker3 = new GMarker(point3, markerOptions);
	
        GEvent.addListener(marker3, "click", function () {
	      marker3.openInfoWindowHtml('<a href="#" title=""><img src="/images/sleva.jpg" class="mapPointImg" /></a><p class="mapPointadress">Nábřeží 134<br /> Praha 10</p><p><span class="mapPointPrice">Cena: 254 Kč</span><span class="mapPointDiscount">Sleva: 57%</span></p><p class="mapPointLink"><a href="#" title="">Zobrazit detail slevy &raquo;</a></p>');
        });
        map.addOverlay(marker3);
      }
    }
  </script>
ninja
Profil
Co třeba projevit trochu snahy a vyřešit alespoň jeden z těch 3. kroků?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0