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

如题所述我想更改map控件中scalebar的单位显示,map自带的scalebar显示为km和feet,现在我想改成中文的为"千米"和"英尺",我的开发环境是Flash... 如题所述
我想更改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" / >
但是在运行的时候出现了问题,那就是在地图的左下角没有显示比例尺,请问我应该怎么改才能达到想要的效果,谢谢。
展开
 我来答
龙慧飞
2013-08-28
知道答主
回答量:1
采纳率:0%
帮助的人:1467
展开全部
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");
}
这样就可以了!
拐先难0u
2012-06-19
知道答主
回答量:14
采纳率:0%
帮助的人:1.5万
展开全部
...............鐧惧害鍦板浘

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式