아이콘없이 전단지지도에 텍스트 전용 레이블을 추가하는 방법


22

아이콘을 표시하지 않고 마커 또는 다른 것을 사용하여 Leaflet 맵에 텍스트를 표시하는 방법을 찾고 있습니다. 텍스트 만 표시하고 스타일을 지정하고 회전하고 싶습니다 ... 어떤 제안?


1
@NikhilVJ-Q & A는 해당 마커 없이 툴팁 얻는 방법에 대해 논의하지 않습니다 . 여기에 답 은 보이는 마커없이 텍스트 있는 방법을 설명합니다 .
ToolmakerSteve

아 내 나쁜 죄송합니다
Nikhil VJ

답변:


19

이미지 대신 간단한 div 요소를 사용하는 마커의 경량 아이콘을 나타내는 Leaflet L.DivIcon 기능을 사용하여 문제를 해결했습니다.이 마커에는 html 및 className 옵션이있어 CSS로 라벨을 만들 수 있습니다. 스타일 ...


11
이를 위해 약간의 코드를 제공 하시겠습니까?
mastov

이 답변은 라벨과 마커를 원한다면 전혀 알 수 없습니다
Roy

@ 로이-그것은 다른 상황이다. L.Tooltip을 참조하십시오 . 레이블 (툴팁)이 항상 표시되도록하려면 영구적 옵션을 true로 설정하십시오.
ToolmakerSteve

16

Leaflet 1.0 업데이트 : Leaflet 1.0부터 Leaflet.label 플러그인 은 Leaflet 코어에 포함되어 있기 때문에 폐기 되었습니다 L.Tooltip. 소스 스크립트를 포함 할 필요가 없으며 구문이 약간 변경되었습니다. 샘플 사용법 :

var marker = new L.marker([39.5, -77.3], { opacity: 0.01 }); //opacity may be set to zero
marker.bindTooltip("My Label", {permanent: true, className: "my-label", offset: [0, 0] });
marker.addTo(map);

CSS 스타일은 이전과 같은 방식으로 클래스에 적용될 수 있습니다.

.my-label {
    position: absolute;
    width:1000px;
    font-size:20px;
}

또한 마커 불투명도가 완전히 0으로 설정되어있을 수 있습니다.


: 리플릿 1.0 전에 사용 Leaflet.label 플러그인 (이미 geomajor56 언급).

<script src="scripts/leaflet.label.js"></script>

Leaflet Label 플러그인을 사용하면 레이블이 마커에 직접 연결되지만 레이블 만 보이도록 마커의 불투명도를 거의 0으로 설정할 수 있습니다. (표식의 불투명도를 0으로 설정하면 관련 레이블도 사라집니다.)

var marker = new L.marker([39.5, -77.3], { opacity: 0.01 });
marker.bindLabel("My Label", {noHide: true, className: "my-label", offset: [0, 0] });
marker.addTo(map);

그런 다음 CSS를 사용하여 레이블의 스타일을 적절하게 지정할 수 있습니다.

.my-label {
    position: absolute;
    width:1000px;
    font-size:20px;
}

<script src = "scripts / leaflet.label.js"> </ script>-이 행을 HTML에 추가 한 후 페이지가 비어있는 것으로 보입니다. 파일을 다운로드해야합니까?
Marcin Kosiński 2016 년

@ MarcinKosiński-예, 게시물의 GitHub 링크에서 leaflet.label.js를 다운로드하여 scripts라는 웹 사이트의 하위 폴더에 저장해야합니다. 또는 코드의 URL을 leaflet.github.io/Leaflet.label/leaflet.label.js 의 호스팅 된 파일로 바꿀 수 있습니다 (CSS 파일 (같은 이름 및 위치, 다른 확장자)이 필요할 수도 있음).
KeithS

나는 이것을 시도했지만, 배경과 테두리를 제거하는 방법을 알고 있습니까? snag.gy/JdnpyV.jpg
WantIt

L.Tooltip내부 onEachFeature를 사용할 때 오류가 발생했습니다 : "Uncaught TypeError : 'Node'에서 'appendChild'를 실행하지 못했습니다 : 매개 변수 1이 'Node'유형이 아닙니다."
Nikhil VJ

해결, 기능 속성 중 하나를 텍스트 .toString()로 사용하고 끝에 끝에 추가해야 했습니다. marker.bindTooltip(feature.properties['prabhag_number'].toString(), {...
Nikhil VJ

4

Leaflet 플러그인으로 시작할 수 있습니다 . 원하는대로 마커를 만들거나 편집 할 수 있습니다. 텍스트가 기능 속성에서 제공됩니까?


이것은 요청 된 것과 다른 질문에 대답합니다. 기존 마커에 레이블추가하는 방법입니다 . 레이블 있고 마커 기호가없는 방법에 대한 설명 은 아닙니다 .
ToolmakerSteve

0
marker.bindTooltip("text here", { permanent: true, offset: [0, 12] });

이것은 나를 위해 작동


이것은 요청 된 것과 다른 질문에 대답합니다. 기존 마커에 레이블추가하는 방법입니다 . 레이블 있고 마커 기호가없는 방법에 대한 설명 은 아닙니다 .
ToolmakerSteve
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.