我正在尝试创建一个交互式地图,用户可以在其中单击地图中的不同省份以获取特定于该省份的信息。
例子:
到目前为止,我只找到了功能有限的解决方案。我只是使用 SVG 文件真正搜索过这个,但如果可能的话,我会向其他文件类型开放。
如果有人知道执行此操作的完整方法(jQuery 插件、PHP 脚本、矢量图像)或有关如何手动执行此操作的教程,请分享。
我正在尝试创建一个交互式地图,用户可以在其中单击地图中的不同省份以获取特定于该省份的信息。
例子:
到目前为止,我只找到了功能有限的解决方案。我只是使用 SVG 文件真正搜索过这个,但如果可能的话,我会向其他文件类型开放。
如果有人知道执行此操作的完整方法(jQuery 插件、PHP 脚本、矢量图像)或有关如何手动执行此操作的教程,请分享。
Sounds like you want a simple imagemap, I'd recommend to not make it more complex than it needs to be. Here's an article on how to improve imagemaps with svg. It's very easy to do clickable regions in svg itself, just add some <a> elements around the shapes you want to have clickable.
A couple of options if you need something more advanced:
我认为最好将我的答案分为两部分:
A -从头开始创建所有内容(使用 SVG、JavaScript 和 HTML5):
<polygon points="200,10 250,190 160,210" style="fill:lime;stroke:purple;stroke-width:1"
onmouseover="mouseOverHandler(evt)"
onclick="clickHandler(evt)" />
function mouseOverHandler(evt) {};
function clickHandler(evt) {};
B - 使用FLDraw Interactive Image Creator 之类的软件(仅当您有地图图像并希望使其具有交互性时):
如果您是程序员或有人为您创建所需的代码和 SVG 文件,选项 (A) 非常好,如果您不想雇用某人或花费自己的时间从刮
您还有其他一些选择,例如使用 HTML5 Canvas 而不是 SVG,但使用 HTML5 Canvas 创建可缩放地图并不容易,也许还有其他一些我不知道的方法。
以防万一有人会搜索它——我在几个网站上使用过它,定制和 RD 的可能性总是非常适合我需要的东西。简单且免费使用:
关于站点上更多脚本的一个注释:我在 Drupal 7 中使用地图(用作图形菜单)时遇到了一些烦人的问题。那里使用了许多其他脚本,在处理它们之后,我被地图卡住了- 它仍然没有工作,虽然 jquery.cssmap.js、CSS(都是本地的)和脚本在正确的位置。Firebug 向我显示了一个错误,我突然发现了 - 一个简单的疏忽,我将脚本代码保留在示例中,并且发生了冲突。只需将前面的函数“$”更改为“jQuery”(或其他处理程序),它就可以完美运行。:]
这就是我的意思(当然你可以把它放在前面而不是 ):
<script type="text/javascript">
jQuery(function($){
$('#map-country').cssMap({'size' : 810});
});
</script>
一段时间以来,我一直在为我的省份地图使用makeaclickablemap,结果证明它非常适合。
使用您的 SVG转到SVG to Script 默认输出是 SVG 代码中的地图,它也添加了添加事件,但很容易识别并且可以根据需要进行更改。
我有同样的要求,最后这个地图转换器对我有用。它是任何地图生成的最佳插件。
这是我为增强图像地图而编写的另一个图像地图插件:https ://github.com/gestixi/pictarea
它可以轻松突出显示所有区域,并让您根据区域的状态指定不同的样式:正常、悬停、活动、禁用。
您还可以指定可以同时选择多少个区域。
以下代码可能对您有所帮助:
$("#svgEuropa [id='stallwanger.it.dev_shape_DEU']").on("click",function(){
alert($(this).attr("id"));
});
你有很多选择:
1 - 如果你能找到你想要的地图的 SVG 文件,你可以使用RaphaelJS或SnapSVG为你的州/地区添加点击监听器,这个解决方案是最可定制的......
2 - 您可以使用专用工具,例如clickablemapbuilder(免费)或makeaclickablemap(我认为也是免费的)。
[免责声明] 我是clickablemapbuilder.com的作者:)
<script type="text/javascript">
jQuery(function($){
$('#map-country').cssMap({'size' : 810});
});
</script>
强文本