leaflet基本使用

目录

创建地图(map)

添加图层(tileLayer)

创建标记(marker)

图标(icon/divIcon)

弹框(bindPopup)

options选项

方法

工具提示(bindTooltip)

options选项

窗格(pane)

常用方法


创建地图(map)

let map= L.map('map', {
  minZoom: 4,
  maxZoom: 17,
  zoom: 14,
  center: [37.632111, 114.91680237],
  attributionControl: false,
});
  • options选项
  •   maxZoom:地图最大的缩放等级
  •   minZoom:地图最小的缩放等级
  •   zoom:地图默认的缩放等级
  •   center:地图默认的中心点位置[纬度,经度]
  •   attributionControl:是否将 attribution 版权控件添加到地图中
  •   zoomControl:是否将zoom缩放控件添加到地图中
  •   crs:地图使用的坐标系,默认使用的是EPSG3857坐标系
  •   layers:添加到地图的图层
  •   closePopupOnClick:用户点击图层时打开的弹框是否自动关闭
  •   dragging:地图是否可以进行拖动,滑动

添加图层(tileLayer)

let tileLayer = L.tileLayer('http://map.geoq.cn/ArcGIS/rest/services/.../',{
    maxZoom: 17,
    minZoom: 4,
}).addTo(map);   
                                                            

创建标记(marker)

let marker = L.marker([纬度,经度], { icon: 图标 })
  •   icon:将创建的标记改为一个图标
  •   title:鼠标移动到标记上时显示的标记
  •   opacity:标记的不透明度

注意: icon不定义就会使用leaflet自带的图标

图标(icon/divIcon)

icon图标:提供一个图片或图像代替标记

var myIcon = L.icon({
    iconUrl: 'my-icon.png',
    iconSize: [38, 95],
    iconAnchor: [22, 94],
    popupAnchor: [-3, -76],
    shadowUrl: 'my-icon-shadow.png',
    shadowSize: [68, 95],
    shadowAnchor: [22, 94]
});

option选项 

  •   iconUrl:图标图像的地址(URL)
  •   iconSize:图标图像的尺寸,单位为像素(number)
  •   className:设置一个class自定义图标的CSS属性
  •   popupAnchor:弹出的窗口的坐标,相对于图标的描点而言,将在这里打开弹框 ([0,0])
  •   iconAnchor:图标相对其左上角的坐标,默认情况下,图标的左上角是标记的位置([0,0])

divIcon图标:提供一个div元素作为图标代替标记

let divIcon = L.divIcon({
   html: `<div style="width:30px;height:30px;background:red;border- 
         radius:30px;text-align:center;line-height:30px;color:#ffffff">
         北京</div>`,
   className: 'icon',   // 图标父节点的class属性
   popupAnchor: [8, 2], // 弹出框(popup)的坐标,相对于图标描点而言,将从该点打开
});
  •   html:自定义HTML代码,放入div元素内

divIcon继承icon的option选项

弹框(bindPopup)

marker.bindPopup("我是popup",options).openPopup();

options选项

  • maxWidth(最大宽度):弹出框的最大宽度。
  • minWidth(最小宽度):弹出框的最小宽度。
  • maxHeight(最大高度):设置后,如果内容超过弹出窗口的给定高度则产生一个可以滚动的容器。
  • autoPan(自动平移):如果你不想地图自动平移来适应打开的弹出框,就设置其为false。
  • closeButton(关闭按钮):设置弹出窗口中是否出现关闭按钮。
  • offset(补偿值):弹出窗口位置的补偿值。在同一图层中打开弹出窗口时对于控制锚点比较有用。
  • autoPanPadding(自动平移填补):在地图视图自动平移产生后弹出窗口和地图视图之间的边缘。
  • zoomAnimation:决定是否在所在级别上弹出窗口。如果你在弹出窗口中有flash内容的最好将其设置为不可用。
  • closeOnClick:默认为true,如果不想用户点击地图时弹框自动关闭,就请设置为false
  • className:设置一个class自定义弹出窗口的CSS属性

方法

  • addTo:将弹出窗口添加到地图上。
  • openOn:将弹出窗口添加到地图上并将之前的一个关闭。与map.oenPopup(popup)方法相同。
  • setLatLng:设置弹出窗口打开的地理上的点位。
  • setContent:设置弹出窗口的HTML内容。

工具提示(bindTooltip)

使用示例

marker.bindTooltip("my tooltip text",options).openTooltip();

options选项

  • direction:打开tooltip的方向,可以为left,right,bottom,top,center,auto
  • permanent:是永久打开tooltip还是只在鼠标移动时打开
  • sticky:如果为true,tooltip将跟随鼠标移动,而不是固定在特征中心
  • opacity:tooltip的透明度

窗格(pane)

map.createPane('pane'); // 创建窗格
map.getPane('pane').style.zIndex = 999;  // 设置窗格的层级
var positronLabels = L.tileLayer('https://{s}.basemaps.cartocdn.com/light_nolabels/{x}/{y}/{z}.png'),{
        attribution: '©OpenStreetMap, ©CartoDB',
        pane: 'labels'   // 绑定窗格
}).addTo(map);  

常用方法和事件

创建图层

const markerGroup = L.layerGroup(markerArr);  // markerArr为一个marker标记组成的数组

添加图层

map.addLayer(this.tileLayer);

 删除图层

map.removeLayer(layer)

遍历所有图层然后删除

map.eachLayer(function (layer) {
    layer.remove();
})
// eachLayer()方法:遍历地图上所有图层

设置地图的中心点和层级

map.setView([lat: 30.890944, lng: 120.606944],10);

获取地图当前缩放级别

map.getZoom();

 获取当前地图中心点

map.getCenter();

设置地图的最小或最大缩放级别

map.setMinZoom(10);
map.setMaxZoom(16);

判断地图上是否已存在某个图层

map.hasLayer(this.tileLayer);

leaflet是一个流行的开源JavaScript库,用于创建交互式的地图应用程序。它支持各种地图数据提供商,包括OpenStreetMap、Mapbox和ESRI等。在leaflet使用深色地图可以通过以下步骤实现: 首先,选择一个适合的深色地图样式。深色地图通常具有较低的亮度和对比度,使地图呈现出更加昏暗的色调。可以在Mapbox或其他类似的网站上找到许多现成的深色地图风格,也可以根据自己的需求自定义地图样式。 然后,在leaflet中导入所选的深色地图样式。这可以通过在HTML文件中引入样式表,或者使用JavaScript将样式加载到leaflet地图对象中来完成。导入样式后,地图将以深色样式呈现。 接下来,创建一个基本leaflet地图对象。在指定的位置和缩放级别上初始化地图,并将地图容器与页面上的特定元素关联起来。这可以通过使用leaflet的Map方法,并将其作为参数传递给指定的HTML元素来实现。 最后,使用leaflet的图层机制将深色地图样式添加到地图对象中。leaflet中的图层用于展示不同类型的地图数据,包括矢量图形、标记和瓦片地图。可以使用leaflet的TileLayer方法将深色地图样式作为一个图层添加到地图中,确保将样式与正确的图层属性一起设置。 通过按照上述步骤,在leaflet使用深色地图样式来呈现地图。这将使地图界面更加突出,适合夜间使用或需要较低亮度的场景。同时,leaflet提供了许多其他功能和配置选项,以满足用户对地图的个性化需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值