互动世界地图-建议?
我希望创建一个"我们访问过的国家"地图,就像我们可能在Facebook,TravelAdvisor等上看到的那样。
我尝试了不同的闪光灯套件,但是它们并不像我希望的那样先进。在使用所有不同套件时,我遇到的主要问题是单击某个国家时更改其背景颜色,并在"取消选择"该颜色时保留该颜色。这显然是给用户一些视觉反馈的必要条件。
到目前为止,我设法做到这一点的唯一方法是使用巨大的XML字符串通过javascript初始化Flash,具有与Javascript交互的click回调以及使用javascript使用正则表达式更改XML字符串,然后将XML发送回到闪光灯。很明显,这种方法从最优角度来说是FAR,而且非常非常慢。
我已经尝试过FusionMaps,amMap,AnyMaps和diyMap,到目前为止,我还没有找到使用它们中的任何一种的方法。如果有人做过任何类似的事情,我真的会知道:-)
有人对我应该看的东西有任何指示或者建议吗?我开始认为,仅使用Wikipedia上的免费SVG大陆地图,将其转换为PNG并创建所有国家的图像地图,然后使用Canvas和VML绘制元素,会更简单(尽管灵活性较差)在这些国家/地区中排名最高,但是与Flash解决方案相比,这似乎是一个巨大的痛苦,而且很容易出错。
感谢阅读,我希望有人对我有帮助:-)
- 末日先生
解决方案
回答
如果适用于我们要构建的东西,那么Virtual Earth如今已处于6.1版本,并且在API中具有许多出色且易于使用的javascript调用来加载多边形。如果我们拥有定义国家/地区的点数据(应该可以免费获得),则可以轻松地定义带有VELatLong对象数组的VEShape多边形,并在其上扔一个事件处理程序以在单击时为它们着色。 VE的好处是javascript API确实非常灵活且易于使用,并且具有许多不错的映射功能。
回答
如果我们感兴趣,这里有一个ASP.NET虚拟地球映射服务器控件:
http://simplovation.com/page/webmapsve.aspx
本质上,这是围绕Virtual Earth的"包装器",它抽象出了我们通常需要编写的大部分(如果不是全部)JavaScript。它使我们可以完全从服务器端.NET代码处理地图事件并操纵地图事件。
回答
尝试从Google地图开始。如果我们想要一个使用Google地图并在其上放置彩色区域的网站的好例子,请访问Wikimapia.org。
回答
我一直在寻找相同的东西,然后我找到了Google的虚拟化强度图。
我们可以在这里找到更多信息