leaflet添加Marker和文字标注

vue+leaflet添加Marker和文字标注

功能说明
1.把点以marker的形式添加到地图上,并把文字标注到marker中间
2.击marker可以查看点的详情或者跳转到详情页面
功能实现
制作Marker图片
首先制作背景透明的Marker图片,样式自己定义

添加Marker附带属性信息

初始化Icon

let icon= L.icon({
      iconUrl: require('../../assets/imgs/realTime/green.png'),//marker图片地址
      iconSize: [57, 71],//marker宽高
      iconAnchor: [28.5, 71]//marker中心点位置
    });```

Marker添加到地图上

let marker = L.marker(latlng, { icon: icon,data:dt }).addTo(map);//dt是点的属性信息 对象格式


添加文字标注## 标题

let markerIcon = L.divIcon({
html: content,//marker标注
className: ‘my-div-icon’,
iconSize: type == [57, 71],//marker宽高
iconAnchor: type == [28.5, 55]//文字标注相对位置
});
L.marker(latlng, { icon: markerIcon }).addTo(map);

**绑定点击事件获取属性信息**

marker.on('click', e => {
    let data=e.target.options.data;//marker的属性信息
});

参考链接

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: 好的,我们可以使用 Leaflet 的 `L.marker` 和 `L.popup` 来实现图片标注系统。 首先,你需要在 HTML 文件中引入 Leaflet 的 CSS 和 JavaScript 文件: ```html <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" integrity="sha512-xodZBNTC5n17Xt2atTPuE1HxjVMSvLVW9ocqUKLsCC5CXdbqCmblAshOMAS6/keqq/sMZMZ19scR4PsZChSR7A==" crossorigin=""/> <script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js" integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA==" crossorigin=""></script> ``` 然后,你需要在你的 HTML 文件中添加一个 `div` 元素来作为地图的容器: ```html <div id="map"></div> ``` 接着,你可以在 JavaScript 中使用 Leaflet 的 `L.map` 函数来创建一个地图: ```js var map = L.map('map').setView([51.505, -0.09], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>', maxZoom: 18 }).addTo(map); ``` 最后,你可以使用 `L.marker` 和 `L.popup` 来添加标注和图片: ```js var marker = L.marker([51.5, -0.09]).addTo(map); marker.bindPopup("<b>Hello world!</b><br>I am a popup.").openPopup(); var popup = L.popup() .setLatL ### 回答2: leaflet是一个用于开发交互式地图的JavaScript库,可以用于在地图上进行标注、绘制图形等操作。下面是一个用leaflet编写的简单图片标注系统的思路: 首先,在HTML页面上引入leaflet的库文件和样式表: ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>图片标注系统</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet/dist/leaflet.css" /> <script src="https://cdn.jsdelivr.net/npm/leaflet/dist/leaflet.js"></script> </head> <body> <div id="map" style="width: 100%; height: 500px;"></div> </body> </html> ``` 接下来,在JavaScript中编写相应的代码来初始化地图、添加图片和标注: ``` <script> var map = L.map('map').setView([51.505, -0.09], 13); // 初始化地图中心经纬度和缩放级别 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { // 使用OpenStreetMap作为底图 attribution: '© <a href="https://www.openstreetmap.org">OpenStreetMap</a> contributors' }).addTo(map); var imageUrl = 'path/to/your/image.jpg'; // 设置图片的URL var imageBounds = [[51.49, -0.08], [51.51, -0.06]]; // 设置图片的边界坐标 L.imageOverlay(imageUrl, imageBounds).addTo(map); // 添加图片到地图上 L.marker([51.5, -0.09]).addTo(map) // 添加标注 .bindPopup('这是一个标注。') .openPopup(); </script> ``` 在这个示例中,我们首先初始化一个leaflet地图,并设定了地图的中心经纬度和缩放级别。然后,我们使用`L.tileLayer`方法加载了OpenStreetMap作为底图,并将其加入到地图上。 接着,通过设置`imageUrl`变量来指定图片的URL,并通过`imageBounds`变量设置图片的边界坐标。然后,我们使用`L.imageOverlay`方法将图片添加到地图上。 最后,使用`L.marker`方法添加一个标注,并通过`bindPopup`方法绑定了标注的弹出窗口内容。在这个例子中,我们给标注添加了一个简单的文本内容。 通过以上步骤,我们可以通过leaflet来构建一个简单的图片标注系统。你可以根据需要对代码进行扩展和自定义,实现更丰富的功能。 ### 回答3: 使用Leaflet库可以很方便地制作一个图片标注系统。首先,需要准备一张图片作为地图背景,并在HTML文件中引入Leaflet的相关文件。 然后,在JavaScript代码中初始化一个Leaflet地图,并设置地图的初始视图、最大缩放级别等属性。接下来,创建一个图层组,并将图层组添加到地图中。图层组可以用来管理图片和标注的图层。 接着,将图片作为地图背景添加到图层组中,并使用Leaflet的ImageOverlay类进行设置。可以设置图片的位置、尺寸等属性。 然后,监听地图的点击事件,在点击地图时获取点击位置的经纬度坐标,并创建一个标注图层。使用LeafletMarker类可以轻松创建一个标注,并设置标注的位置、样式、弹出信息框等属性。 最后,将标注图层添加到图层组中,并在地图上显示。 除此之外,还可以添加其他功能,如标注的拖动、编辑、删除等操作。可以通过监听标注的相关事件来实现这些操作,例如拖拽事件、点击事件等。 总之,使用Leaflet可以方便地创建一个图片标注系统,用户可以在地图上进行标注,并进行相应的操作。这样的系统可以用于地图标注、旅游景点标注、图像注释等各种应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值