run, run Python ! (4)

run Python script from PHP <– PHP <– JavaScript (3)

Co do tej pory robiliśmy? Przesyłaliśmy dane w postaci nazwy miejscowości i jej współrzędnych …zaraz zaraz, a czy sama nazwa miejscowości nie wystarczy? Gdyby tak (rozmarzymy się…) mieś bazę wszystkich miejscowości i ich współrzędnych (w Polsce to około 103tyś sprecyzowanych miejsc, >4000 jednostek administracyjnych i prawie 400 powiatów i miast -opisuje to TERYT).

Gdyby mieć taką bazę i po prostu zapytać o współrzędne?

Można też zapytać o to Google -udostępnia taką usługę, – miejsce na osobny wpis -jak odpytać Googla z miejscowości aby zbudować sobie taką bazę…

Spróbujmy zrobić coś takiego, aby wpisując nazwę miejscowości otrzymać jej współrzędne.

Na Django w wersji podstawowej może to wyglądać tak:

http://django.wiks.eu/lookfor

Działanie jest takie, że po każdej naszej akcji – wpisaniu kolejnego znaku nazwy z klawiatury, JavaScript wzmocniona AngularJS odpytuje server fragmentem nazwy i uaktualnia zawartość wyświetlanej strony. Zobaczcie:

Na powyższej stronie – korzystającej z własnej bazy danych, w której są wszystkie 103tyś miejsc TERYT, a około 50tyś z nich ma przypisaną pozycję geograficzną (zweryfikowane tylko miasta (ok. 400szt) i powiaty).

Ale ok. Skupmy się na AngularJS. – frameworku napisanym w JavaScript.

Jak wygląda nasz schemat?

AngularJS – czyli program napisany w JavaScript przez programistów Google, działa na naszym lokalnym komputerze i monitoruje zmiany. Każde wprowadzenie kolejnego znaku z klawiatury do formularza wywołuje reakcje -Angular wysyła pytanie do serwera z nowymi wartościami, serwer odpowiada, -zapewne na podstawie zawartości bazy danych, odpowiedź wraca do Angular i jest odpowiednio dysponowana -gdy wymaga tego – modyfikuje zawartość HTML strony i przeglądarka na komputerze wyświetla nam stronę inaczej. W opisywanym przykładzie początkowo informuje nas o ilości pasujących nazw, następnie – gdy jest ich już dość mało – wyświetla je. Na końcu wybieramy jedną i ukazuje się np. mapka.

W projekcie którym się bawimy, chcemy uzyskać współrzędne geograficzne miejscowości o wprowadzanej nazwie.

To co trzeba w takim wypadku zrobić to:

1. utworzyć formularze – widoki w HTML,

2. oprogramować to po stronie Angular/JavaScript – aby Angular wiedział, czego oczekujemy,

3. oprogramować serwer, aby na zadawane przez Angular pytania odpowiadał -również w sposób jaki chcemy.

Serwer może być napisany w czymkolwiek, nawet prosty skrypt PHP na lokalnym komputerze może dostarczyć sporo frajdy.

Loading Disqus Comments ...
Loading Facebook Comments ...

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *