2013-07-15 2 views
2

Openlayers의 레이어에 문자열/문자를 그려 넣으 려합니다 (예 : 경로 근처에 그림 그리기 설명 또는 바닥 번호를 그립니다). 문제점 : Openlayers.Vector에 Label을 추가 할 수는 있지만, 응용 프로그램에는 여러 개의 기하학이있는 하나의 벡터가 있으며, 각각 다른 String으로 렌더링되어야합니다. 는 어쩌면이 같은 일부 기하학이 존재한다 : layer.addFeature (새 Openlayers.StringGeometry ("텍스트", X, Y)를하거나 그래서 나는 아무것도 찾을 수 couldnt한다Openlayers -지도에 문자열 그리기

누군가가 나에게 힌트를 줄 수

답변

9

에..?

1)과 같은 당신의 벡터 레이어에 StyleMap을 추가합니다 : 벡터 레이어의 기능에 사용자 정의 텍스트 레이블을 추가, 나는 다음과 같은 제안이 스타일 맵에서 labelText는 말한다

var vectorLayer = new OpenLayers.Layer.Vector("Vector", 
{ 
    styleMap: new OpenLayers.StyleMap(   
    { 
     label : "${labelText}",      
     fontColor: "blue", 
     fontSize: "12px", 
     fontFamily: "Courier New, monospace", 
     fontWeight: "bold", 
     labelAlign: "lc", 
     labelXOffset: "14", 
     labelYOffset: "0", 
     labelOutlineColor: "white", 
     labelOutlineWidth: 3 
    }) 
}); 

메모를 텍스트에 대한 이 레이블은 해당 지형지 물 속성에서 가져옵니다.

var features = []; 
var pt = new OpenLayers.Geometry.Point(0, 0); 
features.push(new OpenLayers.Feature.Vector(pt, {labelText: "This is my label"})); 
vectorLayer.addFeatures(features); 

이 솔루션에 대한 유일한 제한은 각 지점에 대한 기능을 추가해야하고 사용할 수 없다는 점입니다 :

2) 각각에 대해 당신이 속성이 labelText 정의하는 데 지정하여 레이어에 추가 기능 OpenLayers.Geometry.MultiPoint.

+0

매우 도움이됩니다. 감사합니다. :) – user2312386

+0

당신은 오신 것을 환영합니다. 이 문제가 해결되면 답변으로 표시하십시오. –

+0

정말 도움이되었습니다! 내 투표 +1 – imdadhusen