亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? crfpserver.java

?? openmap java寫的開源數(shù)字地圖程序. 用applet實現(xiàn),可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
// **********************************************************************// // <copyright>// //  BBN Technologies//  10 Moulton Street//  Cambridge, MA 02138//  (617) 873-8000// //  Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source: /cvs/distapps/openmap/src/corba/com/bbn/openmap/layer/rpf/corba/CRFPServer.java,v $// $RCSfile: CRFPServer.java,v $// $Revision: 1.3.2.3 $// $Date: 2005/08/11 21:03:34 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.layer.rpf.corba;import java.awt.event.ActionListener;import java.util.Enumeration;import java.util.Hashtable;import java.util.StringTokenizer;import java.util.Vector;import javax.swing.Timer;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.image.JPEGHelper;import com.bbn.openmap.layer.rpf.RpfCacheHandler;import com.bbn.openmap.layer.rpf.RpfColortable;import com.bbn.openmap.layer.rpf.RpfCoverageBox;import com.bbn.openmap.layer.rpf.RpfFrameCacheHandler;import com.bbn.openmap.layer.rpf.RpfIndexedImageData;import com.bbn.openmap.layer.rpf.RpfSubframe;import com.bbn.openmap.layer.rpf.RpfTocHandler;import com.bbn.openmap.layer.rpf.RpfViewAttributes;import com.bbn.openmap.layer.rpf.corba.CRpfFrameProvider.CRFPCADRGProjection;import com.bbn.openmap.layer.rpf.corba.CRpfFrameProvider.CRFPCoverageBox;import com.bbn.openmap.layer.rpf.corba.CRpfFrameProvider.CRFPViewAttributes;import com.bbn.openmap.layer.rpf.corba.CRpfFrameProvider.RawImage;import com.bbn.openmap.layer.rpf.corba.CRpfFrameProvider.ServerPOA;import com.bbn.openmap.layer.rpf.corba.CRpfFrameProvider.XYPoint;import com.bbn.openmap.proj.CADRG;import com.bbn.openmap.util.Debug;import com.bbn.openmap.util.corba.CORBASupport;/** * The CRFPServer is a server implementation of the * CorbaRpfFrameProvider.idl. It realy implements most of the fuctions * of the RpfFrameProvider, but is not one. The CRFPClient is the * RpfFrameProvider. *  * <P> * This server requires the com.sun.image.codec.jpeg package. */public class CRFPServer extends ServerPOA implements ActionListener {    protected static String iorfile = null;    protected static String naming = null;    /** A cache for every client. */    Hashtable caches;    /** View Attributes for every client. */    Hashtable viewAttributeLists;    /** The cache for the current client. */    protected RpfFrameCacheHandler currentCache;    /** The view attrbutes for the current client. */    protected RpfViewAttributes currentViewAttributes;    /** The paths to the RPF directories. */    protected String[] rpfpaths;    /** The Rpf Table of Contents handlers for the data. */    protected RpfTocHandler[] tocs;    /** Hashtable to keep track of how old certain caches are. */    Hashtable timestamps;    /**     * Timer for clearing out caches from sloppy clients. It's only     * enabled when the -timewindow flag is used.     */    Timer timer;    /** 10, or the default number of active caches kept. */    public final static int DEFAULT_MAX_USERS = 10;    /** The number of caches kept by the server. */    protected int maxUsers = DEFAULT_MAX_USERS;    /** 5 minutes. The default timer cycle. */    public final static int DEFAULT_TIME_WINDOW = 1000 * 60 * 5; // 5                                                                 // minutes    /**     * The amount of time (milliseconds) reflecting how long an     * inactive cache is kept     */    protected long timeWindow = DEFAULT_TIME_WINDOW;    /**     * Default Constructor.     */    public CRFPServer() {        this("Default");    }    /**     * The constructor that you should use.     *      * @param name the identifying name for persistance.     */    public CRFPServer(String name) {        super();        caches = new Hashtable();        viewAttributeLists = new Hashtable();        timestamps = new Hashtable();    }    /**     * Get the current cache given a unique ID. If a cache is not     * here, create it.     *      * @param uniqueID a unique identifier.     */    protected RpfFrameCacheHandler getCurrentCache(String uniqueID) {        RpfFrameCacheHandler cache = (RpfFrameCacheHandler) caches.get(uniqueID);        if (cache == null && tocs != null) {            Debug.message("crfp", "CRFPServer: Creating cache for new client");            cache = new RpfFrameCacheHandler(tocs);            caches.put(uniqueID, cache);        }        timestamps.put(uniqueID, new Long(System.currentTimeMillis()));        return cache;    }    /**     * Get rid of any cache that is older than the time window.     */    protected void cleanCache(long timeWindow) {        // OK, we need to get rid of one.        long currentTime = System.currentTimeMillis();        Enumeration keys = timestamps.keys();        while (keys.hasMoreElements()) {            Object tester = keys.nextElement();            Long time = (Long) timestamps.get(tester);            if ((currentTime - time.longValue()) >= timeWindow) {                caches.remove(tester);                timestamps.remove(tester);                viewAttributeLists.remove(tester);                if (Debug.debugging("crfp")) {                    Debug.output("Expired cache, removing, have "                            + caches.size() + " caches left.");                }            }        }    }    /**     * Create a spot in the cache for a new entry. If something is     * removed from the cache, it is returned here.     */    protected RpfCacheHandler sweepCaches() {        if (caches.size() < maxUsers) {            return null;        }        // OK, we need to get rid of one.        long diff = Long.MAX_VALUE;        Enumeration keys = timestamps.keys();        Object getRid = null;        while (keys.hasMoreElements()) {            Object tester = keys.nextElement();            Long time = (Long) timestamps.get(tester);            if (time.longValue() < diff) {                getRid = tester;                diff = time.longValue();            }        }        boolean DEBUG = false;        if (getRid != null) {            if (Debug.debugging("crfp")) {                DEBUG = true;            }            if (DEBUG)                Debug.output("Removing cache for new user, was "                        + caches.size());            caches.remove(getRid);            timestamps.remove(getRid);            viewAttributeLists.remove(getRid);            if (DEBUG)                Debug.output("  now " + caches.size());        }        if (caches.size() >= maxUsers) {            return sweepCaches();        } else {            return (RpfCacheHandler) getRid;        }    }    /**     * Get the current view attributes given a unique ID. If view     * attributes are not here, create them.     *      * @param uniqueID a client-unique identifier.     */    protected RpfViewAttributes getCurrentViewAttributes(String uniqueID) {        RpfViewAttributes va = (RpfViewAttributes) viewAttributeLists.get(uniqueID);        if (va == null) {            Debug.message("crfp",                    "CRFPServer: Creating attributes for new client");            va = new RpfViewAttributes();            viewAttributeLists.put(uniqueID, va);        }        return va;    }    /**     * Set the view attributtes for the current client.     *      * @param va the view attribute settings.     * @param uniqueID a client-unique identifier.     */    public void setViewAttributes(CRFPViewAttributes va, String uniqueID) {        currentViewAttributes = getCurrentViewAttributes(uniqueID);        currentViewAttributes.numberOfColors = (int) va.numberOfColors;        currentViewAttributes.opaqueness = (int) va.opaqueness;        currentViewAttributes.scaleImages = va.scaleImages;        currentViewAttributes.imageScaleFactor = va.imageScaleFactor;        currentViewAttributes.chartSeries = va.chartSeries;        if (Debug.debugging("crfp")) {            Debug.output("CRFPServer: Setting attributes for client:\n    "                    + currentViewAttributes);        }    }    /**     * Get the Coverage Boxes that fit the geographical area given.     *      * @param ullat NW latitude.     * @param ullon NW longitude     * @param lrlat SE latitude     * @param lrlon SE longitude     * @param p a CADRG projection     * @param uniqueID a client-unique identifier.     */    public CRFPCoverageBox[] getCoverage(float ullat, float ullon, float lrlat,                                         float lrlon, CRFPCADRGProjection p,                                         String uniqueID) {        Debug.message("crfp",                "CRFPServer: Handling coverage request for client");        currentCache = getCurrentCache(uniqueID);        currentViewAttributes = getCurrentViewAttributes(uniqueID);        currentCache.setViewAttributes(currentViewAttributes);        LatLonPoint llpoint = new LatLonPoint(p.center.lat, p.center.lon);        CADRG proj = new CADRG(llpoint, p.scale, p.width, p.height);        Vector vector = currentCache.getCoverage(ullat,                ullon,                lrlat,                lrlon,                proj);        return vectorToCRFPCoverageBoxes(vector);    }    /**     * Method that provides all the coverage boxes that could provide     * coverage over the given area.     *      * @param ullat NW latitude.     * @param ullon NW longitude     * @param lrlat SE latitude     * @param lrlon SE longitude     * @param p a CADRG projection     * @param uniqueID a client-unique identifier.     */    public CRFPCoverageBox[] getCatalogCoverage(float ullat, float ullon,                                                float lrlat, float lrlon,                                                CRFPCADRGProjection p,                                                String chartSeriesCode,                                                String uniqueID) {        Debug.message("crfp", "CRFPServer: handling catalog request for client");        currentCache = getCurrentCache(uniqueID);        currentViewAttributes = getCurrentViewAttributes(uniqueID);        currentCache.setViewAttributes(currentViewAttributes);        LatLonPoint llpoint = new LatLonPoint(p.center.lat, p.center.lon);        CADRG proj = new CADRG(llpoint, p.scale, p.width, p.height);        Vector vector = currentCache.getCatalogCoverage(ullat,                ullon,                lrlat,                lrlon,                proj,                chartSeriesCode);        return vectorToCRFPCoverageBoxes(vector);    }    /**     * Convert a Vector of RpfCoverageBox to a CRFPCoverageBox array.     *      * @param vector vector of RpfCoverageBox.     * @return array of CRFPCoverageBox.     */    protected CRFPCoverageBox[] vectorToCRFPCoverageBoxes(Vector vector) {        int size = vector.size();        CRFPCoverageBox[] rets = new CRFPCoverageBox[size];        for (int i = 0; i < size; i++) {            RpfCoverageBox box = (RpfCoverageBox) vector.elementAt(i);            if (box != null) {                rets[i] = new CRFPCoverageBox((float) box.nw_lat, (float) box.nw_lon, (float) box.se_lat, (float) box.se_lon, box.subframeLatInterval, box.subframeLonInterval, box.chartCode, (short) box.zone, new XYPoint((short) box.startIndexes.x, (short) box.startIndexes.y), new XYPoint((short) box.endIndexes.x, (short) box.endIndexes.y), (short) box.tocNumber, (short) box.entryNumber, box.scale, box.percentCoverage);            }        }        return rets;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线播放不卡一区| 国产欧美日韩在线看| 亚洲超碰精品一区二区| 在线观看亚洲a| 视频一区中文字幕| 日韩精品一区二区三区蜜臀| 国产一区二区三区日韩| 亚洲国产精品av| 91福利视频在线| 日本网站在线观看一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 久久成人综合网| 国产免费成人在线视频| 91久久精品网| 久久99热99| 国产精品福利影院| 欧美日韩精品一区二区| 久久精品99国产国产精| 国产精品丝袜在线| 在线免费观看一区| 极品少妇一区二区| 亚洲手机成人高清视频| 91.com视频| 成人精品国产一区二区4080| 亚洲自拍偷拍网站| 久久午夜色播影院免费高清| 色综合久久综合网| 激情欧美日韩一区二区| 亚洲精品久久嫩草网站秘色| 精品久久久久久久久久久久包黑料| 成人午夜在线免费| 婷婷国产在线综合| 中文字幕成人在线观看| 91精品一区二区三区在线观看| 成人免费视频视频| 免播放器亚洲一区| 亚洲男同性恋视频| 国产亚洲一本大道中文在线| 欧美午夜在线一二页| 高清shemale亚洲人妖| 婷婷六月综合网| 综合分类小说区另类春色亚洲小说欧美 | 国产精品天干天干在观线| 欧美美女视频在线观看| 成人美女视频在线看| 免费观看91视频大全| 一区二区三区四区不卡在线| 国产日韩欧美高清在线| 欧美一区二区三区性视频| 一本到三区不卡视频| 国产高清不卡一区二区| 青青草国产成人av片免费 | 亚洲精品视频在线观看免费 | 欧美亚洲国产bt| 成人做爰69片免费看网站| 激情小说欧美图片| 天天影视网天天综合色在线播放 | 夜夜嗨av一区二区三区四季av| 久久久久久久久久久久久久久99| 欧美日韩国产首页| 色狠狠av一区二区三区| 91丝袜美女网| 99re热这里只有精品免费视频 | 99综合影院在线| 国产成人啪午夜精品网站男同| 日av在线不卡| 日韩av成人高清| 日韩精品一级二级| 日韩中文字幕亚洲一区二区va在线| 亚洲国产cao| 亚洲成a人片在线不卡一二三区| 亚洲一区二区3| 亚洲综合小说图片| 亚洲超碰精品一区二区| 日韩一区精品字幕| 人人精品人人爱| 精品一区精品二区高清| 久久国产精品99久久人人澡| 美国十次了思思久久精品导航| 性感美女久久精品| 日韩精品电影一区亚洲| 日本亚洲天堂网| 精一区二区三区| 国产盗摄一区二区| 北条麻妃国产九九精品视频| av不卡在线播放| 色综合天天综合在线视频| 色婷婷久久综合| 欧美日韩电影在线| 日韩欧美国产精品| 欧美精品一区二区三区蜜桃视频| 久久日韩粉嫩一区二区三区| 国产亚洲一区二区三区在线观看| 国产精品区一区二区三| 亚洲你懂的在线视频| 亚洲v中文字幕| 青椒成人免费视频| 国产老女人精品毛片久久| 91在线视频播放地址| 欧美调教femdomvk| 欧美一区二区视频在线观看2020| 精品1区2区在线观看| 中文字幕一区二区三| 亚洲成年人影院| 国产剧情一区二区| 色天天综合久久久久综合片| 91麻豆精品国产| 中文一区二区在线观看| 亚洲综合自拍偷拍| 精品中文字幕一区二区小辣椒| 91在线视频18| 欧美一级夜夜爽| 中文字幕在线不卡| 青娱乐精品视频在线| 成人久久18免费网站麻豆| 欧美日韩精品一区二区在线播放 | 国产欧美一区二区精品性色超碰 | 久久国产三级精品| 99久久99久久精品免费看蜜桃| 欧美人xxxx| 国产精品久久网站| 日韩av中文字幕一区二区| 成人高清免费观看| 日韩一区二区三区观看| 国产精品久久福利| 麻豆久久久久久| 欧美综合欧美视频| 亚洲国产成人一区二区三区| 日本午夜精品视频在线观看 | 99视频一区二区| 日韩欧美国产一区二区三区 | 91网上在线视频| 日韩精品中文字幕一区 | 中文字幕av在线一区二区三区| 婷婷国产v国产偷v亚洲高清| 91小视频在线免费看| 久久综合九色综合97_久久久| 一区二区三区中文字幕电影| 国产成人免费视| 91麻豆精品国产91久久久久| 一区二区三区欧美| 成人午夜视频网站| 国产日韩欧美综合在线| 免费人成精品欧美精品| 欧美日韩精品一区二区三区蜜桃 | 亚洲乱码国产乱码精品精可以看| 黄页视频在线91| 日韩一区二区三区四区五区六区| 一区二区三区欧美| 91免费在线视频观看| 国产精品三级在线观看| 免费成人在线观看视频| 欧美一区二区在线观看| 婷婷中文字幕一区三区| 欧美日本在线观看| 一区二区三区中文在线| 色综合久久综合网| 亚洲欧美日本韩国| 91免费看`日韩一区二区| 国产精品五月天| 不卡视频在线观看| 国产欧美日韩在线| 成人高清免费观看| 亚洲欧美综合网| 91老师片黄在线观看| 日韩美女啊v在线免费观看| 91美女在线看| 一区二区三区在线影院| 欧美三级电影在线看| 亚洲福利一区二区三区| 欧美人伦禁忌dvd放荡欲情| 天堂午夜影视日韩欧美一区二区| 欧美日韩黄色影视| 日韩中文字幕麻豆| 精品欧美一区二区三区精品久久| 激情综合五月天| 国产亚洲成年网址在线观看| 懂色av一区二区三区蜜臀| 国产女人aaa级久久久级 | 久久综合五月天婷婷伊人| 国产在线不卡一区| 欧美韩日一区二区三区四区| 成人午夜av影视| 亚洲精品乱码久久久久久日本蜜臀| 欧美午夜精品久久久久久超碰| 午夜一区二区三区视频| 欧美一区二区三区免费大片| 九色|91porny| 中文字幕日韩av资源站| 欧美午夜宅男影院| 久久99精品国产麻豆婷婷洗澡| 国产欧美日韩激情| 色婷婷av一区| 毛片一区二区三区| 中文字幕第一页久久| 欧美日韩日日摸| 国产主播一区二区| 亚洲免费三区一区二区| 91麻豆精品国产91久久久更新时间 | 久草中文综合在线|