Exemplo n.º 1
0
        async void gpAircraftComms_JobCompleted(object sender, JobInfoEventArgs e)
        {
            try
            {
                if (_graphicsLayerPoly != null)
                {
                    _graphicsLayerPoly.Graphics.Clear();
                }

                Geoprocessor gpAircraftComCov = sender as Geoprocessor;
                client.ArcGISDynamicMapServiceLayer gpLayer = gpAircraftComCov.GetResultMapServiceLayer(e.JobInfo.JobId);
                gpLayer.ID      = "AircraftCommunicationCoverageMap";
                gpLayer.Opacity = .65;

                _mapWidget.Map.Layers.Add(gpLayer);

                _mapWidget.Map.Layers.Add(_graphicsLayer);

                //get legend
                HttpClient client   = new HttpClient();
                string     response =
                    await client.GetStringAsync(_baseURL + "MapServer/legend?f=pjson");

                XmlDocument   doc      = (XmlDocument)JsonConvert.DeserializeXmlNode(response);
                XmlNodeList   xmlnode  = doc.GetElementsByTagName("legend");
                List <legend> pLegends = new List <legend>();
                _dtLegends.Clear();

                foreach (XmlNode node in xmlnode)
                {
                    legend pLegend = new legend();
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        if (child.Name == "label")
                        {
                            pLegend.label = child.InnerText;
                        }
                        if (child.Name == "url")
                        {
                            pLegend.url = _baseURL + "MapServer/1/images/" + child.InnerText;
                        }
                    }
                    _dtLegends.Add(pLegend);
                }

                if (pWin == null)
                {
                    pWin = new LegendDialog();
                }
                pWin.ListView.DataContext = _dtLegends;
                pWin.Closed += pWin_Closed;
                pWin.Show();
                pWin.Topmost = true;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }
Exemplo n.º 2
0
        } // public string getFieldAlias(string fieldname)

        /// <summary>
        /// create Layer according to its Type
        /// </summary>
        /// <param name="id"></param>
        /// <param name="vis"></param>
        /// <returns></returns>
        private Layer createLayer(string id, bool vis)
        {
            string typ = lyrType;

            ESRI.ArcGIS.Client.Layer res = null;

            if (typ == "ArcGISTiledMapServiceLayer")
            {
                var lr = new ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer();
                lr.Url      = lyrUrl;
                lr.ProxyURL = proxy;
                res         = lr;
            }
            else if (typ == "OpenStreetMapLayer")
            {
                var lr = new ESRI.ArcGIS.Client.Toolkit.DataSources.OpenStreetMapLayer();
                res = lr;
            }
            else if (typ == "ArcGISDynamicMapServiceLayer")
            {
                var lr = new ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer();
                lr.Url      = lyrUrl;
                lr.ProxyURL = proxy;
                res         = lr;
            }
            else if (typ == "FeatureLayer")
            {
                var lr = new ESRI.ArcGIS.Client.FeatureLayer();
                lr.Url      = lyrUrl;
                lr.ProxyUrl = proxy;
                res         = lr;
            }
            else if (typ == "GraphicsLayer")
            {
                var gl = setContent(id, lyrUrl);
                res = gl;
            }

            if (res != null)
            {
                ESRI.ArcGIS.Client.Extensibility.LayerProperties.SetIsPopupEnabled(res, popupOn);

                // sublayers popups on/off
                if (identifyLayerIds.Length <= 3)
                {
                    ;
                }
                else
                {
                    var xmlszn = new System.Xml.Serialization.XmlSerializer(typeof(System.Collections.ObjectModel.Collection <int>));
                    var sr     = new StringReader(identifyLayerIds);
                    var ids    = xmlszn.Deserialize(sr) as System.Collections.ObjectModel.Collection <int>;
                    ESRI.ArcGIS.Mapping.Core.LayerExtensions.SetIdentifyLayerIds(res, ids);
                }
            }

            return(res);
        } // private Layer createLayer(string id, bool vis)
Exemplo n.º 3
0
 public void addArcGisDynamicService(string url, string layerID, double opacity, string ProxyUrl)
 {
     try
     {
         if (layerID == "")
         {
             layerID = Guid.NewGuid().ToString();
         }
         ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer lyr = new ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer();
         lyr.Url      = url;
         lyr.ID       = layerID;
         lyr.Opacity  = opacity;
         lyr.Visible  = true;
         lyr.ProxyURL = ProxyUrl;
         _map.Layers.Add(lyr);
         //_map.Layers.Insert(0, lyr);
     }
     catch (Exception ex)
     {
         DebugConsole.debug("MapHelper: " + ex.ToString());
     }
 }
Exemplo n.º 4
0
        }         // public void initRelations()

        private Layer createLayer(string id, bool vis)
        {
            // create Layer according to its Type
            string typ = lyrType;

            ESRI.ArcGIS.Client.Layer res = new ESRI.ArcGIS.Client.GraphicsLayer();

            if (typ == "ArcGISTiledMapServiceLayer")
            {
                var lr = new ESRI.ArcGIS.Client.ArcGISTiledMapServiceLayer();
                lr.Url      = lyrUrl;
                lr.ProxyURL = proxy;
                res         = lr;
            }
            else if (typ == "OpenStreetMapLayer")
            {
                var lr = new ESRI.ArcGIS.Client.Toolkit.DataSources.OpenStreetMapLayer();
                res = lr;
            }
            else if (typ == "ArcGISDynamicMapServiceLayer")
            {
                var lr = new ESRI.ArcGIS.Client.ArcGISDynamicMapServiceLayer();
                lr.Url         = lyrUrl;
                lr.ProxyURL    = proxy;
                lr.ImageFormat = imageFormat;
                res            = lr;
            }
            else if (typ == "FeatureLayer")
            {
                var lr = new ESRI.ArcGIS.Client.FeatureLayer()
                {
                    Url = lyrUrl, ProxyUrl = proxy
                };
                lr.OutFields.Add("*");
                lr.Mode = FeatureLayer.QueryMode.OnDemand;
                lr.Initialize();                 // retrieve attribs from server
                var rr = rendererFromJson(renderer);
                if (rr != null)
                {
                    lr.Renderer = rr;
                }
                res = lr;
            }
            else if (typ == "GraphicsLayer")
            {
                var gl = setContent(id, lyrUrl);
                var rr = rendererFromJson(renderer);
                if (rr != null)
                {
                    gl.Renderer = rr;
                }
                res = gl;
            }

            if (res != null)
            {
                ESRI.ArcGIS.Client.Extensibility.LayerProperties.SetIsPopupEnabled(res, popupOn);

                // sublayers popups on/off
                if (identifyLayerIds.Length <= 3)
                {
                    ;
                }
                else
                {
                    var xmlszn = new System.Xml.Serialization.XmlSerializer(typeof(System.Collections.ObjectModel.Collection <int>));
                    var sr     = new StringReader(identifyLayerIds);
                    var ids    = xmlszn.Deserialize(sr) as System.Collections.ObjectModel.Collection <int>;
                    ESRI.ArcGIS.Mapping.Core.LayerExtensions.SetIdentifyLayerIds(res, ids);
                }
            }

            return(res);
        }         // private Layer createLayer(string id, bool vis)
        async void gpFarthest_JobCompleted(object sender, JobInfoEventArgs e)
        {
            try
            {
                Geoprocessor gpFOC = sender as Geoprocessor;
                client.ArcGISDynamicMapServiceLayer gpLayer = gpFOC.GetResultMapServiceLayer(e.JobInfo.JobId);
                gpLayer.ID      = "Farthest On Circle";
                gpLayer.Opacity = .65;

                _mapWidget.Map.Layers.Add(gpLayer);

                //get legend
                HttpClient client   = new HttpClient();
                string     response =
                    await client.GetStringAsync(_baseURL + "MapServer/legend?f=pjson");

                XmlDocument   doc      = (XmlDocument)JsonConvert.DeserializeXmlNode(response);
                XmlNodeList   xmlnode  = doc.GetElementsByTagName("legend");
                List <legend> pLegends = new List <legend>();
                int           count    = 0;
                double        test     = System.Convert.ToInt16(Range.Text) / System.Convert.ToInt16(Speed.Text);
                int           theval   = System.Convert.ToInt16(test);
                _dtLegends.Clear();

                foreach (XmlNode node in xmlnode)
                {
                    legend pLegend = new legend();
                    foreach (XmlNode child in node.ChildNodes)
                    {
                        if (child.Name == "label")
                        {
                            pLegend.label = child.InnerText + " Hours of Transit";
                        }
                        if (child.Name == "url")
                        {
                            pLegend.url = _baseURL + "MapServer/1/images/" + child.InnerText;
                        }
                    }
                    if (count <= theval && count < 24)
                    {
                        _dtLegends.Add(pLegend);
                    }

                    count++;
                }


                if (pWin == null)
                {
                    pWin = new LegendDialog();
                }
                pWin.ListView.DataContext = _dtLegends;
                pWin.Closed += pWin_Closed;
                pWin.Show();
                pWin.Topmost = true;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }