2016-10-03 201 views
1

如何使用OSM生成这样的地图?我想让地图突出显示单个国家并淡化他人。另外,如果国家很小,我想用缩略图在全球展示它。如何生成“突出显示的国家/地区”地图

enter image description here

+0

你为什么要使用OSM来做这件事的原因是什么? – Manuel

+0

@曼纽尔,没有理由,我只是需要一种方法来创建一个这样的地图。我认为OSM可以做到这一点,纠正我,如果我错了。 – madhead

+0

没有OSM只是一个包含自愿者数据库而不是映射库的底图(比如地理数据维基)...... 它应该像上面那样是相同的映射(Lambert的Conformal Conic Projection),还是像谷歌地图这样简单的墨卡托投影?预测:http://bl.ocks.org/syntagmatic/raw/ba569633d51ebec6ec6e/。墨卡托将是最简单的。 你有兴趣用mapserver实现这个服务器端还是使用一个简单的库来实现更快的方法?它应该是一个可缩放的“滑动地图”或静态交互式地图吗? 什么语言? – Manuel

回答

2

奥凯,让我们使用JavaScript,因为我觉得这是最大的种种库。这里我将解释一些创建交互式webmap的方法。

1)第一种方法是使用普通SVG:

你可以下载或与您所选择的矢量软件底图为SVG绘制。然后你可以为每个国家的多边形分配一个唯一的ID,而在JS内部,你可以通过点击或鼠标悬停等鼠标事件访问SVG。该国的所有信息可以存储在JS以外的.json(更简单)或.xml文件中。使用从SVG事件中获得的ID,您可以从.json获取适合的信息。也许重新发明轮子,但它是高度可调的。但是我认为如果你只是想要一个静态映射它更简单,如果你正在使用一个更复杂的库。

2)第二种方法是使用对SVG相互作用库:

非常流行D3.jsRaphael.js

3)使用基于SVG专题电子地图服务库中的第三种方法:

使用JQVMAP(原vectormap.js)或非常新奥项目mapmap.js

4)利用地形电子地图服务库

在这里你可以使用开放图书馆leaflet.js或openlayers.js。有了这些,最好的方法就是,将您的国家添加为.geojson。 Geojson是一个非常好的格式,它允许您使用大多数地理软件与您的国家进行交互。

5)创建UND使用自己瓦片

这种方法是最高效的解决方案,但不是简单的实现。 Here是一个非常好的教程,解释了五种方法。但我认为最简单的是使用TileMill。

6)使用地图服务器 如果你不熟悉mapservers,这应该只有当你要实现广泛的应用考虑。 Nice Mapservers是Deegree和受欢迎的Geoserver

所有这些方法都有其优点和缺点,但我认为其中一种解决方案将满足您的需求,并祝您取得最佳成绩!

+0

这么多的可能性。那好吧,看起来我需要几个晚上才能掌握它们。感谢您的回答! – madhead

+0

奥克如果你有进一步的问题属于你选择的方法,它将很高兴在新的帖子中提出! – Manuel

相关问题