0
点赞
收藏
分享

微信扫一扫

openlayers | ol.Overlay实现点击地图图标,图标跳动

要在地图上显示并附加到单个地图位置的元素。就像module:ol/control/Control~Control,叠加层是可见的小部件。

与控件不同,它们不在屏幕上的固定位置,而是与地理坐标相关联,因此平移地图将移动覆盖而不是控件。

例子:

import Overlay from 'ol/Overlay';

var popup = new Overlay({
element: document.getElementById('popup')
});
popup.setPosition(coordinate);
map.addOverlay(popup);

​​ol.Overlay​​

openlayers | ol.Overlay实现点击地图图标,图标跳动_css

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://openlayers.org/en/v5.3.0/css/ol.css" />
<script type="text/javascript" src="https://openlayers.org/en/v5.3.0/build/ol.js"></script>
<title>openlayers 标记点闪烁</title>
</head>
<body>
<div id="map"></div>
<div id="baidu"><img src="https://www.baidu.com/img/flexible/logo/pc/result@2.png"></div>
<script>
var beijing = ol.proj.fromLonLat([116.28, 39.54]);
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
view: new ol.View({
center: beijing,
zoom: 4
})
});

var tip = document.getElementById('baidu');

var overlay = new ol.Overlay({
element: tip,
positioning: 'center-center'
});
overlay.setPosition(beijing);
map.addOverlay(overlay)
let flag = true
let animate = null

tip.onclick = () => {
if (animate != null) {
clearInterval(animate);
animate = null;
} else {
animate = setInterval(() => {
flag = !flag
let po = flag ? '10px' : '-10px'
tip.style.top = po
}, 500);

}


}
</script>
</body>
<style>
#baidu {
width: 100px;
position: absolute;
top: 10px;
}

img {
width: 100%;
}
</style>
</html>

箴言:因为这些东西是非常简单的。不要抱怨自己学不会,那是因为你没有足够用心。



举报

相关推荐

0 条评论