![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 5.03.2007 Skąd: Leszno Ostrzeżenie: (0%) ![]() ![]() |
Witam
Potrzebuję zrobić w Google Maps następującą rzecz: na mapie zdefiniowanie są jakieś obszary (Polygone), które nie zachodzą na siebie. Współrzędne wierzchołków zapisane są w bazie danych, każdy z obszarów ma swój identyfikator. Teraz potrzebuję zrobić coś takiego że po kliknięciu na mapę skrypt odczyta współrzędne klikniętego miejsca a następnie z bazy odczyta ID obszaru na którym klinięto. Czy jest to do zrobienia? Kiedyś widziałem coś takiego na jakiejś stronie ale teraz nie umiem tego znaleźć. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 43 Dołączył: 5.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tak, to możliwe, pod warunkiem, że każdy obszar na mapie ma odpowiednie id do tego w bazie.
http://jsfiddle.net/5j4WN/1/ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 360 Pomógł: 34 Dołączył: 20.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Kiedyś widziałem coś takiego na jakiejś stronie ale teraz nie umiem tego znaleźć. Zobacz tutaj, przykład pierwszy: http://gmapsapi.com/poradnik/106_zdarzenia.html?tag=apiv3 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 5.03.2007 Skąd: Leszno Ostrzeżenie: (0%) ![]() ![]() |
Zobacz tutaj, przykład pierwszy: http://gmapsapi.com/poradnik/106_zdarzenia.html?tag=apiv3 Tak, znam to bo z tego kursu się uczyłem. Umiem pobrać współrzędne klikniętego punktu. Chodzi o to żeby przeszukać bazę danych i sprawdzić na którym obszarze się one znajdują (po załadowaniu mapy żadne obszary nie są wyświetlane), następnie ID tego obszaru ma być przekazane do dalszej "obróbki" a obszar ma być wyświetlony na mapie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 43 Dołączył: 5.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
To jest droga naokoło, jeśli chcesz przetwarzać punkt i obszar po stronie serwera. Do tego służy GMaps Api.
Można zrobić tak, że przy załadowaniu strony wczytywane są wierzchołki przez JSON do JS i na ich podstawie wyświetlane są przezroczyste obszary (alpha:0), każdy obszar ma już przypisane ID, pobrane również z bazy. Po kliknięciu w obszar, jego alpha zmienia się na 1 - obszar się pojawia na mapie lub jeśli po kliknięciu potrzebne jest zapytanie na serwer - wysyłane są dane przez Ajax np z numerem ID, po stronie serwera wykonuje się skrypt i w momencie wykonania, po otrzymaniu odpowiedzi z serwera, klientowi zostaje wyświetlony ten obszar - dopiero po otrzymaniu odpowiedzi serera, alpha obszaru zmienia się na 1. Jeśli interesuje Cię dalsza pomoc, proszę o dookreślenie jakie operacje mają być wykonywane. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 5.03.2007 Skąd: Leszno Ostrzeżenie: (0%) ![]() ![]() |
Tak, to by było właśnie to. Niestety nie znam GMaps API na tyle żeby to samemu rozpracować. Możesz podać jakieś przykłady? Jakiś przykładowy skrypt?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 43 Dołączył: 5.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Najprostsze rozwiązanie jakie widzę, to tak, że serwer wyrzuca obszary oraz ich id przy starcie strony.
Przechwytuje jest JavaScript. Najlepiej wszystko zrobić w formacie JSON. Napisałem prostą klasę, która może wiele sprostować: cały kod i demo znajduje się na jsfiddle: http://jsfiddle.net/GDM64/ Obsługa zdarzeń znajduje się w kodzie, można tam dopisać co się ma stać dalej po kliknięciu, jeśli chcesz użyć AJAX. Myślę, że obszar powinien być wyświetlany od razu po kliknięciu, a nie dopiero po otrzymaniu odpowiedzi z serwera, ponieważ zwłoka może zaskoczyć użytkownika. Kodu po stronie serwera nie pisałem lecz jeśli będziesz go potrzebował, mogę coś napisać.
Ten post edytował lukasz1985 23.10.2012, 11:30:11 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 5.03.2007 Skąd: Leszno Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki, chyba właśnie o to mi chodziło. Spróbuję to teraz dopasować do swojej strony.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 20:48 |