2013-12-18 112 views
0

我是OpenstreetMap和Leafletjs的新手。我試圖通過使用不同的顏色來顯示高速公路(也稱爲世界某些地方的高速公路)上的旅程時間信息的地圖,以顯示道路擁堵,並且我面臨的問題是,一旦地圖貼磚被渲染,它就會出現包括城鎮/城市名稱,道路名稱等所有信息。 根據我收到的道路信息,我在位於瓦片層頂部的疊加層中創建道路着色。問題是,一旦發生這種情況,道路顏色會覆蓋出現在瓦片層上的道路名稱。在下面顯示的圖像中可以看到問題。Leafleftjs - OpenstreetMap:在Overlay圖層上添加道路名稱

problem http://i40.tinypic.com/i6ies2.png

有沒有一種方法,我可以提取道路的名字,這樣我可以把它的道路着色層的上層,這樣的路名出現在道路色素的頂部。

感謝您的任何幫助,期待一些答覆。

感謝

回答

1

理論上,你可以創建兩組瓷磚:一個與道路線,另一個與盾牌(標籤)。用透明背景渲染盾牌。然後破解Leaflet以在覆蓋圖層上方有第二個圖塊圖層。

但是......這是一個相當簡單的問題一大堆麻煩。那麼,爲什麼不把道路數字放在道路旁邊,而不是放在道路上呢?這樣,您的覆蓋線不會遮蓋數字。 Here's an example這樣做的風格(免責聲明:我的網站!)。

假設你使用Mapnik來渲染你的瓷磚,你會想使用TextSymbolizer而不是ShieldSymbolizer。如果您使用TileMill而不是純粹的Mapnik XML,自定義樣式(當然)更容易。

1

正如你所說,在roadnames(此處參考圖標symbolizers)是OSM柵格地圖瓦片的一部分,不能輕易改變。
所以最簡單的解決方案是切換到沒有標籤的地圖樣式。
另一個想法是將更多的alpha添加到你的cusom GPS軌道,所以它更加「空洞」,更適合於地圖風格。但是默認的OSM風格不適合在頂部添加信息,因爲這個底圖已經詳細了。也許這是有道理的使用另一個:
http://wiki.openstreetmap.org/wiki/Featured_tiles