Kilka razy korzystałem z Google Maps, ale co się zastanawiasz nad OpenLayers .
Przed rozpoczęciem jakiegokolwiek kodowania mam kilka pytań, które przychodzą mi do głowy:
- Dlaczego miałbym używać OpenLayers zamiast Map Google?
- W każdym razie z wyjątkiem licencji OSS
- Czy spotkałeś się z sytuacją, w której odradzałbyś absolutnie nie używanie OpenLayers?
- Zrobiłem wyszukiwanie o „OpenLayers” na przepełnienie stosu ; nie ma wielu odpowiedzi. Czy to znaczy, że to rozwiązanie jest rzadko używane? Czy może to stanowić problem dla długoterminowej rentowności projektu?
- Dla tych z Was, którzy już korzystali z OpenLayers: czy są jakieś typowe pułapki / problemy, które mogę napotkać?
- A co z używaniem z nim JavaScript Framework? Widziałem, że używa Prototype i wiem, że Prototype, więc byłoby OK. Ale co z używaniem czegoś innego jak MooTools ? (Który nie jest kompatybilny z Prototype, BTW)
- Czy są jakieś problemy związane z szybkością i wydajnością? Moja aplikacja musi działać i nie mogę czekać godzinami na wyświetlenie mapy.
- Czy są dostępne mapy dla wielu miejsc, czy też brakuje ich wielu?
- To znaczy, że jestem we Francji i potrzebuję mojej aplikacji przynajmniej do pracy w dużych miastach ... Czy to będzie w porządku?
- jeśli nie, to czy łatwo jest znaleźć warstwy i wizualizacje dla OpenLayers i je zintegrować?
- Czy istnieje interfejs API do wyświetlania dróg?
- Na przykład, aby pokazać drogi jednokierunkowe.
- Jeśli tak, jak mogę to zrobić? Czy muszę mieć jakiś plik zawierający te informacje o drogach, a potem samemu wyświetlać je na mapie?
- Czy znasz jakiś dobry samouczek dotyczący OpenLayers?
Jeszcze tego nie próbowałem, to są tylko niewyjaśnione pytania ...
javascript
google-maps
openlayers
Pascal MARTIN
źródło
źródło
Odpowiedzi:
To są naprawdę świetne pytania! Jestem profesjonalnym programistą i fanem OpenLayers, więc odpowiem na Twoje pytania z tej perspektywy.
Dlaczego miałbym używać OpenLayers zamiast Map Google?
W ogóle nie martwiłbym się o długoterminową rentowność projektu. Jest to czołowa biblioteka mapowania po stronie klienta typu open source.
Czy są jakieś typowe pułapki / problemy, które mogę napotkać?
Zgodność środowiska JavaScript
Czy są dostępne mapy dla wielu miejsc?
Czy istnieje interfejs API do wyświetlania dróg?
Czy znasz jakiś dobry samouczek dotyczący OpenLayers?
Mam nadzieję, że to się przyda. A jeśli masz jakieś pytania, jestem w pobliżu Stack Overflow!
źródło
Niekoniecznie jest to kwestia OpenLayers LUB Google Maps. W końcu możesz użyć Map Google jako tła mapy w OpenLayers. Bardziej szczegółowe odpowiedzi:
Dlaczego OpenLayers?
Pułapki
Występ
Struktury JavaScript
Dostępne mapy
źródło
Nie widziałem zbytniej obecności użytkowników OpenLayers na SO, ale oni tam są. W OpenLayers Listy mailingowe są dość aktywne (jestem na użytkowników i Dev i zobaczyć wszędzie od 50-100 maili dziennie omawiając różne rzeczy. Można wyszukiwać list z tych linków zbyt.).
Nie mogę odpowiedzieć na wszystkie Twoje pytania, ale jedną rzecz, którą tam przedstawię, jest to, że OpenLayers i mapy Google nie wykluczają się wzajemnie. OpenLayers to biblioteka javascript, której można używać do interakcji z mapami Google. Spójrz na ten przykład: OpenLayers przy użyciu map Google . A oto główna strona z przykładami OpenLayers .
źródło
Jedna kwestia, która nie została tutaj w pełni omówiona, to fakt, że korzystanie z OpenLayers pozwala uniknąć różnych ograniczeń, które Google nakłada na warunki świadczenia usług dla swoich map API, w tym:
Nie możesz legalnie używać mapy Google wyłącznie w sekcji swojej witryny, która wymaga opłaty za dostęp, lub w witrynie prywatnej, do której użytkownicy nie mogą się zarejestrować (np. Firmowy intranet). (IANAL, ale zobacz Warunki korzystania z usługi, 9.1 i często zadawane pytania )
Nie możesz legalnie (lub praktycznie) korzystać z Google API w aplikacjach offline (tj. Gdzie kafelki są obsługiwane z własnego komputera). Nawet jeśli nie było ograniczeń prawnych, Google bardzo utrudnia to technicznie, a OpenLayers ułatwia.
Google zastrzega sobie prawo do zablokowania dostępu do interfejsu API, jeśli wyświetlasz mapę z zawartością, którą uzna za kontrowersyjną. Przykład podany w FAQ to mapa narkotyków, która dobrze pokazuje szare obszary, które może obejmować to ograniczenie.
Więcej informacji można znaleźć w często zadawanych pytaniach i Warunkach korzystania z usługi .
To powiedziawszy, jako wieloletni programista Map Google, który niedawno zaczął używać OpenLayers, uważam, że Mapy Google mają lepszą dokumentację, większą społeczność użytkowników oraz bardziej przejrzysty i stabilniejszy interfejs API niż OpenLayers. Więc musisz gdzieś dokonać kompromisu.
źródło
To naprawdę zależy od tego, do czego chcesz używać mapy. Aby po prostu narysować punkty na mapie, Mapy Google będą w porządku. Warstwy mapy dla Map Google są również dość szczegółowe. Z drugiej strony OpenLayers oferuje znacznie więcej funkcji i jest bardzo rozszerzalny.
OpenLayers ma wiele przykładów, od których możesz zacząć.
Jeśli chodzi o mapy, OpenLayers to tylko API, więc musisz je dostarczyć, aby zmapować warstwy. Interfejs API Map Google będzie ograniczony do warstw mapy dostarczonych przez Google. Dzięki OpenLayer możesz wyświetlić prawie każdą publicznie dostępną usługę mapową (WMS, WFS, TMS, WMS-C). Bardzo dobrym przykładem jest openstreetmap.org - (globalna mapa ulic zebrana przez społeczność). OSM można dodać do openlayerów jako warstwę TMS. Sprawdź ten przykład, aby uzyskać instrukcje.
źródło
Niektórzy klienci mogą odmówić korzystania z Map Google lub mieć poważne zastrzeżenia. Mogą mieć uzasadnione obawy, że Google może wprowadzić reklamy lub zmienić interfejs API bez powiadomienia. Jednak Mapy Google mają tę zaletę, że integrują się z innymi usługami Google (oznaczenia miejsc, dodawanie zdjęć, usługi geokodowania). Ponieważ jest to sieć internetowa, zawsze możesz łączyć wiele różnych usług mapowania i interfejsów API.
źródło
Zgadzam się ze wszystkimi odpowiedziami, ale jest jedna bardzo ważna kwestia, o której nikt nie wspomina. OpenLayers i Google Maps mają różne cele.
OpenLayer to doskonała platforma do wyświetlania danych geograficznych, ale Mapy Google to zbiór usług, które obejmują strukturę do wyświetlania geodanych wśród innych usług.
Tak więc Mapy Google udostępniają wiele usług i funkcji, których OpenLayes nie ma. Niektóre przykłady funkcji i usług Google Maps to lokalizacja regionu, wykrywanie czujnika (dla urządzenia z GPS) i lokalizacja użytkownika, geokodowanie i odwrotne geokodowanie, widok ulicy itp.
źródło
Użyłem obu API. Tworzę oprogramowanie dla korporacji i to oprogramowanie wymaga mapowania, ale nie wszyscy klienci mają licencję GoogleMaps, więc muszę obsługiwać oba typy map.
Stworzyłem wspólne API do wyodrębniania różnic między nimi i powiem ci, że niektóre rzeczy są łatwiejsze do zrobienia w jednym niż w drugim. Podobnie jak ograniczanie granic miejsca, do którego można przesuwać mapę, jest to o wiele łatwiejsze w OpenLayers, ale heatmapy są łatwiejsze w użyciu na GoogleMaps (jest oficjalnie obsługiwany przez Google, w przeciwieństwie do dostępnych wtyczek OpenLayers).
OpenLayers obsługuje mapy offline. Niektórzy z moich użytkowników znajdują się w prywatnych intranetach bez połączenia z Internetem.
GoogleMaps ma dwie absolutnie niezbędne wtyczki, MarkCluster i Spiderfier, które umożliwiają wizualizację ogromnej liczby znaczników.
GoogleMaps InfoWindows są łatwiejsze w użyciu i mają lepszą użyteczność niż OpenLayers.Popups. Są to małe okienka, które można otworzyć po kliknięciu znacznika. Googlemaps InfoWindows są również domyślnie dużo ładniejsze, musisz wykonać trochę kreacji CSS z wyskakującymi okienkami.
GoogleMaps ma widok ulicy, który jest czasami przydatny.
GoogleMaps ma więcej funkcji, których możesz potrzebować. Chociaż wiele funkcji jest również obecnych w OpenLayers, ale nie są one oficjalnie obsługiwane.
Zwykle w końcu powinieneś wybrać OpenLayers ze względu na mniejszy ból głowy, jaki możesz uzyskać z licencjonowania i wykorzystania pasma z GoogleMaps. Oba radzą sobie bardzo dobrze z podstawowym mapowaniem (tj. Wyświetlaniem znaczników na górze mapy). Jeśli nie możesz znaleźć konkretnej funkcji, której potrzebujesz, od jednej, której nie ma na drugiej, powinieneś wybrać OpenLayers. Zapoznaj się z tym artykułem, aby uzyskać więcej informacji o rozliczeniach za Google Maps i kiedy możesz z nich korzystać bezpłatnie.
Również GoogleMaps ma swój podstawowy typ geolokalizacji jako „LatLng”, a Openlayers używają „LonLat”, co doprowadza mnie do szału, ponieważ ciągle mylę kolejność parametrów w wywołaniach funkcji.
źródło
Oprócz tych, którzy wspomnieli o problemach z szybkością, chciałbym dodać, że renderer VML w IE może działać bardzo wolno dzięki warstwie wektorowej z wieloma funkcjami. Jeden użytkownik wspomniał o 200. Dokładnie to mogę dodać, zanim IE zwolni znacznie, aż do punktu zamrożenia. Jeśli dodasz funkcje, które są etykietami tekstowymi, możesz dodać o połowę mniej, prawdopodobnie dlatego, że wewnętrznie każda etykieta tekstowa składa się z dwóch elementów VML.
W Google możesz stworzyć własny GOverlay, którego zawartość to „div”, który jest renderowany bez problemów w IE.
źródło
Kilka rzeczy, które chciałbym dodać, z dwóch perspektyw: wykorzystanie klienta i ochrona danych.
Wykorzystanie klienta:
Obsługa danych:
Czy udostępniasz dane KML ? Jeśli tak, zarówno OpenLayers, jak i Google Maps będą z nim współpracować i prawdopodobnie będziesz musiał zdecydować na podstawie użycia klienta.
Czy obsługujesz inne rodzaje usług danych? (WMS, WFS, CSV itp.) Jeśli tak, to OpenLayers najprawdopodobniej ma przykłady i wsparcie dla tego.
źródło
OL ma dużą rzeszę fanów i jest prawdopodobnie najczęściej używaną geodezją Opensource używaną na świecie.
Nie widzisz tak wielu wątków i postów na ten temat w tym cybermiejscu, ponieważ ludzie tutaj mają tendencję do omawiania innych rodzajów technologii, takich jak JSF i Mobile (non geo), a nie dlatego, że OL jest jak rozpórki.
Jednak Ol ma pewne wady, głównie to, że jest tak niski, że trzeba pisać dużo kodu, aby wykonywać typowe operacje. To też może działać dobrze, ponieważ jako programista a: masz cały kod z góry i b: dostosowywanie i dostosowywanie jest bardzo łatwe.
Istnieją bardziej wyrafinowane darmowe narzędzia geotools, ale jedyne, co robią, to wywołanie openlayerów i abstrakcja niektórych z bardziej nudnych obowiązków.
Więc używaj go pewnie. Jest dojrzały, mocny i nie umrze w najbliższej przyszłości. Jeśli jednak chcesz przyspieszyć proces tworzenia, powinieneś wypróbować inne narzędzia, które są na wierzchu.
miłego dnia
źródło