Пример #1
0
        private void paintLayerbyStyle(Graphics g, Graphics text_g, Layer layer, RSTransform rstransform)
        {
            Style         style         = layer.style;
            FeatureSource featuresource = layer.featuresource;

            foreach (Feature feature in featuresource.features.featureList)
            {
                if (!feature.visible)
                {
                    continue;
                }
                switch (feature.geometry.geometryType)
                {
                case OSGeo.OGR.wkbGeometryType.wkbPoint:
                    paintPointFeaturebyRule(g, text_g, feature, SelectRendererRule(feature, style), rstransform);
                    break;

                case OSGeo.OGR.wkbGeometryType.wkbLineString:
                    paintLineFeaturebyRule(g, text_g, feature, SelectRendererRule(feature, style), rstransform);
                    break;

                case OSGeo.OGR.wkbGeometryType.wkbMultiLineString:
                    break;

                case OSGeo.OGR.wkbGeometryType.wkbPolygon:
                    paintpolygonFeaturebyRule(g, text_g, feature, SelectRendererRule(feature, style), rstransform);
                    break;

                case OSGeo.OGR.wkbGeometryType.wkbMultiPolygon:
                    paintMultiPolygonbyRule(g, text_g, feature, SelectRendererRule(feature, style), rstransform);
                    break;
                }
            }
        }
Пример #2
0
        public GisSmartTools.Geometry.Rectangle GetRefernectRectangle()
        {
            if (layerlist.Count == 0)
            {
                return(new Geometry.Rectangle(0, 0, 100, 100));
            }
            Geometry.Rectangle rect = new Geometry.Rectangle(Utils.double_max, Utils.double_max, Utils.double_min, Utils.double_min);
            foreach (Layer layer in layerlist)
            {
                if (!layer.visible)
                {
                    continue;
                }

                Geometry.Rectangle layerrect = layer.getEnvelopofLayer();
                // if(layer.featuresource.schema.rs.spetialReference.)///////////////?????????????此处判断数据坐标系统与map坐标系统是否一致,如果不一致,需要转换
                //layerrect = transform...
                ReferenceSystem rs        = layer.getReference();
                RSTransform     transform = RSTransformFactory.getRSTransform(rs, this.srs);
                PointD          minxy     = transform.sourceToTarget(new PointD(layerrect.minX, layerrect.minY));
                PointD          maxxy     = transform.sourceToTarget(new PointD(layerrect.maxX, layerrect.maxY));

                if (minxy.X < rect.minX)
                {
                    rect.minX = minxy.X;
                }
                if (maxxy.X > rect.maxX)
                {
                    rect.maxX = maxxy.X;
                }
                if (minxy.Y < rect.minY)
                {
                    rect.minY = minxy.Y;
                }
                if (maxxy.Y > rect.maxY)
                {
                    rect.maxY = maxxy.Y;
                }
            }
            return(rect);
        }
Пример #3
0
 public RSTransform rsTransfrom; //坐标系转换器
 public Filter_Envelop(Rectangle rect, RSTransform rstransfrom)
 {
     this.rect        = rect;
     this.rsTransfrom = rstransfrom;
 }
Пример #4
0
 private void paintMutiLinebyRule(Graphics g, Graphics text_g, Feature feature, RenderRule rule, RSTransform rstransform)
 {
 }