leaflet 根据经纬度打点

1,249 阅读2分钟

使用icon

let DefaultIcon1 = L.icon({
  iconUrl: require('../../assets/logo.png'),
  iconSize: [24, 24], //  图标的大小    【值1,值2】 为具体你自定义图标的尺寸,比如我图标尺寸是32×52,表示该图标:宽度32像素,高度:52像素,那么值1:就是32,值2:就是52
  shadowSize: [41,41], //  影子的大小    【值1,值2】 为具体你自定义阴影图标的尺寸,比如我图标尺寸是41×41,表示该图标:宽度41像素,高度:41像素,那么值1:就是41,值2:就是41
  iconAnchor: [24, 41], //  图标将对应标记点的位置 这个是重点, 【值1,值2】,值1:为图标坐标第一个值(即32)的一半,值2:为图标坐标第二个值(即52)
  shadowAnchor: [4, 62], // 相同的影子
  popupAnchor: [1, -24] // 该点是相对于iconAnchor弹出信息的位置  这个是我手动调出来的,文档默认原始值是[-1,-76],我是去一半值,取一半值调出来的
})
        
L.marker([33.2973000944438, 114.83886480331422], {icon: DefaultIcon1}).addTo(this.map)

使用divIcon

let htmlUrl = `<div><span class="lmap-span">标点3</span><img class="lmap-image" style="width: 32px; height: 32px" src="${this.defaultMark}"></img></div>`

let DefaultIcon2 = L.divIcon({
  className: "lmap-icon",
  html: htmlUrl
})
        
L.marker([33.2983099097883, 114.85605239868165], {icon: DefaultIcon2}).addTo(this.map)

this.defaultMark 为图片的地址

使用 divIcon 时建议图表的大小使用 style 进行设置

参数说明

参数参数类型默认值说明
iconUrlStringnull(必需)icon图标图像的URL(绝对或相对于您的脚本路径)
iconRetinaUrlStringnull用于Retina屏幕设备大尺寸版本的图标图像的URL(绝对或相对于您的脚本路径)
iconSizePointnullicon图片的大小(单位:像素)
iconAnchorPointnull图标的“指示地理位置的锚点”的坐标(相对于其左上角)。 以便图标显示准确位于标记的地理位置。 如果指定大小,则iconAnchor默认为图标中心点,也可以在带有负边距的CSS中设置
popupAnchorPointnullpopup弹窗相对于图标的锚点“打开”的点的坐标
shadowUrlStringnull图标阴影图像的URL。 如果未指定,将不会创建阴影图像
shadowRetinaUrlStringnull用于Retina屏幕设备大尺寸版本的图标图像阴影图像的URL。 如果未指定,将不会创建阴影图像
shadowSizePointnull阴影部分的图片大小(单位:像素)
shadowAnchorPointnull阴影(相对于其左上角)的“提示”的坐标(与未指定的iconAnchor相同)
classNameString‘’要分配给图标和阴影图像的自定义css类名称。 默认为空