Jak Google wyświetla swoje stylowe mapy?


14

Jak wszyscy wiemy, Google zmieniło mapowanie sieci, kiedy wprowadziło Mapy Google. W chwili pisania tego tekstu mapy kafelkowe są teraz normą w przypadku mapowania internetowego.

Na przykład, dzięki ArcGIS Server, buforujesz jak najwięcej warstw do buforowanych usług map, a następnie w razie potrzeby wciągasz dowolną warstwę operacyjną za pośrednictwem usług dynamicznych lub funkcji.

Gdy masz już buforowaną usługę, nie ma możliwości poprawienia kartografii bez konieczności ponownego tworzenia nowej pamięci podręcznej.

Interfejs API Map Google v3 umożliwia stylizację mapy bazowej Google Tiled. Kreator stylizacji pozwala majstrować prawie wszystkie aspekty mapa Google, w zależności od potrzeb.

Rozumiem z perspektywy interfejsu API, w jaki sposób można wysłać żądanie stylu w obiekcie JSON.

Chcę wiedzieć, jak oni to robią na zapleczu? (Dobrze byłoby dołączyć referencję)

Jeśli spojrzę na Kreatora stylizacji za pomocą Firebuga i dokonam zmian w czymkolwiek, widzę, że wysyłane są nowe żądania GET, aby zwrócić obrazy PNG z powrotem do klienta.

wprowadź opis zdjęcia tutaj

Istnieje prawie nieskończona liczba wariantów, które możesz zastosować, więc nie mogą mieć wszystkich płytek wstępnie ugotowanych i gotowych do podania. Dlatego mogę tylko założyć, że tworzą te kafelki na żądanie?


1
Domyślam się, że wszystkie różne typy funkcji i etykiety to wstępnie ugotowane przezroczyste kafelki PNG, które zmieniają kolor i łączą się na zapleczu dla każdego żądania.
blah238

Dobra teoria. Jeśli to prawda, to byłoby dużo gotowych płytek. Zastanów się, ile jest kafelków, a potem czas, aby pokazać Sea w każdym kolorze HEX.
Simon

2
Nie, chodziło mi o to, że zostaną odbarwione w locie. Znacznie łatwiej jest zmienić kolor istniejącego obrazu niż sprawdzanie prawdziwej geometrii i renderowanie nowego od podstaw. Oczywiście nie mam pojęcia, jak to naprawdę działa, jak powiedziałeś, to tylko teoria :)
blah238

1
To dobra teoria, bla238. Musieliby jedynie zmienić paletę w pliku png zamiast rzeczywistych danych rastrowych.
Matthew Snape

Odpowiedzi:


9

W innych implementacjach (jak w naszej implementacji ) odbywa się to z modyfikacją palety; możesz szybko zmienić kolor obrazu PNG bez dotykania rzeczywistych danych, jeśli znasz pełną oryginalną paletę.

Google tego nie robi; prawdopodobnie mają bazę danych opartą na kafelkach i kafelki danych wektorowych, które są rasteryzowane w locie.


Dzięki tmcw. Jednak dla poprawnej odpowiedzi szukam takiej z dowodami potwierdzającymi. Może dobrze, że możemy tylko teoretycznie, jak to robią.
Simon

2
Powodzenia w znalezieniu dowodów potwierdzających wszelkie szczegóły infrastruktury Google niepochodzące z PR :). To, co prowadzi mnie do tego wniosku (oprócz szeptów Googlers), to antyaliasing jakości między kolorami i możliwość usuwania funkcji na różnych poziomach w połączeniu z szybkimi cyklami ponownego renderowania.
tmcw

3

Wiem, że nie do końca tego szukasz, ale pomyślałem, że i tak może ci się przydać. Czy widziałeś ten przykład autorstwa Odoe, która używa filtrów css na mapach? Może być ograniczony poza chromem

http://www.odoe.net/apps/mapstyler/

https://github.com/odoe/MapStyler


bawiłeś się tym, aby wprowadzić anteny Bing w skali szarości. Świetnie wykorzystuje css, ale kafelki nadal mają kolor, a następnie zmieniają się na X po załadowaniu. Może być trochę rozpraszające. Powiązane q tutaj, ale dla API gmaps stackoverflow.com/questions/13564712/...
Simon

2

Znalazłem dwa patenty, zadając sobie to pytanie:

Dynamiczne renderowanie mapy jako funkcja parametru użytkownika US8103445

i

Renderowanie tekstur na podstawie popytu w systemie renderowania opartym na kafelkach US20110254852

Nie mogłem znaleźć żadnych oficjalnych informacji o tym, kto korzysta z tych lub podobnych schematów, ale wydaje mi się, że rysunki drugiego artykułu wyglądają dość prosto do wdrożenia i nie widzę żadnego powodu, dla którego nie powinienem wdrożyć tego lub czegoś jeszcze wydajniejszego w w międzyczasie.


Ciekawe patenty. Nie jestem pewien, czy całkowicie radzą sobie ze stylizacją, ale to ciekawa lektura.
Devdatta Tengshe,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.