publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
5 skomentuj »

TAGI: google maps , api , programowanie

2010-01-18 10:42  |  Michał Beyer

Google Maps API v3: wprowadzenie do tworzenia aplikacji na przykładzie mapy użytkowników

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:

  1. 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.
  2. 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.
  3. Relacje pomiędzy tabelami będą występowały z wykorzystaniem identyfikatorów (będących liczbami naturalnymi).
  4. 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 »

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
5 skomentuj »

Polecamy

Reklama

Komentarze

  • kwinto

    #1 kwinto 2010-01-18 21:07:24 0

    Nie dizla link do pobrania plikow z gotowym kodem na koncu art.

    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)

  • Pawel

    #2 Paweł® 2010-01-18 21:21:51 0

    poprawiłem, dzieki

    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)

  • gajda1000

    #3 gajda1000 2010-01-19 11:22:45 0

    mam tylko jedno pytanko, czy do zainstalowania oprogramowania na komórce, wymagany jest system Windows mobile?

    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

  • bogdan

    #4 bogdan 2010-03-01 19:51:30 0

    Polecam gotową aplikację mojego autorstwa MapCreator, która wykorzystuje opisaną technikę. Jest to narzędzie do tworzenia map google za pomocą łatwego w użyciu panelu administracyjnego bez koniecznosci kodowania.

    www.mapcreator.pl

    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

  • yaworski

    #5 yaworski 2010-04-26 15:31:14 0

    Google Maps API od wersji 3 nie wymaga klucza i nie trzeba go generować. Quoty są oparte po prostu na konkretnej nazwie domeny (w odróżnieniu do v2, gdzie quoty były oparte na kluczu).

    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

Uwaga! Możesz zarejestrować się w serwisie i w ten sposób zarezerwować swój nick oraz ominąć konieczność ciągłego odczytywania wyrazów.

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.

Polecane książki

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ł