/ / priblížiť na google maps API - google-maps, google-maps-api-3

zväčšiť v google maps API - google-maps, google-maps-api-3

Môžem obmedziť priblíženie mapy Google api na jednotlivcazväčšiť? Myslím, že môžem priblížiť len 2 a 6 a nie 2-3-4-5-6 Videl som, že mám min zoom a max zoom, ale nechcem, aby zväčšovanie bolo v rozmedzí len v jednom.

S pozdravom, Yossi

odpovede:

3 pre odpoveď č. 1

Môžete to len napodobniť. Rozhranie API vám neumožňuje vynechať priblíženie.

Na zoom_changed udalosť už vám povie niečo o zmene. Vo verzii 2, by mohol vedieť staré zväčšenia a novú úroveň.

Preto musíte uhádnuť verzia 3.

Ak ste na priblížení 2 a používateľ priblíži, API prejde na priblíženie 3. Takže môžete zachytiť zoom_changed udalosť, otestujte, či je mapa teraz na úrovni 3 a nastavte ju na úroveň 6. Môžete to isté urobiť v inom smere: ak má byť mapa na úrovni 5 (od 6), urobte ju 2.

// Untested code
google.maps.event.addListener(map,"zoom_changed",function () {
if (map.getZoom() == 3) map.setZoom(6);
if (map.getZoom() == 5) map.setZoom(2);
});

Všimnite si, že toto nepomôže ak používateľ používa posúvač priblíženia a pohybuje sapriamo od 2 do 5: obsluha udalosti uvidí aktuálny priblíženie ako 5, predpokladajme, že sa posunula iba o jeden krok (zo 6) a nastaví späť na 2. Pomôže tiež, ak sa jazdec použije na zoom 4. Musíte sa rozhodnúť, čo by sa malo stať za týchto okolností. Možno budete chcieť použiť obmedzenú sadu ovládacích prvkov mapy, ktorá nemá jazdec.


1 pre odpoveď č. 2

dobre môžete použiť funkciu getZoom () po kliknutí na mapu. skontrolujte, či sa zmenila úroveň priblíženia. potom pomocou setZoom nastavte vhodnú úroveň priblíženia kliknite sem pre pomoc


1 pre odpoveď č. 3

Môžete pridať poslucháča pre udalosť zoom_changed, skontrolovať priblíženie a nastaviť priblíženie podľa toho, či je bližšie k 2 alebo bližšie k 6.

(za predpokladu, že premenná „map“ obsahuje inštanciu mapy)

google.maps.event.addListener(map, "zoom_changed", function() {

var currentZoom = map.getZoom();
if (currentZoom !== 2 && currentZoom !==6) {
if (currentZoom <=4) {
map.setZoom(2);
} else {
map.setZoom(6);
}
}

});