internal const string GOOGLE_URL = "https://maps.googleapis.com/maps/api/js"; //NOXLATE

        internal static Control GetEditor(IEditorService edSvc, IMapGroup group, IMap map)
        {
            switch (map.Type)
            {
            case Type_Google:
                return(new CommercialMapEditor(edSvc, map, new string[] { G_NORMAL_MAP, G_SATELLITE_MAP, G_HYBRID_MAP, G_PHYSICAL_MAP }));

            case Type_Bing:
                return(new CommercialMapEditor(edSvc, map, new string[] { BING_ROAD, BING_AERIAL, BING_AERIAL_WITH_LABELS }));

            case Type_OSM:
                return(new CommercialMapEditor(edSvc, map, new string[] { OSM_MAP_MAPNIK, OSM_MAP_CYCLEMAP, OSM_MAP_TRANSPORTMAP }));

            case Type_Stamen:
                return(new CommercialMapEditor(edSvc, map, new string[] { STAMEN_TONER, STAMEN_TERRAIN, STAMEN_WATERCOLOR }));

            case Type_MapGuide:
                return(new MapGuideEditor(edSvc, group, map));

            case Type_XYZ:
                return(new XYZEditor(edSvc, group, map));

            default:
                return(new GenericEditor(edSvc, map));
            }
        }
示例#2
0
        private void AddContextMenuItems(ILayer addedLayer)
        {
            IMapGroup grp = addedLayer as IMapGroup;
            if (grp != null)
            {
                // map.layerAdded event doesn't fire for groups. Therefore, it's necessary
                // to handle this event separately for groups.
                grp.LayerAdded += Map_LayerAdded;
            }

            if (addedLayer.ContextMenuItems.Exists(item => item.Name == contextMenuItemName))
            {
                // assume menu item already exists. Do nothing.
                return;
            }

            // add context menu item.
            var menuItem = new SymbologyMenuItem(contextMenuItemName, delegate { ShowAttributes(addedLayer as IFeatureLayer); });
            menuItem.Image = Resources.table_16x16;
            var cmi = addedLayer.ContextMenuItems;
            if (cmi.Count > 2)
            {
                addedLayer.ContextMenuItems.Insert(2, menuItem);
            }
            else
            {
                addedLayer.ContextMenuItems.Add(menuItem);
            }
       }
示例#3
0
        private bool InsertBaseMapLayer(IMapGroup group)
        {
            for (var i = 0; i < group.Layers.Count; i++)
            {
                var layer      = group.Layers[i];
                var childGroup = layer as IMapGroup;
                if (childGroup != null)
                {
                    var ins = InsertBaseMapLayer(childGroup);
                    if (ins)
                    {
                        return(true);
                    }
                }

                if (layer is IMapPointLayer || layer is IMapLineLayer)
                {
                    var grp = layer.GetParentItem() as IGroup;
                    if (grp != null)
                    {
                        grp.Insert(i, _baseMapLayer);
                        return(true);
                    }
                }
            }

            return(false);
        }
示例#4
0
        private bool InsertBaseMapLayer(IMapGroup group)
        {
            for (var i = @group.Layers.Count - 1; i >= 0; i--)
            {
                var layer      = @group.Layers[i];
                var childGroup = layer as IMapGroup;
                if (childGroup != null)
                {
                    var ins = InsertBaseMapLayer(childGroup);
                    if (ins)
                    {
                        return(true);
                    }
                }

                if (layer is IMapPointLayer || layer is IMapLineLayer)
                {
                    var grp = layer.GetParentItem() as DotSpatial.Symbology.IGroup;
                    if (grp != null)
                    {
                        grp.Insert(i, this.baseMapLayer);
                        return(true);
                    }
                }
            }
            return(false);
        }
 public XYZEditor(IEditorService edSvc, IMapGroup group, IMap map)
 {
     InitializeComponent();
     _edSvc = edSvc;
     _map   = map;
     _group = group;
     try
     {
         _init = true;
         var optEl = _map.Extension.Content.FirstOrDefault(el => el.Name == "Options");
         if (optEl != null)
         {
             var urls = optEl.ChildNodes.Cast <XmlNode>().Where(n => n.Name == "urls").Select(n => n.InnerText);
             foreach (var url in urls)
             {
                 _urls.Add(new ExternalUrl {
                     URL = url
                 });
             }
         }
         grdUrls.DataSource = _urls;
         txtName.Text       = GetName();
     }
     finally
     {
         _init = false;
     }
 }
示例#6
0
        private int FindPointOrLineLayerIndex(IMapGroup group)
        {
            int index = -1;

            foreach (IMapLayer layer in group.Layers)
            {
                index++;

                IMapGroup childGroup = layer as IMapGroup;
                if (childGroup != null)
                {
                    int groupIndex = FindPointOrLineLayerIndex(childGroup);
                    if (groupIndex != -1)
                    {
                        return(index);
                    }
                }

                if (layer is IMapPointLayer || layer is IMapLineLayer)
                {
                    return(index);
                }
            }
            //if no layer was found, return -1
            return(-1);
        }
示例#7
0
        private void PrintLayer(IMapLayer layer, MapArgs args)
        {
            MapLabelLayer.ClearAllExistingLabels();  //need to do this or labels not drawn on refresh
            IMapGroup group = layer as IMapGroup;

            if (group != null)
            {
                foreach (IMapLayer subLayer in group.Layers)
                {
                    PrintLayer(subLayer, args);
                }
            }

            IMapLayer geoLayer = layer;

            if (geoLayer != null)
            {
                if (geoLayer.UseDynamicVisibility)
                {
                    if (ViewExtents.Width > geoLayer.DynamicVisibilityWidth)
                    {
                        return;  // skip the geoLayer if we are zoomed out too far.
                    }
                }

                if (geoLayer.IsVisible == false)
                {
                    return;
                }

                geoLayer.DrawRegions(args, new List <Extent> {
                    args.GeographicExtents
                });

                IMapFeatureLayer mfl = geoLayer as IMapFeatureLayer;
                if (mfl != null)
                {
                    if (mfl.UseDynamicVisibility)
                    {
                        if (ViewExtents.Width > mfl.DynamicVisibilityWidth)
                        {
                            return;
                        }
                    }
                    if (mfl.ShowLabels && mfl.LabelLayer != null)
                    {
                        if (mfl.LabelLayer.UseDynamicVisibility)
                        {
                            if (ViewExtents.Width > mfl.LabelLayer.DynamicVisibilityWidth)
                            {
                                return;
                            }
                        }
                        mfl.LabelLayer.DrawRegions(args, new List <Extent> {
                            args.GeographicExtents
                        });
                    }
                }
            }
        }
        private MapPointLayer CreateSearchResultLayer(SearchResultItem item, IMapGroup root)
        {
            var myLayer = new MapPointLayer(item.FeatureSet);

            // Get Title of web-server
            var webService = Settings.SearchSettings.Instance.WebServicesSettings.WebServices.FirstOrDefault(
                ws => ws.ServiceCode == item.ServiceCode);
            var defaulLegendText = webService != null? webService.Title : item.ServiceCode;

            // Build legend text
            var legendText = defaulLegendText;
            int nameIndex  = 1;

            while (true)
            {
                // Check if legend text is already used
                var nameUsed = root.Layers.Any(layer => layer.LegendText == legendText);
                if (!nameUsed)
                {
                    break;
                }

                // Create new legend text
                nameIndex++;
                legendText = string.Format("{0} ({1})", defaulLegendText, nameIndex);
            }

            myLayer.LegendText = legendText;
            return(myLayer);
        }
示例#9
0
 /// <summary>
 /// Remove currently selected layer from the Map
 /// </summary>
 private void RemoveLayer_Click(object sender, EventArgs e)
 {
     try
     {
         IMapGroup selectedLayerParent = (IMapGroup)App.Map.Layers.SelectedLayer.GetParentItem();
         selectedLayerParent.Remove(App.Map.Layers.SelectedLayer);
     }
     catch { }
 }
        void IMapSet.RemoveGroup(IMapGroup group)
        {
            var grp = group as MapGroupType;

            if (grp != null)
            {
                this.MapSet.Remove(grp);
                OnPropertyChanged(nameof(MapSet));
            }
        }
        void IMapSet.RemoveGroup(IMapGroup group)
        {
            var grp = group as MapGroupType;

            if (grp != null)
            {
                this.MapSet.Remove(grp);
                OnPropertyChanged("MapSet"); //NOXLATE
            }
        }
示例#12
0
        public MapCtrl(IApplicationDefinition appDef, IMapGroup group, IEditorService edService, IMapWidget widget)
            : this()
        {
            _appDef = appDef;
            _widget = widget;
            _group  = group;
            _edSvc  = edService;
            _edSvc.RegisterCustomNotifier(this);
            _models            = new BindingList <MapModel>();
            lstMaps.DataSource = _models;
            UpdateMapList();
            txtMapId.Text = group.id;

            LoadMapOptions();
        }
示例#13
0
        private static void GetNestedGroups(IMapGroup grp, List<IMapGroup> groupList)
        {
            //initialize the layer list if required
            if (groupList == null) groupList = new List<IMapGroup>();

            //recursive function -- all nested groups and layers are considered
            foreach (var lyr in grp.Layers)
            {
                grp = lyr as IMapGroup;
                if (grp != null)
                {
                    GetNestedGroups(grp, groupList);
                    groupList.Add(grp);
                }
            }
        }
示例#14
0
        public MapGuideEditor(IEditorService edSvc, IMapGroup group, IMap map)
        {
            InitializeComponent();
            _edSvc = edSvc;
            _map   = map;
            _group = group;
            try
            {
                _init = true;
                cmbSelectionColor.ResetColors();
                txtMapDefinition.Text = _map.GetMapDefinition();

                _initialView           = group.InitialView;
                chkSingleTiled.Checked = _map.SingleTile;
                chkOverride.Checked    = (_initialView != null);
                if (_initialView == null)
                {
                    _initialView = group.CreateInitialView(0.0, 0.0, 0.0);
                }

                txtViewX.Text     = _initialView.CenterX.ToString(CultureInfo.InvariantCulture);
                txtViewY.Text     = _initialView.CenterY.ToString(CultureInfo.InvariantCulture);
                txtViewScale.Text = _initialView.Scale.ToString(CultureInfo.InvariantCulture);

                var selOverlay = _map.GetValue("SelectionAsOverlay"); //NOXLATE
                var selColor   = _map.GetValue("SelectionColor");     //NOXLATE

                if (!string.IsNullOrEmpty(selColor))
                {
                    cmbSelectionColor.CurrentColor = Utility.ParseHTMLColorRGBA(selColor.Substring(2)); //Strip the "0x" part
                }
                if (!string.IsNullOrEmpty(selOverlay))
                {
                    bool b = true;
                    if (bool.TryParse(selOverlay, out b))
                    {
                        chkSelectionAsOverlay.Checked = b;
                    }
                }
            }
            finally
            {
                _init = false;
            }
        }
        private void AddMap(IMapGroup group)
        {
            var item = new ListViewItem();

            item.ImageIndex = 0;
            item.Text       = item.Name = group.id;
            item.Tag        = group;
            PropertyChangedEventHandler groupChange = (s, e) =>
            {
                if (e.PropertyName == nameof(group.id))
                {
                    item.Text = group.id;
                }
            };

            group.PropertyChanged += WeakEventHandler.Wrap(groupChange, (eh) => group.PropertyChanged -= eh);
            lstMaps.Items.Add(item);
        }
示例#16
0
        /// <summary>
        /// Recursively adds all the groups to groupList.
        /// </summary>
        /// <param name="grp">Group to search through.</param>
        /// <param name="groupList">The list the groups should be added to.</param>
        private static void GetNestedGroups(IMapGroup grp, List <IMapGroup> groupList)
        {
            // initialize the layer list if required
            if (groupList == null)
            {
                groupList = new List <IMapGroup>();
            }

            // recursive function -- all nested groups and layers are considered
            foreach (var lyr in grp.Layers)
            {
                grp = lyr as IMapGroup;
                if (grp != null)
                {
                    GetNestedGroups(grp, groupList);
                    groupList.Add(grp);
                }
            }
        }
示例#17
0
        private static void GetNestedLayers(IMapGroup grp, List<ILayer> layerList)
        {
            //initialize the layer list if required
            if (layerList == null) layerList = new List<ILayer>();

            //recursive function -- all nested groups and layers are considered
            foreach (IMapLayer lyr in grp.Layers)
            {
                grp = lyr as IMapGroup;
                if (grp != null)
                {
                    GetNestedLayers(grp, layerList);
                }
                else
                {
                    layerList.Add(lyr);
                }
            }
        }
示例#18
0
        private static void GetNestedLayers(IMapGroup grp, List <ILayer> layerList)
        {
            //initialize the layer list if required
            if (layerList == null)
            {
                layerList = new List <ILayer>();
            }

            //recursive function -- all nested groups and layers are considered
            foreach (IMapLayer lyr in grp.Layers)
            {
                grp = lyr as IMapGroup;
                if (grp != null)
                {
                    GetNestedLayers(grp, layerList);
                }
                else
                {
                    layerList.Add(lyr);
                }
            }
        }
示例#19
0
 /// <summary>
 /// Recursively adds all the layers of the given type that are found in group to layerList.
 /// </summary>
 /// <typeparam name="T">Type of the layers that should be included.</typeparam>
 /// <param name="group">Group that contains the layers.</param>
 /// <param name="layerList">The list the layers should be added to.</param>
 private static void GetNestedLayers <T>(IMapGroup group, List <T> layerList) where T : class
 {
     if (layerList == null)
     {
         layerList = new List <T>();
     }
     foreach (var layer in group.Layers)
     {
         var grp = layer as IMapGroup;
         if (grp != null)
         {
             GetNestedLayers <T>(grp, layerList);
         }
         else
         {
             var tlayer = (layer) as T;
             if (tlayer != null)
             {
                 layerList.Add(tlayer);
             }
         }
     }
 }
示例#20
0
        private int FindPointOrLineLayerIndex(IMapGroup group)
        {
            int index = -1;

            foreach (IMapLayer layer in group.Layers)
            {
                index++;

                IMapGroup childGroup = layer as IMapGroup;
                if (childGroup != null)
                {
                    int groupIndex = FindPointOrLineLayerIndex(childGroup);
                    if (groupIndex != -1) return index;
                }

                if (layer is IMapPointLayer || layer is IMapLineLayer)
                {
                    return index;
                }
            }
            //if no layer was found, return -1
            return -1;
        }
示例#21
0
文件: MapCtrl.cs 项目: kanbang/Colt
        public MapCtrl(IApplicationDefinition appDef, IMapGroup group, IEditorService edService, IMapWidget widget)
            : this()
        {
            _edsvc = edService;
            _edsvc.RegisterCustomNotifier(this);
            _appDef = appDef;
            _group = group;
            _widget = widget;

            foreach (var map in group.Map)
            {
                if (map.Type.Equals("MapGuide")) //NOXLATE
                {
                    _map = map;
                }
                else
                {
                    var cmsOpts = map.CmsMapOptions;
                    if (cmsOpts != null)
                    {
                        switch (cmsOpts.Type)
                        {
                            case G_HYBRID_MAP:
                                chkGoogHybrid.Checked = true;
                                break;
                            case G_NORMAL_MAP:
                                chkGoogStreets.Checked = true;
                                break;
                            case G_SATELLITE_MAP:
                                chkGoogSatellite.Checked = true;
                                break;
                            case G_PHYSICAL_MAP:
                                chkGoogTerrain.Checked = true;
                                break;
                            case BING_AERIAL:
                                chkBingSatellite.Checked = true;
                                break;
                            case BING_HYBRID:
                                chkBingHybrid.Checked = true;
                                break;
                            case BING_ROAD:
                                chkBingStreets.Checked = true;
                                break;
                            case YAHOO_MAP_HYB:
                                chkYahooHybrid.Checked = true;
                                break;
                            case YAHOO_MAP_REG:
                                chkYahooStreets.Checked = true;
                                break;
                            case YAHOO_MAP_SAT:
                                chkYahooSatellite.Checked = true;
                                break;
                        }
                    }
                }
            }

            string googUrl = _appDef.GetValue("GoogleScript"); //NOXLATE
            string yahooUrl = _appDef.GetValue("YahooScript"); //NOXLATE

            if (!string.IsNullOrEmpty(yahooUrl))
            {
                txtYahooApiKey.Text = yahooUrl.Substring(YAHOO_URL.Length);
            }
            EvaluateCmsStates();

            _initialView = _group.InitialView;
            _cmsMaps = new Dictionary<string, CmsMap>();
            chkOverride.Checked = (_initialView != null);

            InitCmsMaps(group);
            Debug.Assert(_cmsMaps.Count == 13);

            if (_initialView == null)
                _initialView = group.CreateInitialView(0.0, 0.0, 0.0);

            txtViewX.Text = _initialView.CenterX.ToString(CultureInfo.InvariantCulture);
            txtViewY.Text = _initialView.CenterY.ToString(CultureInfo.InvariantCulture);
            txtViewScale.Text = _initialView.Scale.ToString(CultureInfo.InvariantCulture);

            txtViewX.TextChanged += (s, e) =>
            {
                double d;
                if (double.TryParse(txtViewX.Text, out d))
                {
                    _initialView.CenterX = d;
                    OnResourceChanged();
                }
            };
            txtViewY.TextChanged += (s, e) =>
            {
                double d;
                if (double.TryParse(txtViewY.Text, out d))
                {
                    _initialView.CenterY = d;
                    OnResourceChanged();
                }
            };
            txtViewScale.TextChanged += (s, e) =>
            {
                double d;
                if (double.TryParse(txtViewScale.Text, out d))
                {
                    _initialView.Scale = d;
                    OnResourceChanged();
                }
            };

            TextBoxBinder.BindText(txtMapId, group, "id"); //NOXLATE

            txtMapDefinition.Text = _map.GetMapDefinition();
            txtMapDefinition.TextChanged += (s, e) =>
            {
                _map.SetMapDefinition(txtMapDefinition.Text);
                OnResourceChanged();
            };

            CheckBoxBinder.BindChecked(chkSingleTiled, _map, "SingleTile"); //NOXLATE

            var selOverlay = _map.GetValue("SelectionAsOverlay"); //NOXLATE
            var selColor = _map.GetValue("SelectionColor"); //NOXLATE

            if (!string.IsNullOrEmpty(selColor))
                cmbSelectionColor.CurrentColor = Utility.ParseHTMLColorRGBA(selColor.Substring(2)); //Strip the "0x" part

            if (!string.IsNullOrEmpty(selOverlay))
            {
                bool b = true;
                if (bool.TryParse(selOverlay, out b))
                    chkSelectionAsOverlay.Checked = b;
            }

            cmbSelectionColor.SelectedIndexChanged += (s, e) =>
            {
                _map.SetValue("SelectionColor", "0x" + Utility.SerializeHTMLColorRGBA(cmbSelectionColor.CurrentColor, true)); //NOXLATE
                OnResourceChanged();
            };
            chkSelectionAsOverlay.CheckedChanged += (s, e) =>
            {
                _map.SetValue("SelectionAsOverlay", chkSelectionAsOverlay.Checked.ToString().ToLower()); //NOXLATE
                OnResourceChanged();
            };

            _noEvents = false;
        }
示例#22
0
 private void AddMap(IMapGroup group)
 {
     var item = new ListViewItem();
     item.ImageIndex = 0;
     item.Text = item.Name = group.id;
     item.Tag = group;
     group.PropertyChanged += (s, e) =>
     {
         if (e.PropertyName == "id") //NOXLATE
             item.Text = group.id;
     };
     lstMaps.Items.Add(item);
 }
示例#23
0
        private MapPointLayer CreateSearchResultLayer(SearchResultItem item, IMapGroup root)
        {
            Debug.WriteLine("Starting method CreateSearchResultLayer");
            var myLayer = new MapPointLayer(item.FeatureSet);

            // Get Title of web-server
            var webService = _searchSettings.WebServicesSettings.WebServices.FirstOrDefault(
                ws => ws.ServiceCode == item.ServiceCode);
            var defaulLegendText = webService != null? webService.Title : item.ServiceCode;

            // Build legend text
            var legendText = defaulLegendText;
            int nameIndex = 1;
            Debug.WriteLine("Starting while loop.");
            while(true)
            {
                // Check if legend text is already used
                var nameUsed = root.Layers.Any(layer => layer.LegendText == legendText);
                if (!nameUsed)
                {
                    Debug.WriteLine("Exiting while loop");
                    break;
                }

                // Create new legend text
                nameIndex++;
                legendText = string.Format("{0} ({1})", defaulLegendText, nameIndex);
            }

            myLayer.LegendText = legendText;
            Debug.WriteLine("Returning myLayer");
            return myLayer;
        }
示例#24
0
 void IMapSet.RemoveGroup(IMapGroup group)
 {
     var grp = group as MapGroupType;
     if (grp != null)
     {
         this.MapSet.Remove(grp);
         OnPropertyChanged("MapSet"); //NOXLATE
     }
 }
示例#25
0
 /// <summary>
 /// Creates the Collection in the situation where the map frame is not the immediate parent,
 /// but rather the group is the immediate parent, while frame is the ultimate map frame that
 /// contains this geo layer collection.
 /// </summary>
 /// <param name="frame"></param>
 /// <param name="group"></param>
 /// <param name="progressHandler"></param>
 public MapLayerCollection(IMapFrame frame, IMapGroup group, IProgressHandler progressHandler)
 {
     base.MapFrame    = frame;
     ParentGroup      = group;
     _progressHandler = progressHandler;
 }
示例#26
0
 /// <summary>
 /// Creates the Collection in the situation where the map frame is not the immediate parent,
 /// but rather the group is the immediate parent, while frame is the ultimate map frame that
 /// contains this geo layer collection.
 /// </summary>
 /// <param name="frame"></param>
 /// <param name="group"></param>
 /// <param name="progressHandler"></param>
 public MapLayerCollection(IMapFrame frame, IMapGroup group, IProgressHandler progressHandler)
 {
     base.MapFrame = frame;
     ParentGroup = group;
     _progressHandler = progressHandler;
 }
        internal static IEnumerable <EditorInvoker> GetAvailableOptions(Version version, IMapGroup group)
        {
            yield return(new EditorInvoker()
            {
                Name = "MapGuide", //NOXLATE
                Action = () =>
                {
                    return group.CreateMapGuideEntry("");
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsGeneric,
                Action = group.CreateGenericEntry
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsGoogleStreets,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_Google, false, Strings.CmsGoogleStreets, G_NORMAL_MAP);
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsGoogleSatellite,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_Google, false, Strings.CmsGoogleSatellite, G_SATELLITE_MAP);
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsGoogleHybrid,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_Google, false, Strings.CmsGoogleHybrid, G_HYBRID_MAP);
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsGooglePhysical,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_Google, false, Strings.CmsGooglePhysical, G_PHYSICAL_MAP);
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsBingStreet,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_Bing, false, Strings.CmsBingStreet, BING_ROAD);
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsBingSatellite,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_Bing, false, Strings.CmsBingSatellite, BING_AERIAL);
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsBingAerialsWithLabels,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_Bing, false, Strings.CmsBingAerialsWithLabels, BING_AERIAL_WITH_LABELS);
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsOsm,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_OSM, false, Strings.CmsOsm, OSM_MAP_MAPNIK);
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsOsmCycle,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_OSM, false, Strings.CmsOsmCycle, OSM_MAP_CYCLEMAP);
                }
            });

            yield return(new EditorInvoker()
            {
                Name = Strings.CmsOsmTransport,
                Action = () =>
                {
                    return group.CreateCmsMapEntry(Type_OSM, false, Strings.CmsOsmTransport, OSM_MAP_TRANSPORTMAP);
                }
            });

            if (version.Major >= 3) //MGOS 3.0 or higher
            {
                yield return(new EditorInvoker()
                {
                    Name = Strings.CmsStamenToner,
                    Action = () =>
                    {
                        return group.CreateCmsMapEntry(Type_Stamen, false, Strings.CmsStamenToner, STAMEN_TONER);
                    }
                });

                yield return(new EditorInvoker()
                {
                    Name = Strings.CmsStamenTerrain,
                    Action = () =>
                    {
                        return group.CreateCmsMapEntry(Type_Stamen, false, Strings.CmsStamenTerrain, STAMEN_TERRAIN);
                    }
                });

                yield return(new EditorInvoker()
                {
                    Name = Strings.CmsStamenWaterColor,
                    Action = () =>
                    {
                        return group.CreateCmsMapEntry(Type_Stamen, false, Strings.CmsStamenWaterColor, STAMEN_WATERCOLOR);
                    }
                });

                yield return(new EditorInvoker()
                {
                    Name = Strings.CmsXYZ,
                    Action = () =>
                    {
                        return group.CreateCmsMapEntry(Type_XYZ, false, Strings.CmsXYZ, "XYZ");
                    }
                });
            }
        }
示例#28
0
        private int FindPointOrLineLayerIndex(IMapGroup group)
        {
            int index = -1;
          
            foreach (IMapLayer layer in group.Layers)
            {
                index++;

                IMapGroup childGroup = layer as IMapGroup;
                if (childGroup != null)
                {
                    int groupIndex = FindPointOrLineLayerIndex(childGroup);
                    if (groupIndex != -1) return index;
                }

                if (layer is IMapPointLayer || layer is IMapLineLayer)
                {
                    
                    if (layer != null)
                        {
                            IGroup grp = layer.GetParentItem() as IGroup;
                        
                            if (grp != null)
                            {
                                grp.Insert(index, _baseMapLayer);
                            }
                          
                        }
                      
                    return index;
                }
            }
            //if no layer was found, return -1
            return -1;
        }
示例#29
0
        private bool InsertBaseMapLayer(IMapGroup group)
        {
            for (var i = 0; i < @group.Layers.Count; i++)
            {
                var layer = @group.Layers[i];
                var childGroup = layer as IMapGroup;
                if (childGroup != null)
                {
                    var ins = InsertBaseMapLayer(childGroup);
                    if (ins) return true;
                }

                if (layer is IMapPointLayer || layer is IMapLineLayer)
                {
                    var grp = layer.GetParentItem() as IGroup;
                    if (grp != null)
                    {
                        grp.Insert(i, _baseMapLayer);
                        return true;
                    }
                }
            }
            return false;
        }
示例#30
0
文件: MapCtrl.cs 项目: kanbang/Colt
        private void InitCmsMaps(IMapGroup group)
        {
            foreach (var map in group.Map)
            {
                var opts = map.CmsMapOptions;
                if (opts != null && !_cmsMaps.ContainsKey(opts.Type))
                {
                    _cmsMaps[opts.Type] = new CmsMap(map) { IsEnabled = true };
                }
            }

            //Check for maps unaccounted for, these will be disabled
            if (!_cmsMaps.ContainsKey(G_HYBRID_MAP))
                _cmsMaps[G_HYBRID_MAP] = new CmsMap(group.CreateCmsMapEntry(Type_Google, true, Strings.CmsGoogleHybrid, G_HYBRID_MAP)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(G_NORMAL_MAP))
                _cmsMaps[G_NORMAL_MAP] = new CmsMap(group.CreateCmsMapEntry(Type_Google, true, Strings.CmsGoogleStreets, G_NORMAL_MAP)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(G_SATELLITE_MAP))
                _cmsMaps[G_SATELLITE_MAP] = new CmsMap(group.CreateCmsMapEntry(Type_Google, true, Strings.CmsGoogleSatellite, G_SATELLITE_MAP)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(G_PHYSICAL_MAP))
                _cmsMaps[G_PHYSICAL_MAP] = new CmsMap(group.CreateCmsMapEntry(Type_Google, true, Strings.CmsGooglePhysical, G_PHYSICAL_MAP)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(YAHOO_MAP_HYB))
                _cmsMaps[YAHOO_MAP_HYB] = new CmsMap(group.CreateCmsMapEntry(Type_Yahoo, true, Strings.CmsYahooHybrid, YAHOO_MAP_HYB)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(YAHOO_MAP_REG))
                _cmsMaps[YAHOO_MAP_REG] = new CmsMap(group.CreateCmsMapEntry(Type_Yahoo, true, Strings.CmsYahooStreet, YAHOO_MAP_REG)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(YAHOO_MAP_SAT))
                _cmsMaps[YAHOO_MAP_SAT] = new CmsMap(group.CreateCmsMapEntry(Type_Yahoo, true, Strings.CmsYahooSatellite, YAHOO_MAP_SAT)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(BING_ROAD))
                _cmsMaps[BING_ROAD] = new CmsMap(group.CreateCmsMapEntry(Type_Bing, true, Strings.CmsBingStreet, BING_ROAD)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(BING_AERIAL))
                _cmsMaps[BING_AERIAL] = new CmsMap(group.CreateCmsMapEntry(Type_Bing, true, Strings.CmsBingSatellite, BING_AERIAL)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(BING_HYBRID))
                _cmsMaps[BING_HYBRID] = new CmsMap(group.CreateCmsMapEntry(Type_Bing, true, Strings.CmsBingHybrid, BING_HYBRID)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(OSM_MAP_MAPNIK))
                _cmsMaps[OSM_MAP_MAPNIK] = new CmsMap(group.CreateCmsMapEntry(Type_OSM, true, Strings.CmsOsm, OSM_MAP_MAPNIK)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(OSM_MAP_TRANSPORTMAP))
                _cmsMaps[OSM_MAP_TRANSPORTMAP] = new CmsMap(group.CreateCmsMapEntry(Type_OSM, true, Strings.CmsOsmTransport, OSM_MAP_TRANSPORTMAP)) { IsEnabled = false };
            if (!_cmsMaps.ContainsKey(OSM_MAP_CYCLEMAP))
                _cmsMaps[OSM_MAP_CYCLEMAP] = new CmsMap(group.CreateCmsMapEntry(Type_OSM, true, Strings.CmsOsmCycle, OSM_MAP_CYCLEMAP)) { IsEnabled = false };
        }