Динамическое создание карт - PullRequest
6 голосов
/ 18 января 2011

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

Эти карты будут время от времени меняться, и многие из них потребуются, поэтому вместо того, чтобы рисовать их вручную в inkscape [или подобном], я надеюсь, что они будут генерироваться динамически из базы данных или базы данных.

Кто-нибудь знает, есть ли какие-нибудь библиотеки apis и т. Д., Которые могли бы помочь с этой задачей, или какие-либо общие предложения о том, как [или как этого не делать]?

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

Я работаю в php, иначе это GDlib, ImageMagick?

Заранее спасибо.

ки

Ответы [ 3 ]

1 голос
/ 18 января 2011

Ну, ответ на самом деле не в том, как использовать GD или ImageMagick, для этого есть руководства. Что касается вспомогательных библиотек, большинство библиотек сосредоточено на графике, все остальное вам придется написать самостоятельно. В качестве решения лучше всего было бы, чтобы ваш интерфейс администратора генерировал изображения при изменении данных в серверной части и кэшировал изображения, поскольку нет причин создавать изображение каждый раз, когда кто-то обращается к нему.

Для генерации карт, я думаю, вам лучше всего определить станции с одной или несколькими «линиями», которые определяют какой-то индикатор отношения к станциям вокруг, и x, y. Вам, вероятно, нужно будет только определить «родительскую» станцию, поскольку вы просто рисуете линии от a-b. Таким образом, вы можете расположить их таким же образом, как они обычно отображаются на реальных поездах, использовать линии и окружающие станции для рисования отображений.

Не кажется слишком сложной проблемой. 3 стола:

  • station [stationid, name, x, y, meta1, meta2],
  • мест размещения [placementid, stationid, lineid, parenttationid],
  • строки [lineid, имя, meta1, meta2, цвет и т. Д.].

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

Похоже, довольно интересный проект, удачи:)

0 голосов
/ 22 января 2011

Эти карты будут время от времени меняться, и многие из них потребуются, поэтому вместо того, чтобы рисовать их вручную в inkscape [или подобном], я надеюсь, что они будут генерироваться динамически из базы данных или набора данных.

Если бы я был на вашем месте, самое первое, что я сделал бы, это попытался доказать, что API Карт Google не будет работать для вашего приложения.Тогда, может быть, докажите, что ArcGIS не будет работать.(Даже если они не работают, они широко используются, и вы можете добавить строки в свое резюме.)

0 голосов
/ 19 января 2011

Одна из стратегий, которую я использую, когда мне нужно сгенерировать графики из данных в БД, - это извлечь данные каким-либо способом XML (например, Oracle SQLX или Cocoon XSP / ESQL или eXist-db XQuery) и обработать их через XSLT генерировать SVG. Старый добрый Cocoon отлично подходит для такой работы, если вы не хотите писать какой-либо код (кроме, конечно, XSL; -).

Сам SVG может быть загружен в некоторые графические инструменты для повторной обработки.

...