Beispiel #1
0
        /// <summary>
        /// 根据客户端发来的Graphic,在地图上画出该Graphic
        /// Graphic以Json串形式发来
        /// </summary>
        /// <param name="json"></param>
        public static void DrawBufferByJSON(JObject json)
        {
            PublicParams.pubMainMap.Dispatcher.BeginInvoke(new Action(() => {
                try
                {
                    Geometry geometry = Geometry.FromJson(json["GRAPHIC"]["Geometry"].ToString());
                    Graphic graphic   = new Graphic()
                    {
                        Geometry = geometry
                    };
                    switch (json["TYPE"].ToString())
                    {
                    case "Polygon":
                        graphic.Symbol = PublicParams.fillSymbol;

                        break;

                    case "Polyline":
                        graphic.Symbol = PublicParams.lineSymbol;
                        break;

                    default:
                        break;
                    }
                    MapLayers.AddGraphicToGLayerByLayerID(graphic, PublicParams.gLayerDrawing);
                }
                catch (Exception)
                {
                }
            }));
        }
Beispiel #2
0
 public static void ShowSearchCamerasByJson(JObject json)
 {
     PublicParams.pubMainMap.Dispatcher.BeginInvoke(new Action(() => {
         try
         {
             Geometry geometry = Geometry.FromJson(json["GRAPHIC"]["Geometry"].ToString());
             Graphic graphic   = new Graphic()
             {
                 Geometry = geometry, Symbol = PublicParams.symbolSearchCameras
             };
             MapLayers.AddGraphicToGLayerByLayerID(graphic, PublicParams.gLayerSearchCamerasNearCrime);
         }
         catch (Exception)
         {
         }
     }));
 }
Beispiel #3
0
        /// <summary>
        /// LPY 2016-3-25 添加
        /// 根据JSON,在大屏上标出测量的距离或者面积结果
        /// </summary>
        /// <param name="json"></param>
        public static void ShowLengthOrAreaByJSON(JObject json)
        {
            PublicParams.pubMainMap.Dispatcher.BeginInvoke(new Action(() =>
            {
                try
                {
                    string result     = json["RESULT"].ToString();
                    Geometry geometry = Geometry.FromJson(json["GRAPHIC"]["Geometry"].ToString());
                    Graphic graphic   = new Graphic()
                    {
                        Geometry = geometry
                    };
                    switch (json["TYPE"].ToString())
                    {
                    case "Polygon":
                        graphic.Symbol = PublicParams.areaSymbol;

                        break;

                    case "Polyline":
                        graphic.Symbol = PublicParams.lengthSymbol;
                        break;

                    default:
                        break;
                    }
                    MapLayers.AddGraphicToGLayerByLayerID(graphic, PublicParams.gLayerLengthOrArea);

                    double xCenter       = (graphic.Geometry.Extent.XMax + graphic.Geometry.Extent.XMin) / 2;//查找中心点
                    double yCenter       = (graphic.Geometry.Extent.YMax + graphic.Geometry.Extent.YMin) / 2;
                    MapPoint mpCenter    = new MapPoint(xCenter, yCenter, graphic.Geometry.SpatialReference);
                    TextSymbol txtSymbol = PublicParams.textSymbol;

                    Graphic gResult = new Graphic()
                    {
                        Geometry = mpCenter, Symbol = txtSymbol
                    };
                    gResult.Attributes["Result"] = result;
                    gResult.SetZIndex(2);
                    MapLayers.AddGraphicToGLayerByLayerID(gResult, PublicParams.gLayerLengthOrArea);
                }
                catch (Exception)
                {
                }
            }));
        }
Beispiel #4
0
        private void DrawPoliceCarByJson(JObject json)
        {
            try
            {
                Graphic gPoliceCar = MapLayers.GetGraphicFromGLayerByID("TITLE", json["TITLE"].ToString(), PublicParams.gLayerPoliceCarGPS);
                if (gPoliceCar != null)
                {
                    gPoliceCar.Geometry        = new MapPoint((double)json["X"], (double)json["Y"], new SpatialReference(4326));
                    gPoliceCar.Attributes["X"] = (double)json["X"];
                    gPoliceCar.Attributes["Y"] = (double)json["Y"];
                    MapLayers.RefreshGLayerByID(PublicParams.gLayerPoliceCarGPS);

                    if (PublicParams.pubInfoWin.IsOpen == true && (PublicParams.pubInfoWin.Content as JObject)["TITLE"].ToString() == gPoliceCar.Attributes["TITLE"].ToString())
                    {
                        PublicParams.pubInfoWin.Anchor = gPoliceCar.Geometry as MapPoint;
                        Point screenPoint = PublicParams.pubMainMap.MapToScreen(gPoliceCar.Geometry as MapPoint);
                        MapMethods.SendPoliceCarPositon(gPoliceCar, Convert.ToInt32(screenPoint.X), Convert.ToInt32(screenPoint.Y));
                    }
                }
                else//不存在该车辆,先添加该车辆到地图上
                {
                    MapPoint mpGPS   = new MapPoint((double)json["X"], (double)json["Y"], new SpatialReference(4326));
                    Symbol   sGPS    = App.Current.Resources["PoliceCarOnline"] as Symbol;
                    Graphic  gNewCar = new Graphic()
                    {
                        Symbol = sGPS, Geometry = mpGPS
                    };
                    gNewCar.Attributes.Add("TITLE", json["TITLE"].ToString());
                    gNewCar.Attributes.Add("HH", json["HH"].ToString());//呼号
                    gNewCar.Attributes.Add("Class", "PoliceCar");
                    gNewCar.Attributes.Add("X", (double)json["X"]); gNewCar.Attributes.Add("Y", (double)json["Y"]);
                    MapLayers.AddGraphicToGLayerByLayerID(gNewCar, PublicParams.gLayerPoliceCarGPS);
                    MapLayers.RefreshGLayerByID(PublicParams.gLayerPoliceCarGPS);
                }
            }
            catch (Exception)
            {
            }
        }