2012-06-05 2 views
5

Учитывая большой город (площадь около 800 км^2) с некоторым слоем над ним. Этот слой может содержать многоцветной особенности, такие как:Распечатать карту с собственным уровнем

  • линии
  • точки
  • текст

Количество функций составляет около 1000.

Карта ресурса - Google Maps или Openstreetmap (или, может быть, что-то еще ?).

Моя цель - напечатать такую ​​карту на бумаге размером 5x5 метров. Также этот документ должен быть с высоким разрешением - на этой бумаге я хочу видеть здания с их номерами, улицы с надписями и так далее.

Каков наилучший способ создания такого файла для печати (изображение, документ и т. Д.)?


Вот некоторые возможные решения, которые я нашел:

  • Я знаю OpenLayers API, так что я могу сделать слой над Google Maps или OpenStreetMap. Но как преобразовать его в печатный формат?

  • Я узнал, что есть export feature на Openstreetmap. Но используя эту функцию, я не могу экспортировать свой собственный слой, а также не будет высокого разрешения.

  • Карты Google имеют similar feature. Используя его, я могу создать собственный слой. Но если у меня есть 1000 функций, чем URL-адрес, будет очень большой, поэтому сервер не загрузит его. Также эта карта не будет высокой.


Спасибо за любую помощь.

+0

Какое количество пикселей/сантиметров на вашем принтере? –

+0

На самом деле это не принтер - это плоттер. К сожалению, я не знаю таких технических деталей. Это просто печать на бумаге размером 5мкс5м. – ArtemStorozhuk

ответ

1

Вы настроились на использование плитки для плитки? Если нет, вы можете использовать что-то более тяжелое, например, ГИС (Географическая информационная система). Хороший просмотрщик/манипулятор с открытым исходным кодом с возможностью печати с высоким разрешением - QGIS, но есть и другие.

Для этого вы можете import the vector data (доступный через экспорт OSM), представляющий карту, и настройте его точно так, как вам бы хотелось. Есть несколько вариантов экспорта для печати с высоким разрешением.

В конечном счете, возможно, вы задаете этот вопрос не в том месте. Знали ли вы: gis.stackexchange.com?

+0

Ваш ответ кажется лучшим для меня. Вот почему вы получаете щедрость и принимаете ответ. Поздравления! :) – ArtemStorozhuk

+0

@Astor. Спасибо. Вероятно, вы, вероятно, найдете начальный запуск QGIS для получения довольно точной кривой обучения, но если вы делаете вещи с картами не один раз, это действительно окупится. И gis.stackexchange.com довольно занят и полезен для относительно нишевой области. –

5

Вы хотите создать чертеж, который находится на расстоянии 5 метров на 5 метров от города, который находится в 40 километрах на 40 километров. Это шкала 1/8000.

Глядя на плиточные плиты Open Street Map, плиточный набор 17 имеет шкалу от 1 1/2 сантиметра до 100 метров или от 150 сантиметров до 10000 метров. Это масштаб 1/6666, который находится как можно ближе к желаемому масштабу с использованием набора плиток Open Street Map.

Я прикрепил изображение, используя эту шкалу. Я не уверен, что вы сможете увидеть, что вы хотите видеть.

Open Street Map Level 17

Во всяком случае, для получения изображения вы хотите, вы будете иметь, чтобы сделать следующее в любом языке программирования вы выбираете.

  • Собрать плитки, необходимые с веб-сайта Open Street Map.Это может занять некоторое время, так как вы будете собирать много плиток, и у них есть ограничение на количество, которое вы можете получить за один раз.
  • Сшивайте плитки вместе, чтобы сформировать одно или несколько изображений большего размера.
  • Создайте свой собственный прозрачный слой данных.
  • Наложить прозрачный слой данных на слой плитки.
  • Печать изображения комбинированного слоя.
+0

Да, идея правильная, но как ее реализовать? Например, как собрать плитки и сшить их? – ArtemStorozhuk

+0

@Astor: Я бы использовал Java, так как это язык компьютера, с которым я больше всего знаком. Вы должны написать свой собственный компьютерный код, чтобы делать то, что хотите. С полки нет открытого источника. Я полагаю, вы можете использовать Photoshop для создания прозрачного слоя данных. –

+0

Во всяком случае, я не хочу создавать для этого новый API - это очень сложно. А также мой бюджет очень ограничен, поэтому я не могу купить и изучить Photoshop для этого. Но в любом случае спасибо за ваш ответ (+1). – ArtemStorozhuk

1

Возможно, this grabber поможет. Он просто делает скриншоты из какой-либо области экрана, затем перетаскивает карту (путем эмуляции движений мыши), делает другой снимок экрана и т. Д. Затем он сшивает скриншоты в один снимок. Следовательно, он может захватывать практически любую скользкую карту, которую можно открыть в браузере и перемещать с помощью мыши (без использования API - clear WYSIWYG).

+0

Спасибо за ответ. C#, окна - им не нравятся оба. Во всяком случае, у меня будет изображение карты и как я положу на него функции? С помощью редактора изображений? – ArtemStorozhuk

+0

Как вы сказали, вы можете создать простое веб-приложение со скользкой картой, используя OpenLayers (LeafLet также хороший) и объедините карту OSM (или Google и т. Д.) С вашими функциями. А потом возьмите его. Если вам нужно сделать это только один раз, это будет сделано. Более «профессиональным» способом является использование ГИС, как предлагается ниже. Используя программное обеспечение ГИС, вы можете визуализировать карту и функции из необработанных векторных данных или использовать большое растровое изображение в сочетании со своими слоями. Растровое изображение должно иметь гео-ссылки. Если вы не знакомы с ГИС, это займет некоторое время, чтобы учиться. –

Смежные вопросы