private void deleteSelectedBaseMap(object sender, MessageBoxClosedArgs e) { if (e.Result != MessageBoxResult.OK) { return; } BaseMapInfo currentSelectedBaseMap = BaseMapsList.SelectedItem as BaseMapInfo; if (currentSelectedBaseMap == null) { return; } int currIndex = BaseMaps.IndexOf(currentSelectedBaseMap); BaseMaps.Remove(currentSelectedBaseMap); if (currIndex > BaseMaps.Count - 1) // if last item is being deleted { currIndex = BaseMaps.Count - 1; } if (currIndex > -1) // select the next item in the list { BaseMapsList.SelectedIndex = currIndex; } }
public DataSource CreateDataSourceForBaseMapType(BaseMapInfo baseMapInfo) { DataSource dataSource = CreateDataSourceForBaseMapType(baseMapInfo.BaseMapType); if (baseMapInfo.BaseMapType == BaseMapType.ArcGISServer) { ((ArcGISServerDataSource)dataSource).ProxyUrl = baseMapInfo.ProxyUrl; } return(dataSource); }
internal void SelectBaseMap(BaseMapInfo baseMap) { if (baseMap == null) { throw new ArgumentNullException("baseMap"); } if (BaseMapsList != null) { BaseMapsList.SelectedItem = baseMap; } }
private void BaseMapList_SelectionChanged(object sender, SelectionChangedEventArgs e) { BaseMapInfo baseMapInfo = BaseMapsList.SelectedItem as BaseMapInfo; if (baseMapInfo == null) { return; } OnBaseMapChanged(new BaseMapChangedEventArgs() { BaseMapInfo = baseMapInfo }); }
private void onAddNewBaseMapCommand(object parameter) { if (BaseMaps == null || BaseMapsList == null) { return; } BaseMapInfo newBaseMap = null; // Clone current selected base map BaseMapInfo currentSelectedBaseMap = BaseMapsList.SelectedItem as BaseMapInfo; if (currentSelectedBaseMap == null) { currentSelectedBaseMap = BaseMaps.FirstOrDefault(); } if (currentSelectedBaseMap != null) { newBaseMap = new BaseMapInfo() { BaseMapType = currentSelectedBaseMap.BaseMapType, DisplayName = ESRI.ArcGIS.Mapping.Controls.Resources.Strings.NewBasemap, ThumbnailImage = currentSelectedBaseMap.ThumbnailImage, BingMapsAppID = BingMapsAppID }; if (currentSelectedBaseMap.BaseMapType == BaseMapType.BingMaps || currentSelectedBaseMap.BaseMapType == BaseMapType.OpenStreetMap) { // Keep same name (needed) newBaseMap.Name = currentSelectedBaseMap.Name; newBaseMap.Url = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"; } else { newBaseMap.Name = Guid.NewGuid().ToString("N"); // needs to be unique for AGS newBaseMap.Url = currentSelectedBaseMap.Url; } } else { newBaseMap = new BaseMapInfo() { BaseMapType = BaseMapType.ArcGISServer, Name = Guid.NewGuid().ToString("N"), // needs to be unique for AGS DisplayName = ESRI.ArcGIS.Mapping.Controls.Resources.Strings.NewBasemap, ThumbnailImage = "Images/basemaps/agol_imagery.png", Url = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer", }; } BaseMaps.Add(newBaseMap); BaseMapsList.SelectedItem = newBaseMap; }
public override Client.TiledMapServiceLayer CreateBaseMapLayer(BaseMapInfo baseMapInfo) { ArcGISTiledMapServiceLayer agsLayer = new ArcGISTiledMapServiceLayer() { Url = baseMapInfo.Url }; // Apply proxy if necessary if (baseMapInfo.UseProxy) { agsLayer.ProxyURL = ProxyUrl; LayerExtensions.SetUsesProxy(agsLayer, true); } return(agsLayer); }
public override void OnApplyTemplate() { if (ConfigureButton != null) { ConfigureButton.Click -= ConfigureButton_Click; } if (BaseMapsList != null) { BaseMapsList.SelectionChanged -= BaseMapList_SelectionChanged; } base.OnApplyTemplate(); BaseMapsList = GetTemplateChild(PART_BASEMAPSLIST) as ListBox; BaseMaps = BaseMaps ?? getBaseMapsFromView(); if (BaseMapsList != null) { if (BaseMaps != null) { ObservableCollection <BaseMapInfo> filteredBasemaps = FilterBingBasemaps(); BaseMapsList.ItemsSource = filteredBasemaps; if (!string.IsNullOrEmpty(CurrentBaseMapName)) { BaseMapInfo baseMapInfo = filteredBasemaps.FirstOrDefault <BaseMapInfo>(b => b.Name == CurrentBaseMapName); if (baseMapInfo != null) { BaseMapsList.SelectedItem = baseMapInfo; } } } BaseMapsList.SelectionChanged += BaseMapList_SelectionChanged; } ConfigureButton = GetTemplateChild(PART_CONFIGUREBUTTON) as Button; if (ConfigureButton != null) { ConfigureButton.Click += ConfigureButton_Click; } if (InitCompleted != null) { InitCompleted(this, EventArgs.Empty); } }
public override void SwitchBaseMapLayer(Client.Layer oldLayer, BaseMapInfo newBaseMapInfo) { Client.ArcGISTiledMapServiceLayer tiledLayer = oldLayer as Client.ArcGISTiledMapServiceLayer; if (tiledLayer != null) { // Apply proxy if one is in use or clear it if not if (newBaseMapInfo.UseProxy) { tiledLayer.ProxyURL = ProxyUrl; LayerExtensions.SetUsesProxy(tiledLayer, true); } else { tiledLayer.ProxyURL = null; LayerExtensions.SetUsesProxy(tiledLayer, false); } tiledLayer.Url = newBaseMapInfo.Url; tiledLayer.SetValue(ESRI.ArcGIS.Client.Extensibility.MapApplication.LayerNameProperty, newBaseMapInfo.DisplayName); } }
private string getCurrentBaseMapName() { ObservableCollection <BaseMapInfo> baseMaps = getBaseMapsFromView(); if (View.Instance == null || View.Instance.Map == null || View.Instance.Map.Layers.Count < 1 || baseMaps == null) { return(null); } TileLayer bingLayer = View.Instance.Map.Layers[0] as TileLayer; if (bingLayer != null) { switch (bingLayer.LayerStyle) { case TileLayer.LayerType.Road: return("Roads"); case TileLayer.LayerType.Aerial: return("Aerial"); case TileLayer.LayerType.AerialWithLabels: return("Hybrid"); } } ArcGISTiledMapServiceLayer agsLayer = View.Instance.Map.Layers[0] as ArcGISTiledMapServiceLayer; if (agsLayer != null) { if (baseMaps != null) { BaseMapInfo baseMap = baseMaps.FirstOrDefault <BaseMapInfo>(b => b.Url == agsLayer.Url); if (baseMap != null) { return(baseMap.Name); } } } return(null); }
private void onMoveBaseMapDownCommand(object parameter) { BaseMapInfo currentSelectedBaseMap = BaseMapsList.SelectedItem as BaseMapInfo; if (currentSelectedBaseMap == null) { return; } int pos = BaseMaps.IndexOf(currentSelectedBaseMap); if (pos < 0 || pos >= BaseMaps.Count) { return; } BaseMaps.RemoveAt(pos); BaseMaps.Insert(pos + 1, currentSelectedBaseMap); // Preserve selection BaseMapsList.SelectedIndex = pos + 1; refreshMoveCommands(); }
void baseMapInfo_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { BaseMapInfo baseMap = sender as BaseMapInfo; if (e.PropertyName == "BaseMapType") { BaseMapType _baseMapType = baseMap.BaseMapType; if (_baseMapType == Core.BaseMapType.BingMaps) { baseMap.Url = "http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc"; baseMap.Name = "Roads"; } else if (_baseMapType == Core.BaseMapType.OpenStreetMap) { baseMap.Url = "http://OpenStreetMap.org"; baseMap.Name = "Mapnik"; } else { baseMap.Url = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"; // Name is not important for AGS Server layers } } }
public abstract Client.TiledMapServiceLayer CreateBaseMapLayer(BaseMapInfo baseMapInfo);
public abstract void SwitchBaseMapLayer(Client.Layer oldLayer, BaseMapInfo newBaseMapInfo);
public abstract Client.TiledMapServiceLayer CreateBaseMapLayer(BaseMapInfo baseMapInfo);
public abstract void SwitchBaseMapLayer(Client.Layer oldLayer, BaseMapInfo newBaseMapInfo);
public void LoadConfiguration(string configData) { if (string.IsNullOrEmpty(configData)) { return; } try { XDocument xDoc = XDocument.Parse(configData); ObservableCollection <BaseMapInfo> baseMaps = new ObservableCollection <BaseMapInfo>(); XElement rootNode = xDoc.Element("BaseMaps"); if (rootNode != null) { IEnumerable <XElement> baseMapNodes = from elem in rootNode.Elements("BaseMapInfo") select elem; foreach (XElement baseMapNode in baseMapNodes) { BaseMapInfo baseMapInfo = new BaseMapInfo(); XElement DisplayName = baseMapNode.Element("DisplayName"); if (DisplayName != null) { baseMapInfo.DisplayName = DisplayName.Value; } XElement Name = baseMapNode.Element("Name"); if (Name != null) { baseMapInfo.Name = Name.Value; } XElement ThumbnailImage = baseMapNode.Element("ThumbnailImage"); if (ThumbnailImage != null) { baseMapInfo.ThumbnailImage = ThumbnailImage.Value; } XElement BaseMapType = baseMapNode.Element("BaseMapType"); if (BaseMapType != null) { BaseMapType outValue; if (Enum.TryParse <BaseMapType>(BaseMapType.Value, out outValue)) { baseMapInfo.BaseMapType = outValue; } } XElement Url = baseMapNode.Element("Url"); if (Url != null) { baseMapInfo.Url = Url.Value; } baseMaps.Add(baseMapInfo); // Get whether proxy is used XElement UseProxy = baseMapNode.Element("UseProxy"); if (UseProxy != null) { bool useProxy; bool.TryParse(UseProxy.Value, out useProxy); baseMapInfo.UseProxy = useProxy; } } BaseMaps = baseMaps; } } catch { } }