zl程序教程

您现在的位置是:首页 >  其它

当前栏目

【已解决】leaflet比例尺:L.control.scale 单位国际化(m:米、km:公里、ft:英尺、mi:英里)

解决 Control 单位 国际化 Leaflet scale 公里
2023-09-27 14:26:51 时间

文章目录



L.control.scale() 是用来显示比例尺的,具体使用很简单,看文档就好,不多说。。。

这里重点分享一下单位国际化(m:米、km:公里、ft:英尺、mi:英里)

其实 m、km、ft、mi 已经很明确了,但总会有奇怪需求,需要"国际化"。。。

文档并没有相关介绍,只能自己实现了。。。操控dom。。。:

let scale = L.control.scale()
scale.addTo(map)
// 请确保:metric: true(默认)
scale._mScale.innerText = `${scale._mScale.innerText.slice(0, -2)} ${scale._mScale.innerText.slice(-2) ==='km'? '公里': '米'}`
// 请确保:imperial: true(默认)
scale.getContainer().childNodes[1].innerText = `${scale.getContainer().childNodes[1].innerText.slice(0, -2)} ${scale.getContainer().childNodes[1].innerText.slice(-2) ==='mi'? '英里': '英尺'}`

有以下两点需要注意:

  • 一定要在addTo(map)之后进行操作
  • 反引号内不要换行。。。

over