/// <summary> /// Create zone geometry. /// </summary> /// <param name="zone">Zone for creating geometry.</param> /// <returns>Created geometry.</returns> private ESRI.ArcGIS.Client.Geometry.Geometry _CreateGeometry(Zone zone) { ESRI.ArcGIS.Client.Geometry.Geometry geometry = null; if (zone.Geometry != null) { if (zone.Geometry is ESRI.ArcLogistics.Geometry.Point?) { ESRI.ArcLogistics.Geometry.Point?point = zone.Geometry as ESRI.ArcLogistics.Geometry.Point?; geometry = new ESRI.ArcGIS.Client.Geometry.MapPoint(point.Value.X, point.Value.Y); } else { int?spatialReference = null; if (ParentLayer != null) { spatialReference = ParentLayer.SpatialReferenceID; } geometry = MapHelpers.ConvertToArcGISPolygon( zone.Geometry as ESRI.ArcLogistics.Geometry.Polygon, spatialReference); } } else { geometry = null; } return(geometry); }
/// <summary> /// Create barrier geometry. /// </summary> /// <param name="barrier">Barrier.</param> /// <returns>Barrier geometry.</returns> private ESRI.ArcGIS.Client.Geometry.Geometry _CreateGeometry(Barrier barrier) { ESRI.ArcGIS.Client.Geometry.Geometry geometry = null; if (barrier.Geometry != null) { int?spatialReference = null; if (ParentLayer != null) { spatialReference = ParentLayer.SpatialReferenceID; } if (barrier.Geometry is ESRI.ArcLogistics.Geometry.Point) { ESRI.ArcLogistics.Geometry.Point point = (ESRI.ArcLogistics.Geometry.Point)barrier.Geometry; // Project point from WGS84 to Web Mercator if spatial reference of map is Web Mercator if (ParentLayer != null && ParentLayer.SpatialReferenceID != null) { point = WebMercatorUtil.ProjectPointToWebMercator(point, spatialReference.Value); } geometry = new ESRI.ArcGIS.Client.Geometry.MapPoint(point.X, point.Y); } else if (barrier.Geometry is ESRI.ArcLogistics.Geometry.Polygon) { geometry = MapHelpers.ConvertToArcGISPolygon( barrier.Geometry as ESRI.ArcLogistics.Geometry.Polygon, spatialReference); } else if (barrier.Geometry is ESRI.ArcLogistics.Geometry.Polyline) { geometry = MapHelpers.ConvertToArcGISPolyline( barrier.Geometry as ESRI.ArcLogistics.Geometry.Polyline, spatialReference); } else { System.Diagnostics.Debug.Assert(false); } _SetSymbol(); } else { geometry = null; } return(geometry); }