我也尝试使用scaleLine的另一种方法我有一个地图对象:
_map=new Map(..)
_map.addControl(new Openlayers.Control.ScaleLine())
但是它显示了5000000km,这是一种在地图上像1:5M一样显示它的方法。 请任何帮助!
答案 0 :(得分:0)
https://gis.stackexchange.com/questions/242424/how-to-get-map-units-to-find-current-scale-in-openlayers选中此项以获取地图的当前比例。然后,您可以将字符串创建为“ 1:5M”,然后使用javascript更新刻度线div的文本。在地图上注册zoomend和moveend事件,并在比例线div中更改div的内部文本。
map.events.register("zoomend", map, function(){
var scale= document.getElementsByClassName("olControlScaleLineTop") [0].innerHTML ;
if(!scale.includes(":"))
{
scale = "1 : " + scale;
}
else
{
scale = scale.split(":")[1];
scale = "1 : " + scale;
}
document.getElementsByClassName("olControlScaleLineTop")[0].innerHTML = scale;
});