使用PHP在地图上突出显示国家


Highlight countries on map using PHP

我在网上看到很多人问这个问题,但是还没有看到一个解决这个问题的答案。

这是我需要做的——根据我的数据库中的数据,我需要在非洲地图上突出显示国家。这是一款基于网页的游戏,我不想使用谷歌地图之类的东西。

这不是一个新问题,我假设有一个PHP库在那里做它,或者至少一个包含必要信息的文件(据我所知,我需要很多坐标)。地图不需要是交互式的(没有点击或悬停事件),如果可能的话,我想保持这个服务器端。它只需要根据数据库中的数据显示国家和颜色。

但是,如果您没有PHP解决方案,我将感谢使用Javascript的任何替代选项(注意,数据仍然必须从数据库中提取)。

最后一个问题-简单地创建每个国家的。png图像,其余的地图是透明的,并将它们定位以形成地图,这有多难?在这种情况下,是否有一个PHP函数可以让我突出显示单个国家?

在PHP中很难做到这一点,但是使用jQuery插件imageMapster非常简单。这是一个地图演示,听起来很适合你。

http://www.outsharked.com/imagemapster/examples/usa.html

您可以将其设置为图像地图,并将其设置为在加载,鼠标悬停,单击等情况下突出显示地图区域。突出显示可以是基于CSS的,也可以是替代图像。

它有很好的文档,并且多次为我节省了生命。

下面是一个如何将area设置为其onstate的示例:

<script>
    $(document).ready(function() {
        $('#IMAGE_NAME').mapster('set',true,'AREA_ID');
    });
</script>

编辑:这实际上是我今天第二次推荐这个。我和它没有任何关系,我只是觉得它很酷。

VectorWorkz GeoChart是一种jQuery插件,它允许您根据数据库中的数据更改地图区域的颜色,它还允许您将数据库数据绑定到区域,这样当有界数据值发生变化时,地图区域的颜色会自动改变。

对于初学者,您必须使用某种图像映射或SVG工具跟踪每个国家并映射所有点。这应该需要一段时间-当你完成了,然后你可能可以使用HTML的画布标签合成点到图像上的多边形。