2016-10-03 206 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

相關問題