解决ArcGIS API for Silverlight 加载地图的内外网访问问题

先上一个类,如下:


public class BaseClass
{
        public static string getFullUri(string oldUriString)
        {
            string newUriString = oldUriString;
            //处理相对地址============================================================
            if (newUriString[0] == '/')
            {
                string shost = System.Windows.Browser.HtmlPage.Document.DocumentUri.Host;
                int sport = System.Windows.Browser.HtmlPage.Document.DocumentUri.Port;
                newUriString = "http://" + shost + (sport == 80 ? "" : ":" + sport.ToString()) + newUriString;
            }


            if (!newUriString.StartsWith("http"))
            {
                string shost = System.Windows.Browser.HtmlPage.Document.DocumentUri.Host;
                int sport = System.Windows.Browser.HtmlPage.Document.DocumentUri.Port;
                string slocal = System.Windows.Browser.HtmlPage.Document.DocumentUri.LocalPath;
                slocal = slocal.Substring(0, slocal.LastIndexOf('/'));
                Uri turi = new Uri("http://" + shost + (sport == 80 ? "" : ":" + sport.ToString()) + slocal + "/" + newUriString, UriKind.Absolute);
                newUriString = turi.ToString();
            }
            return newUriString;
        }
   }
 
 <esri:Map>
       <esri:Map.Layers>
                <esri:ArcGISTiledMapServiceLayer ID="BaseLayer" Url="/arcgis/rest/services/HSDQ/MapServer/"/>
       </esri:Map.Layers>
 </esri:Map>
 

 public MainPage()
 {
      InitializeComponent();
      ArcGISTiledMapServiceLayer layer = myMap.Layers["BaseLayer"] as ArcGISTiledMapServiceLayer;
      layer.Url = BaseClass.getFullUri(layer.Url);
}



这样就可以解决内网IP地址访问和外网IP地址同样访问的问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值