/// <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) { } })); }
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) { } })); }
/// <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) { } })); }
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) { } }