private IMapTableDescription GetTableDesc(IMapServer3 mapServer, int layerID)
        {
            ILayerDescriptions layerDescs = mapServer.GetServerInfo(mapServer.DefaultMapName).DefaultMapDescription.LayerDescriptions;
            long c = layerDescs.Count;

            for (int i = 0; i < c; i++)
            {
                ILayerDescription3 layerDesc = (ILayerDescription3)layerDescs.get_Element(i);

                if (layerDesc.ID == layerID)
                {
                    layerDesc.LayerResultOptions = new LayerResultOptionsClass();
                    layerDesc.LayerResultOptions.GeometryResultOptions = new GeometryResultOptionsClass();
                    layerDesc.LayerResultOptions.GeometryResultOptions.DensifyGeometries = true;

                    return((IMapTableDescription)layerDesc);
                }
            }

            throw new ArgumentOutOfRangeException("layerID");
        }
Пример #2
0
        /// <summary>
        /// Create a table description, which includes generalization options
        /// </summary>
        /// <param name="mapServer"></param>
        /// <param name="layerId"></param>
        /// <param name="zoomLevel"></param>
        /// <returns></returns>
        private IMapTableDescription GetTableDescription(IMapServer3 mapServer, int layerId, int zoomLevel)
        {
            ILayerDescriptions layerDescs =
                mapServer.GetServerInfo(mapServer.DefaultMapName).DefaultMapDescription.LayerDescriptions;
            int count = layerDescs.Count;

            for (int i = 0; i < count; i++)
            {
                ILayerDescription3 layerDesc = (ILayerDescription3)layerDescs.get_Element(i);

                if (layerDesc.ID == layerId)
                {
                    layerDesc.LayerResultOptions = new LayerResultOptionsClass();
                    layerDesc.LayerResultOptions.GeometryResultOptions = new GeometryResultOptionsClass();
                    // Generalize geometries based on zoom level
                    layerDesc.LayerResultOptions.GeometryResultOptions.GeneralizeGeometries   = true;
                    layerDesc.LayerResultOptions.GeometryResultOptions.MaximumAllowableOffset = 2000 / (zoomLevel + 1);

                    return((IMapTableDescription)layerDesc);
                }
            }

            throw new ArgumentOutOfRangeException("layerID");
        }