2013-04-09 43 views
0


我與OpenStreetMap的和的OpenLayers web應用程序的工作。
capture1
現在我想要做的是什麼線之上已經顯示的標籤,類似下面:我所做的使用JavaScript渲染與某個給定的點在地圖上的一條線,像下面的屏幕截圖是
enter image description here
我不知道我怎樣才能通過JavaScript實現這一點,我無法找到任何有用的參考文件。任何人都有這樣做之前請分享一些經驗。
謝謝!OpenStreetMap的地圖添加標籤

回答

0

嘗試用樣式標籤創建不透明(或零寬度)的點。這是我的建議,基於Labeled Features Example。 (我現在沒有可能測試它,所以請小心)。

第一:創建新載體層(如造型設置可能會與行的當前層干擾)隱形點和一些參數風格:

var vectorLayer = new OpenLayers.Layer.Vector("Labeled points", { 
    styleMap: new OpenLayers.StyleMap({'default':{ 
     // should be invisible, if not, set opaque 
     strokeWidth: 0, 
     pointRadius: 0, 
     // label may have \n linebreaks 
     label : "${label}", 
     fontColor: "${fontColor}", 
     fontSize: "12px", 
     fontFamily: "Courier New, monospace", 
     fontWeight: "bold", 
     labelAlign: "${align}", 
     labelXOffset: "${xOffset}", 
     labelYOffset: "${yOffset}", 
     labelOutlineColor: "white", 
     labelOutlineWidth: 3 
     }}) 
    }); 

二:這裏是你如何創建功能,以給定的參數( $ {參數}):

var newLabeledPoint = new OpenLayers.Geometry.Point(-101.04, 35.68); 
var newLabeledFeature = new OpenLayers.Feature.Vector(newLabeledPoint); 
    newLabeledFeature .attributes = { 
     label: "Line 1", 
     fontColor: 'blue', 
     align: "cm", 
     // positive value moves the label to the right 
     xOffset: 50, 
     // negative value moves the label down 
     yOffset: -15 
    }; 

最後:vectorLayer.addFeatures([newLabeledFeature]);