示例#1
0
        public byte[] GetUtmOverlay(ParamUtm param)
        {
            string url = (param.layerType == ELayerType.FMap ? Config.URL_FMAP_SERVICE : Config.URL_MAPNIK_SERVICE)
                         + "Composite=" + param.overlay.Replace(" ", "+")
                         + "&res=" + param.res + "&UTMZ1=" + param.zone + "&UTMZ2=" + param.zone;

            if (param.mode == ERequestMode.SingleTile)
            {
                url += "&XN=" + param.xn + "&YN=" + param.yn;
            }
            else if (param.mode == ERequestMode.MultiTiles)
            {
                url += "&X1=" + param.utmxy1.x + "&Y1=" + param.utmxy1.y + "&X2=" + param.utmxy2.x + "&Y2=" + param.utmxy2.y;
            }
            else
            {
                throw new Exception("param.mode not correct");
            }
            try
            {
                return(Helper.HttpGetBytes(url));
            }
            catch (Exception ex)
            {
                throw new Exception("GetUtmOverlay error: " + ex.Message + " Requesting url: " + url);
            }
        }
示例#2
0
        public void GetUtmTile(ParamUtm param)
        {
            MReader reader = new MReader(Config.CONN_UTM, param.originName, debugMode, param.zone, param.date, param.jpegQuality);

            resultAsBytes = reader.GetTile(param.tilexy, false);
            logString     = reader.logString;
        }
示例#3
0
        public void GetUtmMosaic(ParamUtm param)
        {
            MReader reader = new MReader(Config.CONN_UTM, param.originName, debugMode, param.zone, param.date, param.jpegQuality);

            resultAsBytes = reader.GetUtmMosaic(param.utmxy1.x, param.utmxy1.y, param.utmxy2.x, param.utmxy2.y, param.res);
            logString     = reader.logString;
        }
示例#4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            SafeRunPrintError(delegate
            {
                ParamUtm param = new ParamUtm(Request);
                Reader reader  = new Reader(param.debug);
                switch (param.mode)
                {
                case ERequestMode.SingleTile:
                    try
                    {
                        reader.GetUtmTile(param);
                        if (!param.debug)
                        {
                            OutputImage(reader.resultAsBytes, tileSize);
                        }
                        else
                        {
                            OutputText(reader.logString);
                        }
                    }
                    catch (Exception ex)
                    {
                        if (!param.debug)
                        {
                            OutputBlackTile(tileSize);
                        }
                        else
                        {
                            OutputText(ex.Message);
                        }
                        Log("GetUtmSingleTile", ex);
                    }
                    break;

                case ERequestMode.MultiTiles:
                    try
                    {
                        reader.GetUtmMosaic(param);
                        if (!param.debug)
                        {
                            if (reader.resultAsBytes.Length == 0)
                            {
                                OutputText("Requested image is too large.");
                            }
                            else
                            {
                                if (param.overlay != null)
                                {
                                    try
                                    {
                                        reader.resultAsBytes = Helper.OverlayImages(reader.resultAsBytes, reader.GetUtmOverlay(param), param.jpegQuality);
                                    }
                                    catch (Exception ex)
                                    {
                                        Log("GetUtmOverlay/OverlayImages", ex);
                                    }
                                }
                                OutputImage(reader.resultAsBytes, tileSize);
                            }
                        }
                        else
                        {
                            OutputText(reader.logString);
                        }
                    }
                    catch (Exception ex)
                    {
                        if (!param.debug)
                        {
                            OutputBlackTile(tileSize);
                        }
                        else
                        {
                            OutputText(ex.Message);
                        }
                        Log("utm_mosaic", ex);
                    }
                    break;

                case ERequestMode.OriginList:
                    reader.GetUtmSourceList(param.utmxy.x, param.utmxy.y, param.zone, 0);
                    OutputXml(reader.resultAsString);
                    break;

                case ERequestMode.TimeSeriesList:
                    reader.GetUtmSourceList(param.utmxy.x, param.utmxy.y, param.zone, param.res);
                    OutputXml(reader.resultAsString);
                    break;
                }
            });
        }