XP'ek
3.03.2011, 19:38:43
Witam,
wymyśliłem sobie portal dla fanów jednośladów

i teraz chciałem by w zakładce imprez mapka google zaznaczała pozycję imprezy na podstawie wpisanych danych do bazy ulicy i miejscowości i na nich podstawie generacja była mapki.
XP'ek
3.03.2011, 19:48:29
API na podstawie nazw tworzy a nie współrzędnych geograficznych ? bo to chodzi by od razu na mapce zaznaczało punkt mamy mapke np. warszawa ulica X i pod numerem 5 jest akurat impreza
Może tworzyć na podstawie współrzędnych lub adresu. W tym drugim wypadku używasz geokodowania. Podajesz adres do google, a on zwraca Ci współrzędne adresu (o ile znajdzie

).
XP'ek
4.03.2011, 19:36:36
masz to gdzieś bardziej wytłumaczone jak to zrobić ?
Google udostępnia to API wraz z dokumentacją. Tak trudno odwiedzić ich stronę?
http://code.google.com/intl/pl-PL/apis/map...ding/index.html
XP'ek
8.03.2011, 21:09:51
wybacz ale nie mogę Tego pojąć jak to zrobić nie mam pojęcia po prostu zrobić pokazywanie na mapce danego rejonu mi się udało ale zaznaczanie pinezką miejsca nie wychodzi mi ;//
JoShiMa
2.04.2011, 09:58:36
Widzę, że panowie zorientowani. Możecie mi coś podpowiedzieć (ciężko mi się brnie przez opisy funkcji)? Wiadomo, że można w GM wyświetlić punkty zebrane np w bazie danych. Można też zaznaczyć obszar wielokątny. A jak zrobić, żeby wyświetlić tylko te punkty, które mieszczą się w zaznaczonym obszarze?
Trzeba określić współrzędne rogów znaczących. Przekazać do mapy można wszystkie punkty (w razie przewijania mapy się pokażą, co jest moim zdaniem lepszym rozwiązaniem), ale ograniczyć obszar startowy zamiast kombinować z obliczaniem setCenter, można poprzez zakres i Bounds. Wtedy zależnie od wersji wybierasz markery i na podstawie ich współrzędnych "rozszerzasz zakres" Ładnie jest to wytłumaczone na stackoverflow dla APIv3. Myślę, że ten link Ci wiele wytłumaczy
http://stackoverflow.com/questions/1556921...unds-and-center
JoShiMa
2.04.2011, 20:09:12
Dzięki za podpowiedź. Mam nadzieję, że coś z tego zrozumiem. Tylko cvo masz na myśli pisząc o rogach znaczących?
W APIv2 podaje się zakres jako prostokąt zawarty między lewym górnym i prawym dolnym rogiem, bowiem te dwa punkty wyznaczają wszystkie konieczne południki i równoleżniki do jego utworzenia. Dlatego też nazwałem je znaczącymi. Jeśli więc przechowujesz punkty markerów to spośród interesujących Cię wyznacz te z największą i najmniejszą długością oraz szerokością geograficzną. Tak uzyskane skrajne wartości posłużą Ci do wyznaczenia w wersji APIv2 współrzędnych punktów przekazanych do metody wyznaczającej zakres widoczności. Google na ich podstawie sama wyznacza sobie już środek i zoom mapy dopasowując do wielkości kontenera.
W APIv3, co widać w kodzie z mojego posta wyżej wygląda to nieco inaczej.
1. Tworzysz obiekt zakresu -> var bounds = new google.maps.LatLngBounds();
2. Bierzesz współrzędne punktu i przekazujesz je do zakresu -> bounds.extend(myLatLng);
3. Aktualizujesz mapę -> map.fitBounds(bounds);
4. Postępujesz tak dla każdego punktu.
Na razie pracowałem tylko z pojedynczymi na v3 i masą za jednym zamachem na v2, więc nie wiem, czy dla v3 krok 3 nie może być na samym końcu wywołany tylko raz, czy może jednak musi być wielokrotnie, za każdym dodaniem punktu poprzez extend. Optymalniej byłoby tylko raz, po uaktualnieniu punktów wszystkich, ale naprawdę nie testowałem tego nigdy. Bo i nie miałem potrzeby umieszczać więcej niż 1 punkt na mapie. Tam gdzie umieszczam ich nawet kilkaset, działa póki co v2
JoShiMa
3.04.2011, 12:39:57
Cytat(thek @ 3.04.2011, 01:29:59 )

2. Bierzesz współrzędne punktu i przekazujesz je do zakresu -> bounds.extend(myLatLng);
Masz na myśli punkt wyznaczający obszar?
W APIv3 wystarczy, że w ten sposób będziesz podawać współrzędne punktów jakie miały by się w tym zakresie znaleźć. API samo sobie znajdzie zakres w takim wypadku. Coś na zasadzie "wrzucam punkty do obiektu zakresu, Ty API znajdź skrajne wartości południków i równoleżników, a potem sam wyznacz skrajne wartości i dopasuj zoom".
JoShiMa
27.05.2011, 12:35:01
Wszystko super, ale nie bardzo nadal wiem jak mam swój wielokąt przetłumaczyć na tablicę coord. Ten wielokąt definiuje user klikając na mapie, więc jakio wierzchołki mam lat i lng. Ja następnie obliczam prostokąt opisany na tym wielokącie i pobieram ajaxem z bazy tylko punkty z tego prostokąta, ale na mapie chcę mieć wyświetlone tylko punkty, które mieszczą się wewnątrz wyznaczonego wielokąta. No i nadal nie wiem jak to zrobić.
thek
27.05.2011, 13:32:00
To aż z takim określaniem dokładnym niestety nie majstrowałem. Zawsze wystarczało mi jedynie wrzucanie do prostokąta, a nie wielokąta. Jeśli dobrze Cię rozumiem, to chyba Ci chodzi o zamianę struktury Bounds na Polygon, tyle że google API nie ma dla Polygon czegoś takiego jak metoda contains. Nie załamuj jednak rąk i zajrzyj do google wpisując:
points inside polygon google api
A ujrzysz linki, które wprost pokazują gotowce:
http://appdelegateinc.com/blog/2010/05/16/...lygon-checking/http://stackoverflow.com/questions/3036408...ing-google-mapsGoogle zawsze mi pomagał i jak widać zna odpowiedzi na wiele pytań niewypowiedzianych
JoShiMa
27.05.2011, 15:20:20
Cytat(thek @ 27.05.2011, 13:32:00 )

Google zawsze mi pomagał i jak widać zna odpowiedzi na wiele pytań niewypowiedzianych

Tak to prawda. Trzeba mieć tylko pomysł jak te pytania wypowiedzieć
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.