⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 urlrasterlocation.java

📁 openmap java写的开源数字地图程序. 用applet实现,可以像google map 那样放大缩小地图.
💻 JAVA
字号:
// **********************************************************************// // <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/openmap/com/bbn/openmap/layer/location/URLRasterLocation.java,v $// $RCSfile: URLRasterLocation.java,v $// $Revision: 1.5.2.3 $// $Date: 2005/09/13 14:39:56 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.layer.location;/*  Java Core  */import java.net.URL;import javax.swing.ImageIcon;import com.bbn.openmap.omGraphics.OMRaster;import com.bbn.openmap.util.PropUtils;/** * A Location that takes an URL for an image and creates a Raster for * a Location marker. The URL should be the contents of an image file * (gif, jpeg) that an ImageIcon object can use to create an Image * object. The string for an icon can be a path to a resource, file or * URL, and the URLRasterLocation will convert it to a URL. */public class URLRasterLocation extends Location {    /** The spacing between the label and the outside of the image. */    public int SPACING = 0;    /**     * A constructor to enable creation of subclasses.     */    public URLRasterLocation() {}        /**     * Create a ByteRasterLocation at a latitude/longtude location.     *      * @param latitude latitide in decimal degrees     * @param longitude longitude in decimal degrees.     * @param name the label for the location.     * @param iconURL a string to a URL for an image     */    public URLRasterLocation(float latitude, float longitude, String name,            String iconURL) {        super(latitude, longitude, name, getIconRaster(latitude,                longitude,                iconURL));        if (location instanceof OMRaster) {            setHorizontalLabelBuffer((((OMRaster) location).getWidth() / 2)                    + SPACING);        }    }    /**     * Create a ByteRasterLocation at a latitude/longtude location.     *      * @param latitude latitide in decimal degrees     * @param longitude longitude in decimal degrees.     * @param name the label for the location.     * @param iconURL a URL for an image     */    public URLRasterLocation(float latitude, float longitude, String name,            URL iconURL) {        super(latitude, longitude, name, getIconRaster(latitude,                longitude,                iconURL));        if (location instanceof OMRaster) {            setHorizontalLabelBuffer((((OMRaster) location).getWidth() / 2)                    + SPACING);        }    }    /**     * Create a ByteRasterLocation at a screen x/y location.     *      * @param x horizontal pixel screen location from the the left     *        side of the map.     * @param y vertical pixel screen location, from the top of the     *        map.     * @param name the label for the location.     * @param iconURL a String for a URL for an image     */    public URLRasterLocation(int x, int y, String name, String iconURL) {        super(x, y, name, getIconRaster(x, y, iconURL));        if (location instanceof OMRaster) {            setHorizontalLabelBuffer((((OMRaster) location).getWidth() / 2)                    + SPACING);        }    }    /**     * Create a ByteRasterLocation at a screen x/y location.     *      * @param x horizontal pixel screen location from the the left     *        side of the map.     * @param y vertical pixel screen location, from the top of the     *        map.     * @param name the label for the location.     * @param iconURL a URL for an image     */    public URLRasterLocation(int x, int y, String name, URL iconURL) {        super(x, y, name, getIconRaster(x, y, iconURL));        if (location instanceof OMRaster) {            setHorizontalLabelBuffer((((OMRaster) location).getWidth() / 2)                    + SPACING);        }    }    /**     * Create a ByteRasterLocation at a screen x/y location.     *      * @param latitude latitide in decimal degrees     * @param longitude longitude in decimal degrees.     * @param xOffset horizontal pixel screen location from the     *        longitude map point.     * @param yOffset vertical pixel screen location, from the     *        latitide map point.     * @param name the label for the location.     * @param iconURL a String for a URL for an image     */    public URLRasterLocation(float latitude, float longitude, int xOffset,            int yOffset, String name, String iconURL) {        super(latitude,              longitude,              xOffset,              yOffset,              name,              getIconRaster(latitude, longitude, xOffset, yOffset, iconURL));        if (location instanceof OMRaster) {            setHorizontalLabelBuffer((((OMRaster) location).getWidth() / 2)                    + SPACING);        }    }    /**     * Create a ByteRasterLocation at a screen x/y location.     *      * @param latitude latitide in decimal degrees     * @param longitude longitude in decimal degrees.     * @param xOffset horizontal pixel screen location from the     *        longitude map point.     * @param yOffset vertical pixel screen location, from the     *        latitide map point.     * @param name the label for the location.     * @param iconURL a URL for an image     */    public URLRasterLocation(float latitude, float longitude, int xOffset,            int yOffset, String name, URL iconURL) {        super(latitude,              longitude,              xOffset,              yOffset,              name,              getIconRaster(latitude, longitude, xOffset, yOffset, iconURL));        if (location instanceof OMRaster) {            setHorizontalLabelBuffer((((OMRaster) location).getWidth() / 2)                    + SPACING);        }    }    /**     * Create an OMRaster at a latitude/longitude, from a image URL.     *      * @param lat latitide in decimal degrees     * @param lon longitude in decimal degrees.     * @param iconURL a URL for an image     */    public static OMRaster getIconRaster(float lat, float lon, String iconURL) {        URL url = getIconRasterURL(iconURL);        if (url == null)            return null;        return getIconRaster(lat, lon, url);    }    /**     * Create an OMRaster at a latitude/longitude, from a image URL.     *      * @param lat latitide in decimal degrees     * @param lon longitude in decimal degrees.     * @param iconURL a URL for an image     */    public static OMRaster getIconRaster(float lat, float lon, URL iconURL) {        ImageIcon icon = new ImageIcon(iconURL);        if (icon == null)            return null;        int offX = icon.getIconWidth() / 2;        int offY = icon.getIconHeight() / 2;        return new OMRaster(lat, lon, -offX, -offY, icon);    }    /**     * Create an OMRaster at a latitude/longitude, from a image URL.     *      * @param x horizontal pixel screen location from the the left     *        side of the map.     * @param y vertical pixel screen location, from the top of the     *        map.     * @param iconURL a String for a URL for an image     */    public static OMRaster getIconRaster(int x, int y, String iconURL) {        URL url = getIconRasterURL(iconURL);        if (url == null)            return null;        return getIconRaster(x, y, url);    }    /**     * Create an OMRaster at a latitude/longitude, from a image URL.     *      * @param x horizontal pixel screen location from the the left     *        side of the map.     * @param y vertical pixel screen location, from the top of the     *        map.     * @param iconURL a URL for an image     */    public static OMRaster getIconRaster(int x, int y, URL iconURL) {        ImageIcon icon = new ImageIcon(iconURL);        if (icon == null)            return null;        int offX = icon.getIconWidth() / 2;        int offY = icon.getIconHeight() / 2;        return new OMRaster(x - offX, y - offY, icon);    }    /**     * Create an OMRaster at a latitude/longitude, from a image URL.     *      * @param lat latitide in decimal degrees     * @param lon longitude in decimal degrees.     * @param x horizontal pixel screen location from the longitude     *        map point.     * @param y vertical pixel screen location, from the latitide map     *        point.     * @param iconURL a String for URL for an image     */    public static OMRaster getIconRaster(float lat, float lon, int x, int y,                                         String iconURL) {        URL url = getIconRasterURL(iconURL);        if (url == null)            return null;        return getIconRaster(lat, lon, x, y, url);    }    /**     * Create an OMRaster at a latitude/longitude, from a image URL.     *      * @param lat latitide in decimal degrees     * @param lon longitude in decimal degrees.     * @param x horizontal pixel screen location from the longitude     *        map point.     * @param y vertical pixel screen location, from the latitide map     *        point.     * @param iconURL a URL for an image     */    public static OMRaster getIconRaster(float lat, float lon, int x, int y,                                         URL iconURL) {        ImageIcon icon = new ImageIcon(iconURL);        if (icon == null)            return null;        int offX = icon.getIconWidth() / 2;        int offY = icon.getIconHeight() / 2;        return new OMRaster(lat, lon, x - offX, y - offY, icon);    }    /**     * Create an ImageIcon from a String to an image URL.     *      * @param iconURL can be a path to a resource, file or URL.     */    public static URL getIconRasterURL(String iconURL) {        try {            return PropUtils.getResourceOrFileOrURL(null, iconURL);        } catch (java.net.MalformedURLException mue) {            throw new com.bbn.openmap.util.HandleError(mue);        }    }    /**     * Given a new latitude/longitude, reposition the graphic and     * label.     */    public void setGraphicLocations(float latitude, float longitude) {        if (location instanceof OMRaster) {            OMRaster ras = (OMRaster) location;            ras.setLat(latitude);            ras.setLon(longitude);            label.setLat(latitude);            label.setLon(longitude);            setHorizontalLabelBuffer((((OMRaster) location).getWidth() / 2)                    + SPACING);        }    }    /**     * Given a new x/y screen location, reposition the graphic and     * label.     */    public void setGraphicLocations(int x, int y) {        if (location instanceof OMRaster) {            OMRaster ras = (OMRaster) location;            ras.setX(x);            ras.setY(y);            label.setX(x);            label.setY(y);            setHorizontalLabelBuffer((((OMRaster) location).getWidth() / 2)                    + SPACING);        }    }    /**     * Given a new latitude/longitude with x/y offset points,     * reposition the graphic and label.     */    public void setGraphicLocations(float latitude, float longitude,                                    int offsetX, int offsetY) {        if (location instanceof OMRaster) {            OMRaster ras = (OMRaster) location;            ras.setLat(latitude);            ras.setLon(longitude);            ras.setX(offsetX);            ras.setY(offsetY);            label.setLat(latitude);            label.setLon(longitude);            label.setX(offsetX);            label.setY(offsetY);            setHorizontalLabelBuffer((((OMRaster) location).getWidth() / 2)                    + SPACING);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -