动态生成地图

时间:2011-01-18 03:13:59

标签: php image-processing map svg

我希望以与标志性的伦敦地下[地铁]地图类似的方式生成交通地图。

这些地图会不时变化,并且需要很多地图,所以不要在inkscape [或类似]中手动绘制它们,我希望从db或数据集中动态生成它们。

有没有人知道是否有任何图书馆api等可以帮助完成这项任务,或者一般有关如何[或不怎么]去做的任何建议?

我认为svg将是最好的方式,加上可能需要基本的互动。

我在php工作,否则它是GDlib,ImageMagick?

提前致谢。

.K

3 个答案:

答案 0 :(得分:1)

嗯,答案真的不在于如何使用GD或ImageMagick,还有手册。对于帮助程序库,大多数库都专注于图形化,以及您自己必须编写的任何其他内容。作为解决方案,最好的办法是让管理界面在后端数据发生变化时生成图像并缓存图像,因为每次有人访问图像时都没有理由构建图像。

为了生成地图,我认为你最好的选择是定义有一条或多条“线”的电台,它们决定了与周围电台关系的某种指示,以及x,y。你可能只需要确定一个'父'站,因为你只是从a-b画线。这样你就可以按照它们通常在实际列车上渲染的方式定位它们,使用线条和周围的工作站绘制映射。

听起来不是太困难了。 3桌:

  • station [stationid,name,x,y,meta1,meta2],
  • 展示位置[placementid,stationid,lineid,parentstationid],
  • lines [lineid,name,meta1,meta2,color等]。

SVG在这方面会很擅长,你可以避免整个图像构建和缓存过程,但要注意浏览器支持问题。

听起来像一个非常有趣的项目,祝你好运:)

答案 1 :(得分:0)

当我需要从数据库中的数据生成图表时,我使用的一种策略是以某种XML方式提取数据(例如Oracle SQLX或Cocoon XSP / ESQL或eXist-db XQuery)并通过XSLT处理它生成SVG。如果你不想写任何代码(当然除了XSL,那么好的旧Cocoon对于这种工作是好的.--)。

SVG本身可以加载到一些图形工具中进行重新处理。

答案 2 :(得分:0)

  

这些地图会随时变化   时间和许多将是必需的   而不是手动绘制它们   inkscape [或类似]我希望   让它们从a动态生成   db或dataset。

如果我在你的位置,我要做的第一件事是尝试证明Google Maps API不适用于您的应用程序。然后,也许,证明ArcGIS不起作用。 (即使它们不起作用,它们也被广泛使用,你可以在你的简历中添加一行。)