티스토리 뷰
Skill/OpenLayers
[OpenLayers] 마우스 오버시 특정 구역 하이라이팅하기(with ol.interaction.select)
진열사랑 2020. 9. 20. 21:10폴리곤 표출 시 특정지역을 하이라이팅 해야하는 경우가 있는데
이때 ol.interaction.select 객체를 활용하면 간단한 하이라이팅 효과를 줄 수 있습니다.
소스코드
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<title>kithub example</title>
<meta name="author" content="Your Name">
<meta name="description" content="Example description">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.2.1/css/ol.css" type="text/css">
<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.2.1/build/ol.js"></script>
<style>
.map {
height: 1000px;
width: 100%;
}
</style>
</head>
<body>
<div id="map" class="map"></div>
<script type="text/javascript">
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.XYZ({
url: 'https://xdworld.vworld.kr/2d/midnight/service/{z}/{x}/{y}.png'
})
})
],
view: new ol.View({
center: ol.proj.fromLonLat([126.978275264, 37.566642192]),
zoom: 7
})
});
// 행정구역 데이터 가져오기
var vectorSource = new ol.source.Vector({
format: new ol.format.GeoJSON(),
url: function(extent) {
var strUrl = 'http://localhost/geoserver/sqlite/wfs?service=' +
'WFS' +
'&version=2.0.0' +
'&request=GetFeature' +
'&typename=sqlite:ZONE_SIDO_Co2Intensity_auto_weekday_2016' +
'&outputFormat=application/json' +
'&srsname=EPSG:3857' +
'&bbox=' + extent.join(',') + ',EPSG:3857';
return strUrl;
},
strategy: ol.loadingstrategy.bbox
});
var vectorLayer = new ol.layer.Vector({
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'rgba(0, 0, 0)',
width: 2
}),
fill: new ol.style.Fill({
color: 'rgba(255,0,0,0.2)'
})
}),
source: vectorSource,
name: 'area'
});
//행정구역 레이어 추가
map.addLayer(vectorLayer);
// 각 행정구역 마우스 오버시 하이라이팅
// 마우스 오버시 스타일 지정
var selectPointerMove = new ol.interaction.Select({
condition: ol.events.condition.pointerMove,
style: new ol.style.Style({
stroke: new ol.style.Stroke({
color: 'white',
width: 2
}),
fill: new ol.style.Fill({
color: 'rgba(0,0,255,0.6)'
})
})
});
// interaction 추가
map.addInteraction(selectPointerMove);
</script>
</body></html>
'Skill > OpenLayers' 카테고리의 다른 글
[OpenLayers] ol.control (0) | 2020.09.22 |
---|---|
[OpenLayers] 마우스로 도형 그리기 (0) | 2020.09.20 |
[OpenLayers] OpenLayers3 와 VWORLD (0) | 2020.09.20 |
[OpenLayers] 사용법 기초1 (1) | 2020.09.20 |
[OpenLayers] 개론 (0) | 2020.09.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- $.each
- JQuery
- caniuse
- @ExceptionHandler
- 진열사랑
- devtools
- spring
- springboot
- setter
- CSS
- QueryDSL
- Javascript
- excel
- element위치
- object key
- getter
- $.extend
- ul li로 테이블
- lombok
- 정규식
- PostgreSQL
- DatePicker
- 여러 컬럼 update
- 전후방탐색
- oracle
- Keycode
- border-collapse
- 프로젝트명변경
- sumifs
- draw.io
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함