Flex Api For ArcGIS Server如何更改地图自带Scalebar的单位

如题所述
我想更改map控件中scalebar的单位显示,map自带的scalebar显示为km和feet,现在我想改成中文的为"千米"和"英尺",我的开发环境是FlashBuilder4.5,我的代码如下:
<fx:Script>
<![CDATA[
private function inv():void{
var a:ScaleBar=new ScaleBar
a.textMetric="千米"
a.textUS="英尺"
a.map=myMap
var bb:Class=a as Class
myMap.scaleBarClass=bb
}
]]>
</fx:Script>
<esri:Map id="myMap" logoVisible="false" scaleBarVisible="true" creationComplete="inv()" openHandCursorVisible="false" / >
但是在运行的时候出现了问题,那就是在地图的左下角没有显示比例尺,请问我应该怎么改才能达到想要的效果,谢谢。

arcgis 中textMetric的值是“值+单位的“,这样修改不起作用。
只能是定义一个类重载scaleBarSkin中的measure方法
override protected function measure():void
{
var metric:String = hostComponent.textMetric;
var us:String = hostComponent.textUS;
if(metric)
{
if(metric.indexOf("km") > 0)
metric = metric.slice(0,metric.indexOf("km")) +"千米";
else if(metric.indexOf("m") > 0)
metric = metric.slice(0,metric.indexOf("m")) + "ç±³";
}
if(us)
{
if(us.indexOf("mi") > 0)
us = us.slice(0,us.indexOf("mi")) + "英里";
if(us.indexOf("ft") > 0)
us = us.slice(0,us.indexOf("ft")) + "英尺";
}

hostComponent.textMetric =metric;

hostComponent.textUS = us;
super.measure();

然后在给地图定义外观
esri|ScaleBar
{
left:NaN;
right:45;
bottom:30;
skinClass: ClassReference("skin.MyScaleBarSkin");
}
这样就可以了!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-19
...............鐧惧害鍦板浘

本数据来源于百度地图,最终结果以百度地图最新数据为准。

相似回答