【问题标题】:Creating a data displaying map创建数据显示地图
【发布时间】:2012-03-23 11:48:33
【问题描述】:

如何创建类似“选举地图”的东西。即国家地图被划分为多个区域,然后根据支持数据变成一种颜色或另一种颜色(理想情况下,如果单击这些区域,则可以查看)。 我想对用户添加数据做这样的事情,然后他们的邮政编码区域会根据用户添加的内容变成一种颜色或另一种颜色。 我假设矢量图形是要走的路:我还没有用 html5 做任何事情,所以这会很好调查,我真的不想进入 Flash。有人告诉我尝试以某种方式修改谷歌地图,但是......这似乎不太正确,感觉就像一个警察。 有什么建议吗?

P.S: 让事情变得更复杂...有没有办法让项目可以打开或关闭(例如,以选举地图为例,城市的位置)。 我能想到的只是一个单独的 svg,它覆盖了地图,但缩放可能无法预测。

【问题讨论】:

    标签: html graphics vector map svg


    【解决方案1】:

    我的第一条建议是不要重新发明轮子。有许多有用的库和基础设施选项,其中许多是免费的(如啤酒和语音)。

    客户端处理有很多选项。对于 Javascript 客户端,您可以使用:

    我个人会推荐 OpenLayers 作为最通用和真正开放的客户端框架。

    GIS.StackExchange 上的这个问题有该领域竞争者的更多详细信息。

    您还必须有一些您想要符号化的地图的几何/地理提供者。此任务有许多选项,您可以使用某种 WMS(Web 地图服务),其中选项为 many and varied,或者您可以提供某种空间格式的文件,如 GML、KML 或 GeoJson。 GeoJson 似乎因为易于使用和减少负载而获得了很大的吸引力。

    您可能需要考虑从后端 spatial database 提供此服务。如果您想朝这个方向发展,我发现 PostGIS + GeoServer 是一个很好的起点,但有很多选择和组合。好在这方面有完善的标准。

    最后看看examplesof whatyou could的一些实现。

    【讨论】:

      【解决方案2】:

      HTML5 画布被认为对地图没有用处,因为它只是像素的排列,不能对输入做出反应 此类应用程序应使用矢量图形。 您将需要的事件处理程序可能是鼠标进入、鼠标离开和单击用户感兴趣的区域。 作为练习,请访问我网站上的转换器

      http://irunmywebsite.com/raphael/SVGTOHTML_LIVE.php

      在 Inkscape 中创建一个小地图并保存为 SVG 文件并上传到上述 URL

      查看 js 窗口中的输出。

      这可能会对您有所帮助。如果卡住了留言...C

      【讨论】:

        【解决方案3】:

        您所需要的只是一个网络地图包 - 例如 OpenLayers - 然后您只需编写 javascript 来驱动它。您可以更改功能的颜色,可以打开或关闭它们,您可以进行各种叠加、弹出窗口等操作。这只是 Javascript。

        访问 www.openlayers.org 看看它能做什么。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-27
          • 2014-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多