Notice
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- map
- fitBounds
- getZoom
- ToolTip
- 멀티툴팁
- docker
- JupyterHub
- R kernel
- jupyterlab
- deckgl
- openlayers Popup
- openlayers
- openlayers tooltip
- crossorigin
- Deckgl ToolTip
- 다중팝업
- openlayers crossorigin
- 오픈레이어스
- javascript rpad
- 지도
- cross-origin
- 주피터허브
- WebMercatorViewport
- javascript lpad
- 다중툴팁
- jupyterhub admin
- multiplePopup
- 텍스트채우기
- 최적Zoom
- Deckgl Tooltip fixed position
Archives
- Today
- Total
Map 개발자의 길
multiple popup in openlayers (다중팝업) 본문
기능 구현에 앞서서
OpenLayers의 Popup(tooltip)은 기본 예제 따라하면 단일 팝업으로만 작성 가능하다.
본 개발자의 클라이언트는 여러 정보를 한번에 보고싶어하심.... 하...제발......
1. OepnLayers Multiple Popup
단순하게 코드 구현
//맵 클릭 이벤트
map.on('singleclick', function(evt) {
var coordinate = evt.coordinate;
var hdms = ol.coordinate.toStringHDMS(ol.proj.transform(coordinate, 'EPSG:3857', 'EPSG:4326'));
// 툴팁 DIV 생성
let element = document.createElement("div");
element.classList.add('ol-popup');
element.innerHTML = `<a id="popup-closer" class="ol-popup-closer"></a> <div><p>You clicked here:</p><code>${hdms}</code></div>`;
element.style.display = 'block';
// OverLay 생성
let overlay = new ol.Overlay({
element: element, // 생성한 DIV
autoPan: true,
className: "multiPopup",
autoPanMargin: 100,
autoPanAnimation: {
duration: 400
}
});
//오버레이의 위치 저장
overlay.setPosition(coordinate);
//지도에 추가
map.addOverlay(overlay);
// 해당 DIV 다켓방법
let oElem = overlay.getElement();
oElem.addEventListener('click', function(e) {
var target = e.target;
if (target.className == "ol-popup-closer") {
//선택한 OverLayer 삭제
map.removeOverlay(overlay);
}
});
});
2. 결과
반응형
Comments