Renderowanie niestandardowego stylu OpenStreetMaps (ląd = biały, woda = czarny): czy potrzebuję do tego specjalnego komputera?


10

EDYCJA: Moim celem nie jest używanie OpenStreetMap ani chmury stworzonej w chmurze jako mapy internetowej. Opisałem dokładnie to, czego chcę („pełny, zrasteryzowany zestaw płytek dla całego świata przy powiększeniu = 10 (około 68 gigapikseli, woda = czarny, ląd = biały, bez etykiet”). Chciałem tylko użyć cloudmade.com link jako przykład ilustrujący to, dla czego fotografuję. (W tej chwili styl w chmurze to tylko 90% drogi.) Potrzebuję kafelków offline. Potrzebuję obrazu (68 Gpix), który opisałem jako maskę w większym zadaniu mapy rastrowej dla niestandardowej mapy tworzę przy użyciu danych NASA i USGS.


Jako ilustracja

Stworzyłem własny styl, który pokazuje, czego chcę:

(Żadnych etykiet, żadnych dróg, żadnych cech z wyjątkiem wszystkich elementów wodnych (rzek, jezior, oceanów, jak to nazywasz) jako czarnych z lądem o jednolitej bieli i przyjemnym antyaliasingiem wartości Mapnika pomiędzy nimi.)


Czego naprawdę chcę

Chciałbym mieć pełny, zrasteryzowany zestaw płytek dla całego świata przy powiększeniu = 10 (około 68 gigapikseli).

Rozważyłem pobranie i zainstalowanie Planet.osm (skompresowany 11 GB) i uruchomienie Mapnika (przez kilka dni / tygodni?), Aby uzyskać te dane. Wygląda jednak na to, że Planet.osm zajmie 100 GB, a może nawet 1 TB po zbudowaniu bazy danych i indeksu. Nie mam tego rodzaju miejsca na dysku na moim laptopie, a ponieważ nie potrzebuję pełnego zestawu danych, czy istnieje mniejszy podzbiór danych, który mógłbym pobrać (mówi tutaj, że dane wielokąta mają tylko 700 MB)? Właściwie z tego, co mogę powiedzieć, dane podwoiły się w ciągu ostatniego roku, więc potrzebowałbym potężnej maszyny, aby sobie z tym poradzić.

Czy istnieje łatwiejszy, bezpośredni sposób na zestawienie tych kafelków (poziom 10, czarno-biały, po prostu lądowanie na wodzie), czy po prostu potrzebuję do tego specjalnego komputera?


ta mapa chmur wygląda naprawdę ładnie. Proste, ale miłe. Biało-czarny z jasnoniebieskim działa naprawdę dobrze.
Nathan W

Kontynuacja (z kilkoma wstępnymi udanymi wynikami z naturalearthdata.com): gis.stackexchange.com/questions/1917/…
Jared Updike

Odpowiedzi:


7

Czy mam użyć OSM? lub czy podobny, ale mniejszy wektorowy zestaw danych będzie dla Ciebie odpowiedni? Jeśli tak, weź pod uwagę Naturalną Ziemię ( http://naturalearthdata.com ), która ma ładne wybrzeże w skali 1: 10M, obszar lądu, ocean, rzekę i jezioro. Następnie możesz użyć GeoServer lub MapServer lokalnie (lub na zdalnym serwerze), aby utworzyć kafelki na dowolnej głębokości, jakiej potrzebujesz, za pomocą dowolnej pamięci podręcznej kafelków (TileCache, GeoWebCache itp.)

Z twojego pytania nie jest nawet dla mnie jasne, że potrzebujesz kafelków - jeśli wszystko, czego chcesz, to maska, prawdopodobnie możesz to zrobić za pomocą GRASS - v.toRaster () (tak myślę).


Myślę, że masz na myśli naturalearthdata.com
Jared Updike

masz rację - naprawiłem to.
Ian Turton

4

Nie musisz pobierać całego zestawu danych.

Możesz po prostu pobrać pliki wielokątów z

http://downloads.cloudmade.com/

lub

Nieco bardziej aktualne (31/08/2010) http://download.geofabrik.de/osm/

brudny hack (niezalecany)

Domyślny kafelek (256 x 256 pikseli)

http://b.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/ 1 /256/15/17599/10746.png

Zwróć uwagę na 1 = StyleID, więc jeśli zastąpisz styl swoim identyfikatorem

http://maps.cloudmade.com/?styleId= 22688 #

http://b.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/ 22688 /256/15/17599/10746.png otrzymujesz kafelek 256x256px w formacie png ze swoim stylem. Do pobrania wszystkich wymaganych można użyć skryptu.

Chociaż chciałbym zapisać się na klucz Web Lite API i po prostu użyć API do osadzenia w ramce iframe. (zgodnie z zaleceniami chmury)

źródło: http://developers.cloudmade.com/projects/tiles/documents


3

Nie rozumiem, dlaczego Mapperz uważa, że ​​używanie udokumentowanego API to „brudny hack”, ale w każdym razie - możesz go używać bez ograniczeń, aby pobrać wszystkie potrzebne kafelki. Będzie to zdecydowanie łatwiejsze niż:

  • pobierz dane
  • zainstaluj i skonfiguruj Mapnik
  • napisz XML w stylu Mapnika
  • spróbuj uruchomić wygenerować_tiles.py
  • zdecydowanie napotykają niejasne problemy z którymkolwiek z tych kroków

Odpowiedź na pytanie OP brzmi: po prostu napisz skrypt, który użyje API HTTP CloudMade do pobrania kafelków.

EDYCJA: Jeśli naprawdę chcesz wykonać renderowanie samodzielnie, sugeruję, aby zacząć od przeczytania instalacji Mapnika i przewodników XML . Aby wygenerować kafelki, musisz użyć tego narzędzia z repozytorium OpenStreetMap.

W przypadku jakichkolwiek pytań dotyczących Mapnika możesz skorzystać z listy mailingowej użytkowników mapnik lub odwiedzić kanał IRC #mapnik na FreeNode.


2
Warunki: cloudmade.com/terms_conditions Musisz używać interfejsu API zamiast bezpośredniego „skrobania kafelków”. Te same warunki dotyczą interfejsu API Map Google. Ważne: Skrobanie obrazów kafelków z serwerów Google z jakiegokolwiek powodu jest niezgodne z warunkami usługi i nie jest zalecane.
Mapperz

Myślę, że fajnie byłoby skonfigurować Mapnika i wrzucić do niego Planet.osm, ale wygląda na to, że mój obecny komputer / dysk twardy są nieodpowiednie. Ale pozostanę na mojej liście opcji. Po zastanowieniu może być możliwe, aby ktoś z Planet.osm został już zaimportowany do Mapnika, aby wykonać zrzut OSM tylko potrzebnych warstw (wody / ziemi). Powinienem przynajmniej zapytać na kanale IRC. To może być owocne.
Jared Updike,

3

Jeśli wszystko, czego potrzebujesz, to wybrzeża, można je mieć za jedyne 260 MB: http://hypercube.telascience.org/~kleptog/

Popieram sugestię Naturalnej Ziemi powyżej; znajdziesz go lepiej wyglądającego i szybszego renderowania dla niższych poziomów. Musisz tylko niepokoić się samym OSM przy powiększeniach 8 i wyższych, lub mniej więcej (spróbuj kilku testów, aby zobaczyć)


Czy to ma słodką wodę? (Jeziora, zbiorniki retencyjne, rzeki?) Mogę obliczyć własną linię brzegową na podstawie zbiorów danych wysokości 50 m / 500 m SRTM. Naprawdę miałem nadzieję, że zrasteryzowane kafelki z całą wodą (świeżą i solą) będą razem, ponieważ to będzie działać równomiernie w mojej obecnej (niestandardowej) konfiguracji. Styl, który pokazałem w chmurze, jest w odległości kilku centymetrów od doskonałości, ale tak nie jest - nie jest naprawdę czarno-biały (nie jestem pewien, jak to naprawić) iz jakiegoś powodu istnieją tu i tam losowe etykiety, których tak naprawdę nie chcę i nie mogę wymyślić, jak usunąć.
Jared Updike,
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.