场景
Leaflet中自定义marker的icon图标:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/122322788
在上面自定义marker的基础之外,还可以通过给marker添加popup弹窗
并设置popup的content达到自定义弹窗内容的效果。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
1、添加图片标注
//添加图片标注
var Marker = L.marker([36.09, 120.35]).addTo(map);
2、设置点击事件
Marker.on('click', function () {
//添加Popup标注,显示一段文字和一幅图片
var popup = L.popup().setLatLng([36.09, 120.35]).setContent('<div style="width:268px;font-size:16px">小区一隅,您可以在此尽享美好时光...</div> <img style="width:268px;" src="./images/timg.jpg" />').openOn(map);
});
3、完整示例代码
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>leaflet添加标注popup</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
<style>
html,
body,
#map {
padding: 0;
margin: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
</style>
</head>
<body>
<div id="map"></div>
<script type="text/javascript" src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
<script type="text/javascript">
var map = L.map('map').setView([36.09, 120.35], 13);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: ''
}).addTo(map);
//添加图片标注
var Marker = L.marker([36.09, 120.35]).addTo(map);
/**鼠标单击事件
* @param {string} type 事件类型(鼠标单击)
* @param {function} fn 事件触发后的响应函数
*/
Marker.on('click', function () {
//添加Popup标注,显示一段文字和一幅图片
var popup = L.popup().setLatLng([36.09, 120.35]).setContent('<div style="width:268px;font-size:16px">小区一隅,您可以在此尽享美好时光...</div> <img style="width:268px;" src="./images/timg.jpg" />').openOn(map);
});
</script>
</body>
</html>