微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ArcGIS API for Silverlight之配准JPG图片地图文字倾斜解决方案

根据实际JPG图片进行配准后,发布的地图,利用ArcGIS API for Silverlight在网页上显示的时候,原先的文字总有倾斜的现象,如何解决

 

图一、配准后有文字倾斜现象的地图

解决方案如下:

    

 <esri:Map x:Name="myMap"  IslogoVisible="False" ZoomDuration="0:00:01" Extent="117.347734033208,30.5097885829245,117.611946391321,30.6766087944341" PanDuration="0:00:01"  ExtentChanged="myMap_ExtentChanged">
            <i:Interaction.Behaviors>
                <esri:MaintainExtentBehavior />
            </i:Interaction.Behaviors>
            <esri:Map.Layers>
                <esri:ArcGISTiledMapServiceLayer ID="dLayer"
                Url="http://XXX.XXX.XX.XXX/ArcGIS/rest/services/XXX/MapServer/"/>
            </esri:Map.Layers>
 </esri:Map>
myMap.Rotation = -8; //设置地图的旋转角度


Map控件的Rotation属性,可以设置整个地图的旋转角度,设置这个就可以了

 

但是问题来了,在使用TextSymbol向地图上添加文字标准信息的时候,向上面这样的方式调整后,文字也发生倾斜了,怎么办?

 

解决办法:利用TextSymbol的ControlTemplate来搞定

 

           <!--TextSymbol控件模板之文字旋转角度-->
            <esri:TextSymbol x:Name="RotateLabelTextSymbol">
                <esri:TextSymbol.ControlTemplate>
                    <ControlTemplate>
                        <TextBlock Text="{Binding Symbol.Text}"   
                               FontFamily="{Binding Symbol.FontFamily}"   
                               FontSize="{Binding Symbol.FontSize}"   
                               Foreground="{Binding Symbol.Foreground}">  
                            <TextBlock.RenderTransform>  
                                <CompositeTransform Rotation="8"/>   
                            </TextBlock.RenderTransform>
                        </TextBlock>
                    </ControlTemplate>
                </esri:TextSymbol.ControlTemplate>
            </esri:TextSymbol>


 

                        //动态添加文本
                            TextSymbol textSymbol = new TextSymbol()
                            {
                                FontFamily = new System.Windows.Media.FontFamily("Microsoft YaHei"),Foreground = new System.Windows.Media.solidColorBrush(ColorRevert.ToColor(tip_Base.JTT_COLOR)),FontSize = 16,Text = item.ZDMC,OffsetX = 15,OffsetY = -15,ControlTemplate = (LayoutRoot.Resources["RotateLabelTextSymbol"] as TextSymbol).ControlTemplate
                            };



 

图二、经程序调整后文字无倾斜的地图

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐