2012-06-05 12 views
5

Biorąc pod uwagę duże miasto (plac to około 800 km^2) z warstwą nad nim. Warstwa ta może zawierać wielokolorowe wyposażony takich jak:Wydrukuj mapę z własną warstwą

  • linie
  • punkty
  • tekstowe

Liczba funkcji jest około 1000.

Mapa zasobów - Google Maps lub Openstreetmap (a może coś jeszcze ?).

Moim celem jest wydrukowanie takiej mapy na papierze o wielkości (około) 5 x 5 metrów. Również ten dokument musi być wysokiej rozdzielczości - na tym papierze chcę zobaczyć budynki z ich numerami, ulice z podpisami i tak dalej.

Jaki jest najlepszy sposób wygenerowania takiego pliku do wydrukowania (zdjęcie, dokument itd.)?


Oto kilka możliwych rozwiązań, które znalazłem:

  • wiem OpenLayers API więc mogę narysować warstwę nad Maps lub Google OpenStreetMap. Ale jak przekonwertować go do formatu do druku?

  • Dowiaduję się, że istnieje export feature na Openstreetmap. Ale używając tej funkcji nie mogę wyeksportować własnej warstwy, a także nie będzie ona wysokiej rozdzielczości.

  • Mapy Google mają similar feature. Za jego pomocą mogę stworzyć własną warstwę. Ale jeśli mam 1000 funkcji, to URL będzie bardzo duży, więc serwer go nie załaduje. Również ta mapa nie będzie wysokiej resoultion.


Dzięki za wszelką pomoc.

+0

Jaka jest liczba pikseli/centymetr na Twojej drukarce? –

+0

To nie jest drukarka - to ploter. Niestety nie znam takich technicznych detali. Po prostu można wydrukować papier o rozmiarze (około) 5mx5m. – ArtemStorozhuk

Odpowiedz

1

Czy używasz płytek mapowych? Jeśli nie, możesz użyć czegoś bardziej ciężkiego, takiego jak pakiet informacji geograficznych (GIS). Dobra przeglądarka/manipulator map open-source z funkcją drukowania o wysokiej rozdzielczości to QGIS, ale są też inne.

Dla tych można import the vector data (dostępne za pośrednictwem eksportu OSM) reprezentujących mapę i stylu dokładnie tak, jak chcesz. Istnieje wówczas kilka opcji eksportu do drukowania w wysokiej rozdzielczości.

Ostatecznie możesz zadawać to pytanie w niewłaściwym miejscu. Czy wiesz o: gis.stackexchange.com?

+0

Twoja odpowiedź wydaje mi się najlepsza. Właśnie dlatego otrzymujesz nagrodę i akceptowaną odpowiedź. Gratulacje! :) – ArtemStorozhuk

+0

@Astor. Dziękuję Ci. Prawdopodobnie okaże się, że początkowy proces uruchamiania QGIS daje całkiem niezłe wyniki, ale jeśli robisz coś z mapami więcej niż raz - to naprawdę się opłaci. A gis.stackexchange.com jest dość zajęty i pomocny w stosunkowo niszowym obszarze. –

5

Chcesz wykonać rysunek o wymiarach 5 metrów na 5 metrów od miasta, które ma 40 kilometrów na 40 kilometrów. To jest skala 1/8000.

Patrząc na zestawy kafli Open Street, zestaw płytek 17 ma skalę od 1 1/2 centymetra do 100 metrów lub od 150 centymetrów do 10 000 metrów. To jest skala 1/6666, która jest tak blisko, jak chcesz osiągnąć żądaną skalę przy użyciu zestawu kafli Open Street Map.

Dołączyłem obrazek przy użyciu tej skali. Nie jestem pewien, czy będziesz w stanie zobaczyć, co chcesz zobaczyć.

Open Street Map Level 17

W każdym razie, w celu wytworzenia obrazu chcesz, będziesz musiał wykonać następujące czynności w jakikolwiek język programowania wybrać.

  • Zbierz potrzebne płytki z witryny internetowej Open Street Map.Może to chwilę potrwać, ponieważ zbierzesz wiele płytek i mają one limit na liczbę, jaką możesz uzyskać w danym momencie.
  • Połącz płytki, tworząc jeden lub więcej większych obrazów.
  • Utwórz własną przezroczystą warstwę danych.
  • Nakładanie przezroczystej warstwy danych na warstwę kafli.
  • Wydrukuj połączony obraz warstwy.
+0

Tak, pomysł jest właściwy, ale jak go wdrożyć? Na przykład, jak zbierać płytki i łączyć je? – ArtemStorozhuk

+0

@Astor: Używałbym języka Java, ponieważ jest to język komputera, który jest mi najbardziej znany. Musisz napisać swój własny kod komputerowy, aby zrobić to, co chcesz. Z rozwiązania półkowego nie ma otwartego oprogramowania. Przypuszczam, że możesz użyć Photoshopa do stworzenia przezroczystej warstwy danych. –

+0

W każdym razie nie chcę tworzyć dla tego nowego API - jest to bardzo skomplikowane. A także mój budżet jest bardzo ograniczony, więc nie mogę za to kupić i nauczyć się Photoshopa. Ale dzięki za twoją odpowiedź (+1). – ArtemStorozhuk

1

Może pomóc this grabber. Tworzy zrzuty ekranu z ekranu, przeciąga mapę (emulując ruchy myszą), tworzy kolejny zrzut ekranu itp. Następnie zszywa zrzuty ekranu w jedno zdjęcie. W związku z tym może pobrać praktycznie dowolną mapę, którą można otworzyć w przeglądarce i przenieść za pomocą myszy (bez użycia interfejsu API - wyczyść WYSIWYG).

+0

Dzięki za odpowiedź. C#, Windows - nie lubię ich obu. W każdym razie będę miał obraz mapy i jak będę na niej umieszczać? Korzystasz z edytora obrazów? – ArtemStorozhuk

+0

Jak już powiedziałeś, możesz stworzyć prostą aplikację internetową z niezbyt wyraźną mapą za pomocą OpenLayers (LeafLet również dobrą) i połączyć mapę OSM (lub Google etc) z Twoimi funkcjami. A potem chwyć to. Jeśli chcesz zrobić to tylko raz, to się uda. Bardziej "profesjonalnym" sposobem jest używanie GIS, jak to sugerowano poniżej. Korzystając z oprogramowania GIS, możesz wizualizować mapę i funkcje na podstawie surowych danych wektorowych lub użyć dużego obrazu rastrowego połączonego z Twoimi warstwami. Obraz rastrowy musi jednak mieć odniesienia geograficzne. Jeśli nie znasz się na GIS, nauczenie się zajmie trochę czasu. –