ym4r Google Maps w Ruby on Rails



Podobne dokumenty
Programowanie w Ruby

Programowanie w Ruby

Przelewy24 Wirtualny Koszyk

googlevis Wojciech Witkowski 7 luty 2013 WGGiIŚ Wojciech Witkowski (WGGiIŚ) googlevis 7 luty / 14

Wprowadzenie do języka Ruby

Programowanie w Ruby

Przepis 1. Edycja formularza w miejscu 13. Rails sprawia, że edycja w miejscu jest prosta dzięki kontrolce script.aculo.us

Przelewy24 Wirtualny Koszyk

EPI: Interfejs Graficzny Wykład nr 4 Podstawy frameworku Rails

Laboratorium nr 3 Podstawy Ruby on Rails

Terytorialna analiza danych

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Warszawa Plany zagospodarowania przestrzennego

Dokumentacja Skryptu Mapy ver.1.1

Praca w środowisku Visual Studio 2008, Visual C

Modele danych walidacja widoki zorientowane na model

Spis treści DOKUMENTACJA TECHNICZNA. STS API wersja 1.1

Laboratorium Systemów Informacji Przestrzennej. Korzystanie z zewnętrznych usług geokodowania i nawigacji w środowisku OpenLayers

NoSQL Not Only SQL, CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Igor Wojnicki

Grails. v 1.1 Web Framework

Rails. Przepisy IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA. SPIS TREœCI KATALOG ONLINE

Dokumentacja imapliteapi

Zaawansowany kurs języka Python

WayBillsWebService. identyfikator kontrahenta, jeśli wartość zwracana jest mniejsza od zera to numer błędu.

Laboratorium Kierunki Rozwoju oprogramowania REST, Django

API STRESZCZENIE DOKUMENTACJI TECHNICZNEJ. Strona 1 z 8

Gdańsk standardowe mapy

Ruby i Ruby on Rails. Mateusz Drożdżyński

Testowanie aplikacji. Kurs języka Ruby

Laboratorium 15: Bazy Danych Tworzenie bazy danych i programowanie elementów nawigacyjnych aplikacji stworzonej przy pomocy technologii dbexpress

Przetwarzanie danych z wykorzystaniem technologii NoSQL na przykładzie serwisu Serp24

API STRESZCZENIE DOKUMENTACJI TECHNICZNEJ. Strona 1 z 8

EPI: Interfejs Graficzny Wykład nr 8 Warstwa widoku

Zaawansowane aplikacje WWW - laboratorium

plansoft.org Zmiany w Plansoft.org

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Geovertical Map Server API 1.2

Obiekty sportowe (mapy rastrowe)

TorqueBox. Moc Javy piękno Rubiego

Kurs języka Ruby. Ruby on Rails ActionPack

Wykorzystanie map i geolokalizacji

CouchDB. Michał Nowikowski

Backend Administratora

API STRESZCZENIE DOKUMENTACJI TECHNICZNEJ. Strona 1 z 8

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Programowanie w Ruby

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Modele. Najcz. Metoda unicode definiuje sposób wyświetlania obiektu w postaci tekstowej. BooleanField - pole logiczne, True/False

Program szkolenia: Tworzenie aplikacji w Ruby on Rails z wykorzystaniem zwinnych metodyk

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Integracja Comarch e-sprawozdania

Specyfikacja techniczna. mprofi Interfejs API

Programowanie MorphX Ax

Referat Pracy Dyplomowej

Migracja z aplikacji ArcMap do ArcGIS Pro

Metaprogramowanie w Ruby

Obsługa bankowości mobilnej MobileBanking

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

15. Funkcje i procedury składowane PL/SQL

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Wykorzystywanie parsera DOM w programach Java i PL/SQL

e-usługi: elektroniczny obieg dokumentacji studenta

REFERAT O PRACY DYPLOMOWEJ

Szkolenia specjalistyczne

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5

Strona wizytówka od 400 zł

Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny

LOOKO2(v3) Twój osobisty czujnik jakości powietrza v0.9.4

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

Wprowadzenie do framework a Symfony

Generowanie raportów

Kraków, dn ZAPYTANIE OFERTOWE (data i podpis)

Twisted. Silnik Twojego Internetu. Jan Urbański Ducksboard. PyWaw #25, Warszawa, 10 czerwca 2013

Dokumentacja techniczna API systemu SimPay.pl

Forum Client - Spring in Swing

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Spacer interaktywny po mapie cyfrowej Portalu Turystyki Aktywnej Ziemi Wieluńskiej

Programowanie obiektowe

Dokumentacja Api do aplikacji skanujfakture.pl

KURSY PROGRAMOWANIA DLA DZIECI

komunikator na platformę Android wspierający protokół GG

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

ZASTOSOWANIE INTERFEJSU GOOGLE MAPS API DLA POTRZEB REALIZACJI SYSTEMU LOKALIZACJI I REJESTRACJI TERMINALI MOBILNYCH

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

1. Opis ogólny. 2. Opis techniczny. 3. Wymagania techniczne

Projekt: Narzędzia zarządzania testowaniem badanie narzędzia

JAVAScript w dokumentach HTML (2)

Instrukcja obsługi Zaplecza epk dla Pracowników Instytucji w zakresie administracji danymi instytucji

I.Wojnicki, Tech.Inter.

Ćwiczenie 22 Dynamiczne wczytywanie tekstu z pliku.txt

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

TABUN_CMS. System zarządzania treścią dla dedykowanej grupy użytkowników. Tabun_CMS 2008 Marcin Biegun, Szymon Bąk

Instrukcja obsługi narzędzia API

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

JAVA NA SERWERZE SPRING. Waldemar Korłub. Platformy Technologiczne KASK ETI Politechnika Gdańska

1. Otwórz app_advanced.html i skopiuj i wklej następujący kod bezpośrednio w tagach <head>:

Transkrypt:

Krakow Ruby Users Group 25. listopada 2006

Google Maps Kilka słów o Google Maps API Google Maps API interfejs programistyczny pozwalajacy na wyświetlenie na stronie WWW mapy wybranego rejonu Ziemi: Aktualna wersja: 2.0 Google Maps vs. Google Maps for Enterprise Klucz licencyjny Ograniczenia: 500k wyświetleń, 50k geocodów 30 klas

Google Maps

GM a RoR Integracja Google Maps z Ruby on Rails Zaimplementowanie własnego zestawu helperów wykorzystanie JavaScriptowego API: http://www.google.com/apis/maps/documentation/reference.html czasochłonne po co wymyślać od nowa koło? Cartographer: http://cartographer.rubyforge.org/ kiepska i nieaktualna dokumentacja niewielkie możliwości kiepskie przykłady projekt umarł? ym4r!

GM a RoR ym4r ogólna charakterystyka ym4r: yellow maps for rails: http://thepochisuperstarmegashow.com/projects/#ym4r dobra dokumentacja rozbudowane przykłady duże możliwości nie tylko GoogleMaps: Mapstraction Yahoo! Maps Building Block API Clusterer, GeoRSS, WMS layer

Założenia Przykładowa aplikacja Piszemy aplikację, dla sieci restauracji. Klient chce, aby użytkownicy w łatwy sposób mogli zlokalizować poszczególne restauracje. Dane adresowe to za mało. Dobrze byłoby dołaczyć do danych adresowych interaktywna mapę, na której zaznaczone jest dokładne położenie wybranej restauracji. Wymagania: restauracja wskaźnik z danymi adresowymi możliwość określenia położenia wskaźnika za pomoca myszki

Realizacja Określenie schematu bazy danych db/migrate/001_create_restaurant.rb: create_table "restaurants" do t t.column "name", :string t.column "street", :string t.column "number", :string t.column "city", :string t.column "latitude", :float t.column "longitude", :float t.column "zoom", :float end

Realizacja Instalacja ym4r i scaffolding $ ruby script/plugin install svn://rubyforge.org/var/svn/ym4r/plug- ins/gm/trunk/ym4r_gm oznacza kontynuację linii $ ruby script/generate scaffold restaurant

Realizacja Modyfikacje I: model app/model/restaurant.rb: def address city+"<br/>"+"ul. "+street+" "+number end def location if(latitude.nil?) [52,18] else [latitude, longitude] end end def has_map?! latitude.nil? end

Realizacja Modyfikacje II: widoki app/views/layout/restaurants.rhtml: <head> <% if! @map.nil? %> <%= GMap.header %> <%= @map.to_html %> <%= javascript_include_tag gmap_edit %> <% end %> </head> app/views/restaurants/show.rhtml: <% if @restaurant.has_map? %> <%= @map.div(:width => 400, :height => 400) %> <% end %>

Realizacja Modyfikacje III: widoki (c.d.) app/views/restaurants/_form.rhtml: <%= text_field restaurant, latitude, :id => "latitude" %></p> <%= text_field restaurant, longitude, :id => "longitude" %></p> <%= text_field restaurant, zoom, :id => "zoom" %></p> <%= @map.div(:width => 400, :height => 400) %>

Realizacja Modyfikacje IV: kontroler app/controller/restaurants.rb (show): @restaurant = Restaurant.find(params[:id]) if @restaurant.has_map? loc = @restaurant.location @map = GMap.new("map_div") @map.control_init(:large_map => true, :map_type => true) @map.center_zoom_init(loc,@restaurant.zoom) @map.overlay_init(gmarker.new(loc, :title => @restaurant.name, :info_window => @restaurant.address)) end

Realizacja Modyfikacje V: kontroler (c.d.) Kontroler app/controller/restaurants.rb (edit): @restaurant = Restaurant.find(params[:id]) @map = GMap.new("map_div") loc = @restaurant.location @map.control_init(:large_map => true, :map_type => true) @map.center_zoom_init(loc, @restaurant.zoom) marker = GMarker.new(loc,:draggable => true) @map.overlay_global_init(marker,"marker") @map.record_init marker.on_dragend("gmap_update_position") @map.record_init @map.on_zoomend("gmap_update_zoom")

Podsumowanie Podsumowanie Czynności wstępne: określenie schematu bazy danych (latitude, longitude, zoom) zainstalowanie pluginu dodanie skryptów inicjujacych w nagłówku Wyświetlenie mapy: dodanie mapy w ciele dokumentu inicjacja obiektu mapy w kontrolerze Edycja mapy: dodanie skryptów modyfikujacych modyfikacja formularza (identyfikatory pól) inicjacja mapy i markera w kontrolerze