예제 #1
0
        public static IPoint GetCenterPoint(List <IGeometry> geometries)
        {
            var envelope = EsriTools.GetEnvelopeOfGeometriesList(geometries);
            var x        = envelope.XMin + (envelope.XMax - envelope.XMin) / 2;
            var y        = envelope.YMin + (envelope.YMax - envelope.YMin) / 2;

            return(new Point {
                X = x, Y = y, SpatialReference = envelope.SpatialReference
            });
        }
예제 #2
0
        private static IFeatureClass GenerateWorknArea(string poterniallyVisibleAreaFCName, string pointsFCName, string workinAreaFCName)
        {
            var points = EsriTools.GetFeatreClassExtent(GdbAccess.Instance.GetCalcWorkspaceFeatureClass(pointsFCName));
            var poterniallyVisibleArea = EsriTools.GetFeatreClassExtent(GdbAccess.Instance.GetCalcWorkspaceFeatureClass(poterniallyVisibleAreaFCName));

            poterniallyVisibleArea.Project(EsriTools.Wgs84Spatialreference);
            points.Project(EsriTools.Wgs84Spatialreference);

            var combined = EsriTools.GetEnvelopeOfGeometriesList(new IGeometry[] { points, poterniallyVisibleArea });

            var workinAreaFC = GdbAccess.Instance.GenerateTempStorage(workinAreaFCName, null, esriGeometryType.esriGeometryEnvelope, null, false, true);

            var area = workinAreaFC.CreateFeature();

            area.Shape = combined;
            area.Store();
            return(workinAreaFC);
        }