|
|
|
|
|
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ść.