2009. március 7., szombat

Tartalmazott pont lekérdezése és google maps kinézet egyszerű testreszabása

A google maps újabb verziói ismét szolgálnak néhány hasznos aprósággal.
Ezek közül kettőt emelnék ki, amik nekem igen hiányoztak pl. a futótérkép építése közben.

Az egyik ilyen új függvény arra szolgál, hogy lekérdezhessük egy adott pontról, hogy benne van-e az adott tartományban vagy sem. Természetesen koordináták egyszerű vizsgálatával eddig sem volt ördöngősség kideríteni, de mégiscsak egyszerűbb meghívni a

bounds.containsLatLng(center)

metódust, mint koordinátákat hasonlítgatni. A függvény a 2.88-as verziótól elérhető.
A másik hasznos és egyben csinos újítás a 2.147-ben került be:

map.setUIToDefault();

Igen, ez a pontosan azt csinálja amire a neve utal, vagyis beállítja az alapértelmezett kinézetet egyetlen függvényhívással olyanra, mint a "nagy" Google Maps.
Összeütöttem egy kis példát a két újdonság felhasználásával. A térkép alatti üzenet jelzi, ha mozgatás után a marker kilóg a térképről.


Íme a kód lényeges része:

var map;

var center = new GLatLng(47.173378, 19.539185);

$(document).ready(function()

{

if (GBrowserIsCompatible())

{

map = new GMap2($("#GoogleMap_Div")[0]);

map.setUIToDefault();

map.setCenter(center, 10);

GEvent.addListener(map, "moveend", checkIsInView);

var myMarker = new GMarker(center);

map.addOverlay(myMarker);

checkIsInView();

}

});

function checkIsInView()

{

var bounds = map.getBounds();

var message = ";

if (bounds.containsLatLng(center))

{

message += "green;\">Benne van";

}

else

{

message += "red;\">Nincs benne";

}

message += "";

$("#message")[0].innerHTML = message;

}

Nincsenek megjegyzések: