| Wyszukiwanie adresu |
Funkcja search
Wyszukuje punkty adresowe zgodne z podanym adresem. Dane przekazywane do podstawianej w drugim parametrze funkcji zawierają listę dopasowanych punktów adresowych (geocodeInfoArray) zawierających:
Współrzędne geograficzne są zwracane tylko dla pierwszego elementu z listy wyników. Jeżeli któryś z elementów nie występuje w wynikowym punkcie adresowym, oznacza to, że został odrzucony podczas wyszukiwania.
Dostępne parametry:
| address | {String} Adres do wyszukania w formacie "(miejscowość|kod)[,ulica [numer]][;kod|adm1[,adm2[,adm3]])]", co oznacza, że na początku znajduje się miejscowość albo kod pocztowy, następnie opcjonalnie po przecinku ulica z ewentualnym numerem i dalej opcjonalnie po średniku kod pocztowy albo lista do trzech obszarów administracyjnych (od najwyższego do najniższego poiomu) oddzielonych przecinkami. Wielkość liter nie ma znaczenia. |
| callback | {Function} Funkcja obsługi wyników wyszukiwania. |
var map = new EMAPI.Map('mapa1','userId');
var finder = new EMAPI.Finder(map); //tworzenie nowej instancji EMAPI.Finder dal mapy 'map'
finder.search("kowiesy", onfind); //wyszukiwanie miejscowosci Kowiesy i wywołanie
//funkcji onfind do obsługi wyników wyszukiwania
onfind= function(res)
{
alert(res.geocodeInfoArray[0].areaName0); //wywołanie okna z informacją zawierającą nazwę
} //województwa szukanej miejscowości
Wyniki działania funkcji search przekazywane są w postaci macierzy.
Przykład:
{
"result":0,
"geocodeInfoArray":
[
{
"city":"Kowiesy",
"zip":"96-320",
"street":"",
"streetNumber":"",
"areaName0":"Mazowieckie",
"areaName1":"żyrardowski",
"areaName2":"Mszczonów",
"middlePoint":{"Longitude":20.5306243896484,"Latitude":51.8994674682617},
"boundingRect":
{
"TopLeft":{"Longitude":20.527961730957,"Latitude":51.8912010192871},
"BottomRight":{"Longitude":20.5423965454102,"Latitude":51.9019966125488}
},
"geocodeType":0},
{
"city":"Kowiesy",
"zip":"08-311",
"street":"",
"streetNumber":"",
"areaName0":"Mazowieckie",
"areaName1":"sokołowski",
"areaName2":"Bielany",
"middlePoint":null,
"boundingRect":null,
"geocodeType":3
},
{
"city":"Kowiesy",
"zip":"96-111",
"street":"",
"streetNumber":"",
"areaName0":"Łódzkie",
"areaName1":"skierniewicki",
"areaName2":"Kowiesy",
"middlePoint":null,
"boundingRect":null,
"geocodeType":3
}
]
};
Funkcja getCoordinates
Pobiera lokalizację na mapie jednego z punktów adresowych wyszukanych za pomocą funkcji search. Dane przekazywane do podstawianej w drugim parametrze funkcji zawierają element o strukturze zgodnej z przekazywaną przez funkcję search, przy czym zwracany jest odpowiedni kod błędu (result: 0 = ok, 1 = niepoprawny indeks pozycji w liście wyników).
Dostępne parametry:
| index | {Integer} Pozycja żądanego elementu z listy wyników wyszukiwania (wartość z zakresu 0-[liczba wyników pomniejszona o 1]). |
| callback | {Function} Funkcja obsługi wyniku wyszukiwania. |
Przykład ustawienia widoku mapy na wyszukaną miejscowość:
finder.getCoordinates(0, responseCoordinate); //pobranie lokalizacji pierwszego wyszukanego punktu
//i przekazanie go do funkcji responseCoordinate
responseCoordinate = function(response)
{
if (response.result == 0)
{
var bounds = new EMAPI.Bounds(
response.boundingRect.TopLeft.Longitude, //
response.boundingRect.BottomRight.Latitude, //współrzędne wierzchołków prostokąta
response.boundingRect.BottomRight.Longitude, //prezentującego mapę
response.boundingRect.TopLeft.Latitude); //
map.setBounds(bounds); //ustawienie widoku mapy na wyszukaną miejscowość
}
}
Lista wyników funkcji search oraz mapa prezentująca pierwszą wyszukaną miejscowość.