コード例 #1
0
        protected override void ChangeMap()
        {
            if (base._map != null)
            {
                int i;
                if (int.TryParse(_hiddenServiceName.ToCharArray()[_hiddenServiceName.Length - 1].ToString(), out i))//if last char of _hiddenServiceName is int
                {
                    ServiceManager.DeleteService(_port, _hiddenServiceName);
                }
                else
                {
                    _hiddenServiceName = _hiddenServiceName + ServiceManager.PortEntities[_port].ServiceProvider.Services.Count(service => service.Key.Contains(_hiddenServiceName)).ToString();//INTERNALDOWNLOAD0,INTERNALDOWNLOAD1...
                }
                _pbsService = new PBSService(_hiddenServiceName, "", _port, SelectedDatasourceType, "", false, true, true, VisualStyle.None, null);

                ServiceManager.PortEntities[_port].ServiceProvider.Services.Add(_pbsService.ServiceName, _pbsService);
                _map.Layers.RemoveAt(0);
                BaiduTileLayer l = new BaiduTileLayer()
                {
                    baseUrl = _pbsService.UrlArcGIS
                };
                _map.Layers.Insert(0, l);
                Util.Envelope initial = _pbsService.DataSource.TilingScheme.InitialExtent;
                initalExtend = new ESRI.ArcGIS.Client.Geometry.Envelope(initial.XMin, initial.YMin, initial.XMax, initial.YMax);
            }
        }
コード例 #2
0
 private void ChangeMap()
 {
     if (_map != null)
     {
         int i;
         if (int.TryParse(_hiddenServiceName.ToCharArray()[_hiddenServiceName.Length - 1].ToString(), out i))//if last char of _hiddenServiceName is int
         {
             ServiceManager.DeleteService(_port, _hiddenServiceName);
         }
         else
         {
             _hiddenServiceName = _hiddenServiceName + ServiceManager.PortEntities[_port].ServiceProvider.Services.Count(service => service.Key.Contains(_hiddenServiceName)).ToString();//INTERNALDOWNLOAD0,INTERNALDOWNLOAD1...
         }
         _pbsService = new PBSService(_hiddenServiceName, "", _port, SelectedDatasourceType, false, true, true, VisualStyle.None, null);
         ServiceManager.PortEntities[_port].ServiceProvider.Services.Add(_pbsService.ServiceName, _pbsService);
         _map.Layers.RemoveAt(0);
         ArcGISTiledMapServiceLayer l = new ArcGISTiledMapServiceLayer()
         {
             Url = _pbsService.UrlArcGIS
         };
         _map.Layers.Insert(0, l);
     }
 }
コード例 #3
0
        public PreviewWindow(PBSService service)
        {
            InitializeComponent();

            _service = service;
            //for MAC and mbtiles and those whose wkid=102100 and which doesn't has initialextent
            if ((service.DataSource.Type == DataSourceTypePredefined.MobileAtlasCreator.ToString() && Math.Abs(service.DataSource.TilingScheme.InitialExtent.XMin + 20037508.3427892) < 0.1) ||
                (service.DataSource.Type == DataSourceTypePredefined.MBTiles.ToString() && Math.Abs(service.DataSource.TilingScheme.InitialExtent.XMin + 20037508.3427892) < 0.1) ||
                (service.DataSource.Type == DataSourceTypePredefined.RasterImage.ToString() && (service.DataSource.TilingScheme.WKID == 102100 || service.DataSource.TilingScheme.WKID == 3857)) ||
                (service.DataSource.Type == DataSourceTypePredefined.ArcGISDynamicMapService.ToString() && (service.DataSource.TilingScheme.WKID == 102100 || service.DataSource.TilingScheme.WKID == 3857)))
            {
                ArcGISTiledMapServiceLayer streetLayer = new ArcGISTiledMapServiceLayer()
                {
                    Url = "http://www.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineStreetGray/MapServer"
                };
                streetLayer.InitializationFailed += (s, a) =>
                {
                    string innerMessage = (s as ArcGISTiledMapServiceLayer).InitializationFailure.InnerException == null ? string.Empty : (s as ArcGISTiledMapServiceLayer).InitializationFailure.InnerException.Message;
                    string message      = "ArcGIS Online World Street Map" + "\r\n" + (s as ArcGISTiledMapServiceLayer).InitializationFailure.Message;
                    if (innerMessage != string.Empty)
                    {
                        message += "\r\n" + innerMessage;
                    }
                    MessageBox.Show(message);
                };
                map1.Layers.Add(streetLayer);

                CheckBox chkbox = new CheckBox()
                {
                    Content    = FindResource("tbDisplayBasemap").ToString(),
                    FontSize   = 20,
                    FontFamily = new FontFamily("Bold"),
                    Foreground = new SolidColorBrush(Colors.White)
                };
                Binding b = new Binding("Visible");
                b.Source = map1.Layers[0];
                chkbox.SetBinding(CheckBox.IsCheckedProperty, b);
                StackPanel sp = new StackPanel()
                {
                    Background          = new SolidColorBrush(Colors.DodgerBlue),
                    VerticalAlignment   = VerticalAlignment.Top,
                    HorizontalAlignment = HorizontalAlignment.Right,
                };
                sp.Children.Add(chkbox);
                GridLeft.Children.Add(sp);
            }
            //add PBS Service layer
            ArcGISTiledMapServiceLayer pbsLayer = new ArcGISTiledMapServiceLayer()
            {
                Url = service.UrlArcGIS, ID = "PBSLayer"
            };

            pbsLayer.InitializationFailed += (s, a) => {
                MessageBox.Show("PBSLayer" + "\r\n" + (s as ArcGISTiledMapServiceLayer).InitializationFailure.Message + "\r\n" + (s as ArcGISTiledMapServiceLayer).InitializationFailure.InnerException.Message);
            };
            //pbsLayer.Initialized+=(s,a)=>{
            //    map1.ZoomTo(pbsLayer.InitialExtent);
            //};
            //add grid
            _service.DataSource.TileLoaded += new EventHandler <TileLoadEventArgs>(pbsLayer_TileLoaded);
            map1.Layers.Add(pbsLayer);
            _gLayer = new GraphicsLayer();
            map1.Layers.Add(_gLayer);
            _gLayer.Visible = false;

            serviceDetail1.DataContext = service;
            //set LODs's text
            StringBuilder sbLODs = new StringBuilder();

            foreach (LODInfo lod in service.DataSource.TilingScheme.LODs)
            {
                sbLODs.Append("Level:" + lod.LevelID + ", Scale:" + lod.Scale + ", Resolution:" + lod.Resolution + "\r\n");
            }
            string str = sbLODs.ToString();

            str = str.Remove(str.Length - 2);//remove last \r \n
            serviceDetail1.tbTSLODs.Text = str;
        }
コード例 #4
0
 public MemcachedService(bool isChecked, PBSService service)
 {
     IsChecked  = isChecked;
     PBSService = service;
 }