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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? worldwind.java

?? world wind java sdk 源碼
?? JAVA
字號:
/*Copyright (C) 2001, 2006 United States Governmentas represented by the Administrator of theNational Aeronautics and Space Administration.All Rights Reserved.*/package gov.nasa.worldwind;import gov.nasa.worldwind.avlist.AVKey;import gov.nasa.worldwind.cache.*;import gov.nasa.worldwind.exception.WWRuntimeException;import gov.nasa.worldwind.formats.tiff.GeotiffImageReaderSpi;import gov.nasa.worldwind.retrieve.RetrievalService;import gov.nasa.worldwind.util.*;import javax.imageio.spi.IIORegistry;import java.beans.PropertyChangeListener;import java.util.logging.Level;/** * @author Tom Gaskins * @version $Id: WorldWind.java 9411 2009-03-16 21:03:25Z tgaskins $ */public final class WorldWind{    public static final String SHUTDOWN_EVENT = "gov.nasa.worldwind.ShutDown";    private static WorldWind instance = new WorldWind();    private WWObjectImpl wwo;    private MemoryCacheSet memoryCacheSet;    private FileStore dataFileStore;    private RetrievalService retrievalService;    private TaskService taskService;    private NetworkStatus networkStatus;    private WorldWind() // Singleton, prevent public instantiation.    {        this.initialize();    }    private void initialize()    {        this.wwo = new WWObjectImpl();        this.retrievalService = (RetrievalService) createConfigurationComponent(AVKey.RETRIEVAL_SERVICE_CLASS_NAME);        this.taskService = (TaskService) createConfigurationComponent(AVKey.TASK_SERVICE_CLASS_NAME);        this.dataFileStore = (FileStore) createConfigurationComponent(AVKey.DATA_FILE_STORE_CLASS_NAME);        this.memoryCacheSet = (MemoryCacheSet) createConfigurationComponent(AVKey.MEMORY_CACHE_SET_CLASS_NAME);        this.networkStatus = (NetworkStatus) createConfigurationComponent(AVKey.NETWORK_STATUS_CLASS_NAME);        // Seems like an unlikely place to load the tiff reader, but do it here nonetheless.        IIORegistry.getDefaultInstance().registerServiceProvider(GeotiffImageReaderSpi.inst());    }    private void dispose()    {        if (this.taskService != null)            this.taskService.shutdown(true);        if (this.retrievalService != null)            this.retrievalService.shutdown(true);        if (this.memoryCacheSet != null)            this.memoryCacheSet.clear();    }    /**     * Reinitialize World Wind to its initial ready state. Shut down and restart all World Wind services and clear all     * World Wind memory caches. Cache memory will be released at the next JVM garbage collection.     * <p/>     * Call this method to reduce World Wind's current resource usage to its initial, empty state. This is typically     * required by applets when the user leaves the applet page.     * <p/>     * The state of any open {@link WorldWindow} objects is indeterminate subsequent to invocation of this method. The     * core WorldWindow objects attempt to shut themselves down cleanly during the call, but their resulting window     * state is undefined.     * <p/>     * World Wind can continue to be used after calling this method.     */    public static synchronized void shutDown()    {        instance.wwo.firePropertyChange(SHUTDOWN_EVENT, null, -1);        instance.dispose();        instance = new WorldWind();    }    public static MemoryCacheSet getMemoryCacheSet()    {        return instance.memoryCacheSet;    }    public static synchronized MemoryCache getMemoryCache(String key)    {        return instance.memoryCacheSet.getCache(key);    }    public static FileStore getDataFileStore()    {        return instance.dataFileStore;    }    public static RetrievalService getRetrievalService()    {        return instance.retrievalService;    }    public static TaskService getTaskService()    {        return instance.taskService;    }    public static NetworkStatus getNetworkStatus()    {        return instance.networkStatus;    }    /**     * Indicates whether World Wind will attempt to connect to the network to retrieve data or for other reasons.     *     * @return <code>true</code> if World Wind is in off-line mode, <code>false</code> if not.     *     * @see NetworkStatus     */    public static boolean isOfflineMode()    {        return getNetworkStatus().isOfflineMode();    }    /**     * Indicate whether World Wind should attempt to connect to the network to retrieve data or for other reasons. The     * default value for this attribute is <code>false</code>, indicating that the network should be used.     *     * @param offlineMode <code>true</code> if World Wind should use the network, <code>false</code> otherwise     *     * @see NetworkStatus     */    public static void setOfflineMode(boolean offlineMode)    {        getNetworkStatus().setOfflineMode(offlineMode);    }    /**     * @param className the full name, including package names, of the component to create     *     * @return the new component     *     * @throws WWRuntimeException       if the <code>Object</code> could not be created     * @throws IllegalArgumentException if <code>className</code> is null or zero length     */    public static Object createComponent(String className) throws WWRuntimeException    {        if (className == null || className.length() == 0)        {            Logging.logger().severe("nullValue.ClassNameKeyNullZero");            throw new IllegalArgumentException(Logging.getMessage("nullValue.ClassNameKeyNullZero"));        }        try        {            Class c = Class.forName(className.trim());            return c.newInstance();        }        catch (Exception e)        {            Logging.logger().log(Level.SEVERE, "WorldWind.ExceptionCreatingComponent", className);            throw new WWRuntimeException(Logging.getMessage("WorldWind.ExceptionCreatingComponent", className), e);        }        catch (Throwable t)        {            Logging.logger().log(Level.SEVERE, "WorldWind.ErrorCreatingComponent", className);            throw new WWRuntimeException(Logging.getMessage("WorldWind.ErrorCreatingComponent", className), t);        }    }    /**     * @param classNameKey the key identifying the component     *     * @return the new component     *     * @throws IllegalStateException    if no name could be found which corresponds to <code>classNameKey</code>     * @throws IllegalArgumentException if <code>classNameKey<code> is null     * @throws WWRuntimeException       if the component could not be created     */    public static Object createConfigurationComponent(String classNameKey)        throws IllegalStateException, IllegalArgumentException    {        if (classNameKey == null || classNameKey.length() == 0)        {            Logging.logger().severe("nullValue.ClassNameKeyNullZero");            throw new IllegalArgumentException(Logging.getMessage("nullValue.ClassNameKeyNullZero"));        }        String name = Configuration.getStringValue(classNameKey);        if (name == null)        {            Logging.logger().log(Level.SEVERE, "WorldWind.NoClassNameInConfigurationForKey", classNameKey);            throw new WWRuntimeException(                Logging.getMessage("WorldWind.NoClassNameInConfigurationForKey", classNameKey));        }        try        {            return WorldWind.createComponent(name.trim());        }        catch (Throwable e)        {            Logging.logger().log(Level.SEVERE, "WorldWind.UnableToCreateClassForConfigurationKey", name);            throw new IllegalStateException(                Logging.getMessage("WorldWind.UnableToCreateClassForConfigurationKey", name), e);        }    }    /**     * Creates a component using a specified {@link Factory} and one of several specified configuration mechanisms. The     * factory determines which mechanism to use, but typically attempts the specified ones in the order specified until     * one is successful.     *     * @param factoryClassKey the key identifying the factory class name in {@link gov.nasa.worldwind.Configuration}.     * @param keys            an array of keys identifying the mechanisms to use to create the component. See {@link     *                        Factory#createFromKeys(String[])} for a list of common method keys.     *     * @return the requested component.     *     * @throws IllegalArgumentException if the factory key is null or the key array is null or empty.     * @throws WWRuntimeException       if none of the methods are successful.     */    public static Object createComponentFromConfigurationFactory(String factoryClassKey, String[] keys)    {        if (factoryClassKey == null || factoryClassKey.length() == 0)        {            String msg = Logging.getMessage("nullValue.ClassNameKeyNullZero");            Logging.logger().severe(msg);            throw new IllegalArgumentException(msg);        }        if (keys == null || keys.length == 0)        {            String msg = Logging.getMessage("nullValue.KeyListIsNull");            Logging.logger().severe(msg);            throw new IllegalArgumentException(msg);        }        Factory factory = (Factory) WorldWind.createConfigurationComponent(factoryClassKey);        return factory.createFromKeys(keys);    }    public static void setValue(String key, String value)    {        instance.wwo.setValue(key, value);    }    public static Object getValue(String key)    {        return instance.wwo.getValue(key);    }    public static String getStringValue(String key)    {        return instance.wwo.getStringValue(key);    }    public static boolean hasKey(String key)    {        return instance.wwo.hasKey(key);    }    public static void removeKey(String key)    {        instance.wwo.removeKey(key);    }    public static void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)    {        instance.wwo.addPropertyChangeListener(propertyName, listener);    }    public static void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)    {        instance.wwo.removePropertyChangeListener(propertyName, listener);    }    public static void addPropertyChangeListener(PropertyChangeListener listener)    {        instance.wwo.addPropertyChangeListener(listener);    }    public static void removePropertyChangeListener(PropertyChangeListener listener)    {        instance.wwo.removePropertyChangeListener(listener);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av毛片久久久久**hd| 国产一区二区三区免费观看| 国产婷婷色一区二区三区| 欧美另类高清zo欧美| 欧美美女一区二区在线观看| 欧美日韩国产综合一区二区三区| 国产suv一区二区三区88区| 国内久久精品视频| 国产另类ts人妖一区二区| 国产伦理精品不卡| 成人精品鲁一区一区二区| 韩国av一区二区三区四区| 国产福利精品一区| 99久久伊人网影院| 一本大道av一区二区在线播放| 色综合天天综合网天天狠天天 | 欧美xxxx老人做受| 2023国产精品| 国产精品久久久久久久久晋中| 国产亚洲人成网站| 亚洲黄一区二区三区| 亚洲成av人片| 精品写真视频在线观看| 国产成人综合网| 欧美怡红院视频| 欧美电影免费观看高清完整版 | 欧美亚洲国产bt| 欧美一区二区私人影院日本| 久久久久久久久97黄色工厂| 亚洲色图色小说| 免费黄网站欧美| 成人av电影在线| 欧美一区二区三区的| 久久日一线二线三线suv| 一区二区中文视频| 乱一区二区av| 色哟哟国产精品| 精品国产a毛片| 一区二区三区加勒比av| 国产一区二区毛片| 欧美午夜电影一区| 国产欧美视频一区二区| 午夜精品影院在线观看| av激情亚洲男人天堂| 这里只有精品免费| 综合精品久久久| 九九精品视频在线看| 色妞www精品视频| 欧美一区二区三区视频免费| 亚洲人成影院在线观看| 极品尤物av久久免费看| 欧美日韩三级在线| 亚洲国产精品成人综合| 日韩不卡一二三区| 欧洲一区在线电影| 亚洲欧洲国产专区| 久久综合综合久久综合| 欧美性生活久久| 亚洲人精品一区| 不卡电影一区二区三区| 国产亚洲欧美日韩俺去了| 免费成人av资源网| 欧美绝品在线观看成人午夜影视| 国产精品国产a| 国产精品一区二区三区网站| 欧美成人国产一区二区| 性久久久久久久久久久久| 色94色欧美sute亚洲13| 亚洲婷婷国产精品电影人久久| 国产精品影音先锋| 久久众筹精品私拍模特| 麻豆精品久久久| 欧美一区二区观看视频| 免费成人小视频| 欧美久久久久中文字幕| 视频一区二区国产| 欧美日韩另类一区| 日日摸夜夜添夜夜添精品视频| 在线看不卡av| 亚洲成人先锋电影| 欧美日韩一区在线观看| 午夜视黄欧洲亚洲| 欧美三级视频在线| 午夜激情一区二区三区| 在线不卡欧美精品一区二区三区| 亚洲综合清纯丝袜自拍| 欧美性猛交xxxx乱大交退制版| 亚洲最快最全在线视频| 欧美日韩激情一区| 日本午夜精品一区二区三区电影| 日韩色视频在线观看| 久久99精品久久久| 中文字幕乱码日本亚洲一区二区| 成人av在线网站| 亚洲一区在线观看视频| 欧美精品日韩一本| 国产精品资源在线观看| 亚洲婷婷综合色高清在线| 欧美在线你懂的| 久久精品国产**网站演员| 日本一区二区电影| 欧美亚洲国产一区在线观看网站| 免费在线观看成人| 欧美国产精品劲爆| 色综合久久中文综合久久97| 丝瓜av网站精品一区二区| 欧美成人bangbros| 91视频一区二区| 日韩不卡一区二区三区| 日本一区二区视频在线| 欧美综合久久久| 精品综合久久久久久8888| 中文字幕人成不卡一区| 日韩午夜激情av| av成人免费在线| 日韩av在线播放中文字幕| 国产欧美日韩精品a在线观看| 欧美在线免费观看亚洲| 国产成人h网站| 午夜欧美在线一二页| 国产精品国产三级国产普通话蜜臀| 欧美日韩激情一区| 91精品国产乱码久久蜜臀| 国产成人av影院| 天天综合色天天| 亚洲欧美日韩一区二区| 欧美精品一区二区三区蜜臀| 欧美午夜精品电影| 成人sese在线| 国产福利精品导航| 久久精品国产99| 视频一区视频二区中文| 亚洲四区在线观看| 久久精品视频免费| 日韩午夜av一区| 欧美日韩一二区| 91电影在线观看| 波多野结衣亚洲| 国产高清亚洲一区| 久久99精品网久久| 麻豆成人久久精品二区三区红| 亚洲欧美日韩国产手机在线| 久久九九影视网| 久久青草国产手机看片福利盒子| 欧美一区二区网站| 6080yy午夜一二三区久久| 欧美视频在线观看一区二区| 色先锋久久av资源部| 91原创在线视频| eeuss鲁片一区二区三区在线看| 精品一区二区三区在线观看国产| 视频一区二区三区在线| 五月天激情小说综合| 亚洲成人激情自拍| 亚洲成人免费av| 日韩精品免费专区| 首页综合国产亚洲丝袜| 日本美女一区二区三区| 日韩不卡免费视频| 韩国成人精品a∨在线观看| 蜜桃视频第一区免费观看| 麻豆国产欧美日韩综合精品二区 | 福利一区福利二区| 成人激情免费视频| 色哟哟一区二区三区| 在线观看日韩国产| 欧美片网站yy| 日韩女优av电影| 久久老女人爱爱| 中文在线免费一区三区高中清不卡| 中文字幕免费一区| 亚洲欧美日韩国产综合在线| 亚洲二区在线视频| 麻豆一区二区在线| 国产美女精品人人做人人爽| 99久久精品一区二区| 欧美视频一区二区三区四区| 日韩情涩欧美日韩视频| 日本一区二区动态图| 亚洲一区欧美一区| 美女在线观看视频一区二区| 成人午夜私人影院| 欧美在线制服丝袜| 日韩欧美电影一区| 国产精品久久一卡二卡| 午夜视频一区二区| 国产不卡视频在线播放| 欧美三日本三级三级在线播放| 国产麻豆精品久久一二三| 99精品热视频| 一本色道亚洲精品aⅴ| 亚洲v精品v日韩v欧美v专区| 激情小说欧美图片| 色诱亚洲精品久久久久久| 日韩精品一区二区三区四区| 欧美激情在线观看视频免费| 亚洲天堂久久久久久久| 秋霞午夜av一区二区三区| 成人精品视频一区二区三区| 欧美三级中文字|