Google Maps API v3: wprowadzenie do tworzenia aplikacji na przykładzie mapy użytkowników
Znajdują się na stronach obiektów gastronomicznych, określając zarazem położenie lokalu. Występują na forach i serwisach społecznościowych, wskazując miejsce zamieszkania użytkowników. Przemierzając bezmiar Sieci, co rusz spotykamy mapy Google. Wraz z tym artykułem dowiesz się, w jaki sposób zaimplementować to bardzo użyteczne rozwiązanie we własnym serwisie.
Rozdział pierwszy: teoria
Słowem wstępu o Google Maps API
Google Maps API to interfejs programowania aplikacji pozwalający na osadzenie mapy Google na dowolnej stronie internetowej. Dostęp do niego odbywa się za pomocą obrazu (Google Static Maps API), języka ActionScript 3 (Google Maps for Flash) lub JavaScript.
Najnowsza, dostępna wersja oznaczona jest numerkiem trzy i w porównaniu z poprzedniczką charakteryzuje się przede wszystkim zwiększoną wydajnością, szczególnie na płaszczyźnie przeglądarek mobilnych dla iPhone'a i urządzeń bazujących na systemie Android.
Usługa ta jest darmowa, z tymże autorzy zostawili sobie w regulaminie furtkę na ewentualne wprowadzenie reklam („4.3 Advertising. The Service currently does not include advertising in the maps images. However, Google reserves the right to include advertising in the maps images provided to you through the Service, but will provide you with ninety (90) days notice prior to the commencement of advertising in the maps images..."). Podobnie nieodpłatne i wymagane do rozpoczęcia pracy jest pobranie unikatowego klucza działającego w obrębie podanej domeny.
Rysunek 1: usługa mapy Google.
Założenia artykułu
W tekście tym postaram się w jak najprostszy sposób przedstawić proces implementowania ww. interfejsu, tworząc przy tym elementarną bazę użytkowników, która pomoże w zobrazowaniu opisywanego problemu. Skatalogowane dane zostaną wykorzystane do wyświetlenia ich położenia na mapie wraz z możliwością ich personalizacji. Artykuł poruszać będzie tylko podstawowe aspekty tytularnego problemu.
Rozdział drugi: baza danych
Projektowanie bazy i tworzenie tabel
Domyślnie omawiane API nie wymaga korzystania z jakiejkolwiek bazy danych, czy języka wykonywanego po stronie serwera. Żeby jednak spełnić nasz cel, skorzystamy z dobrodziejstw MySQL i PHP.
Przy projektowaniu tabel zabierzemy pod uwagę kilka warunków:
- Informacje ogólne o użytkownikach będą rozdzielone od znaczników położenia, co pozwoli użytkownikowi na dodanie więcej niż jednej lokalizacji dla swojego profilu.
- Rozwiązanie to ma zezwalać na wyodrębnianie na mapie tylko użytkowników przypisanych do odpowiednich województw. Z tego powodu ich lista zostanie utworzona w oddzielnej tabeli.
- Relacje pomiędzy tabelami będą występowały z wykorzystaniem identyfikatorów (będących liczbami naturalnymi).
- Artykuł ten ogranicza się w swoich przykładach do obszaru Polski, przez co zakresy niektórych typów kolumn mogą być niewystarczające w przypadku zagranicznych danych (przykładowo nazw obszarów).
Dzięki temu możemy utworzyć trzy tabele.
Rysunek 2: diagram relacji zachodzących w bazie.
Pierwsza z nich, nazwana tutaj gma_markers zawiera informacje o wymienionych już oznaczeniach. Znaczniki te to nic innego jak punkty na mapie, wskazujące na wybraną lokalizację. Dane, które w niej zawrzemy, to przede wszystkim:
- długość (markers_longitude) i szerokość (markers_latitude) geograficzna, w formacie zmiennoprzecinkowym, z możliwością wpisania do 4 znaków przed i 6 po przecinku,
- identyfikator użytkownika o rozmiarze mniejszym niż maksymalna liczba możliwych do zdefiniowania markerów (ponieważ zakładamy, że jeden użytkownik może dodać więcej niż jedną pozycję, to hipotetycznie możemy przygotować się na to, że będzie ich więcej niż dostępnych w naszym serwisie profilów),
- identyfikator województwa, do którego należą podane współrzędne,
- informacje dodatkowe w postaci adresu oraz opisu miejsca.
CREATE TABLE gma_markers(
markers_id int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY ,
markers_user_id mediumint unsigned NOT NULL ,
markers_address varchar( 100 ) NOT NULL ,
markers_longitude float( 10, 6 ) NOT NULL ,
markers_latitude float( 10, 6 ) NOT NULL ,
markers_province_id tinyint unsigned NOT NULL ,
markers_description varchar(255)
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci ; # tabela przechowująca markery z współrzędnymi dla map wraz z identyfikatorem województwa
Pozostałe dwie tabele utworzone zostały w znacznym uproszczeniu i powinny być rozszerzane indywidualnie, już wg potrzeb.
Pierwsza z nich, gma_users zawiera listę użytkowników i została uproszczona do przetrzymywania automatycznie inkrementowanego identyfikatora oraz nazwy. Kolejna za to, na podobnej zasadzie, przechowuje dane dotyczące województw (długość pola w tym wypadku została ograniczona do 20 znaków, gdyż tyle najwięcej posiada obszar o najdłuższej nazwie). Warto zauwazyć, że w przypadku drugiej tabeli porównywanie znaków ustawione jest na utf8_polish_ci w celu poprawnego sortowania wyników z niej zwracanych.
CREATE TABLE gma_users(
users_id mediumint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY ,
users_name varchar( 50 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci ; # podstawowa, przykładowa tabela użytkowników
CREATE TABLE gma_provinces(
provinces_id tinyint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY ,
provinces_name varchar( 20 ) NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_polish_ci ; # tabela przechowująca nazwy województw
«poprzednia 1 2 3 4 ... 5 następna »
Polecamy
Reklama
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Debata w sprawie ACTA: internauci spodziewali się chyba czegoś innego
14
PHP 5.3.9 nie pozwoli hakerom zawiesić serwera. Pozwoli za to przejąć nad nim kontrolę
28
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
Źle się dzieje z Chrome, ze stabilnością coraz gorzej. Gdzie się podziała słynna izolacja procesów?
26
Internet w EU bez Facebooka i Google? Firmy nie mają wyboru: albo się dostosują, albo…
10
Zaktualizuj PHP do wersji 5.4, zyskasz za darmo nawet o kilkudziesiąt procent wyższą wydajność aplikacji
6
MSWiA zamówiło narzędzia do „złamania” Tora i podsłuchiwania internautów. Czy złamało przy tym prawo?
89
[Aktualizacja] Facebook zablokował Demotywatory.pl. W czym zawiniły?
36
FBI zamknęło Megaupload. Anonimowi dali się sprowokować. Teraz ich akcja uzasadni potrzebę SOPA?
17
Pobieraczek.pl pozwie internautów, którzy nie chcą płacić abonamentu
1455
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
15
„Donald matole, twój rząd dopadną kibole” – hakerska elita przyłącza się do walki z ACTA
23
Klamka jeszcze nie zapadła. Minister prosi Donalda Tuska, by wstrzymał się z podpisywaniem ACTA
24
Społeczność
Ebhossmith Witam jestem Pan Ebhossmith, Dobre, uzasadnione i wiarygodne pożyczki...
DerDevil Mnie zatkało. Taka kwota i to w tak krótkim czasie. A najlepsze jest w tym...
sLn Tytuł rodem z onetu lub faktu...
1 primo - pobieranie nie jest...
ananas Pani Joanna powinna częściej czytać Matta Cuttsa i zaglądać na forum...
hipokryci Warto zauważyć, że przeważająca część instytucji publicznych również...
kajoj Ja już w takim razie nie rozumiem..co jest karane a co nie...udostępnianie...
Dawid11111 dokładnie ponieważ polskie prawo mówi jasno: można pobierać dla własnego...
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
- Marek: problem z menu (2)
- Marek: Własne checkboxy w HTML,CSS (1)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |











#1 kwinto 2010-01-18 21:07:24 0
IP: 85.89.183.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
#2 Paweł® 2010-01-18 21:21:51 0
IP: 90.156.52.[...] Mozilla/5.0 (Windows; U; Windows NT 6.0; pl; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
#3 gajda1000 2010-01-19 11:22:45 0
IP: 77.253.160.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.38 Safari/532.0
#4 bogdan 2010-03-01 19:51:30 0
IP: 62.133.135.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8
#5 yaworski 2010-04-26 15:31:14 0
IP: 85.222.103.[...] Mozilla/5.0 (X11; U; Linux x86_64; pl; rv:1.9.2.3) Gecko/20100407 Ubuntu/9.10 (karmic) Firefox/3.6.3