leaftlet入门教程一

本文介绍了如何在Leaflet地图中监听鼠标移动事件获取坐标,创建和管理地图,包括设置初始视图、显示缩放尺度,以及使用Mapbox API、标注、旋转、移除和批量操作marker的方法。此外,还涵盖了divIcon和layerGroup的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、实时输出坐标

// 监听 mousemove 事件
map.on('mousemove', (e) => {
    let latlng = e.latlng;
    console.log(latlng );// {lat: 30.59, lng: 114.32}
});
 
// 取消 mousemove 事件
map.off('mousemove');

2、设置地图
<head>中添加

    <link rel="stylesheet" href="./leaflet/leaflet.css" />
    <script src="./leaflet/leaflet.js"> </script>

<head>中添加
如果你正在使用<div id=‘mapDiv’></div>地图容器

<style>
    #mapDiv {
        background: pink;
    }
</style>

也可以在body中的mapDiv的div里面添加,如下:

<body>中添加:

<div id="mapDiv" style="width: 1000px; height: 600px;background: white;"></div>

创建一个空白地图 <body>中的<script>代码块中添加:

	var leafletMap = L.map('mapDiv', {
	    center: [23.16, 113.40],//地图的初始地理中心
	    zoom: 6  //初始地图缩放级别
	});

或者

var leafletMap = L.map('mapDiv').setView([22, 113], 5);
3、显示缩放尺度
        L.control.scale().addTo(leafletMap);

在这里插入图片描述
4、mapbox api使用
https://docs.mapbox.com/api/overview/

5、标注
https://blog.csdn.net/qq_34922009/article/details/81164540?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3.no_search_link

6、旋转
https://github.com/bbecquet/Leaflet.RotatedMarker

7、移除marker

var marker = L.marker([23.16, 113.40]).addTo(leafletMap)
            .bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();
            
leafletMap.removeLayer(marker)

    L.marker([23, 113]).addTo(leafletMap).bindTooltip("my tooltip text").openTooltip();

8、批量生成marker,批量移除marker

首先需要创建marker

        var myIcon1 = L.divIcon({
            html: "B25066666",
            className: 'my-div-icon',
            //iconSize:30

        });
        var myIcon2 = L.divIcon({
            html: "B25000000",
            className: 'my-div-icon',
            //iconSize:30

        });
        var myIcon3 = L.divIcon({
            html: "B25222222",
            className: 'my-div-icon',
            //iconSize:30

        });
          
         
        var lay1 = L.marker([23.5, 113.5], { icon: myIcon1});
        var lay2 = L.marker([23.9, 113.9], { icon: myIcon2});
        var lay3 = L.marker([23, 113], { icon: myIcon3});

创建marker数组

        var layers=[];
        layers.push(lay1);
        layers.push(lay2);

创建marker数组

        var myGroup = L.layerGroup(layers).addTo(leafletMap);//批量添加到layerGroup,并显示在leafletMap  div上

        myGroup.addLayer(lay3)//单独添加到layerGroup,并显示在leafletMap  div上

        myGroup.clearLayers();//批量删除

        var myGroup = L.layerGroup();

        myGroup.addLayer(lay1);
        myGroup.addLayer(lay2);
        myGroup.addLayer(lay3);
        myGroup.addTo(leafletMap);
Leaflet 是个流行的开源 JavaScript 地图库,它用于创建互动地图在网页上。当你遇到地图上显示空白,尤其是区域呈现白色并且没有数据显示的情况,这可能是以下几个原因造成的: 1. **初始配置错误**:检查地图初始化时是否设置了正确的中心位置、缩放级别以及是否有正确加载的地图层(如 OpenStreetMap 或 Google Maps API)。 ```javascript const map = L.map('map').setView([51.505, -0.09], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors' }).addTo(map); ``` 2. **数据源问题**:如果地图依赖于特定的数据服务,比如 WMS 或 OSM 的特定层,可能存在网络问题或者服务不可用导致没有获取到数据。 3. **地图覆盖范围**:确认你正在查看的区域是否在地图服务的覆盖范围内,有些地图服务可能会有地理限制。 4. **CSS 配置**:确保地图容器的 CSS 属性(如 `height` 和 `width`)设置正确,以便地图能够渲染。 5. **地图标记或图层不存在**:如果你在地图上添加了自定义标记或图层,它们可能还没有正确显示出来。 解决这些问题通常需要调试代码、检查网络连接,或者调整地图的配置选项。如果还是不清楚问题所在,提供具体的代码片段会更有助于定位问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六五酥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值