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

📄 linkmaprequest.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/link/LinkMapRequest.java,v $// $RCSfile: LinkMapRequest.java,v $// $Revision: 1.4.2.2 $// $Date: 2005/08/09 18:10:45 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.layer.link;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.util.Debug;import java.io.IOException;/** * A LinkMapRequest presents a view onto a map. This view can be used * to create a list of graphics that should be added to the map, or to * query a spatial database engine for other graphics. * <P> *  * This object can be used to write the query to the link, and to read * the query from the link. */public class LinkMapRequest {    /** The latitude/longitude of the center of the map. */    protected LatLonPoint center;    /** The scale of the map. The value is interpreted as 1:<scale> */    protected float scale;    /**     * A series of LinkBoundingPoly objects making up polygons of     * interest. NOTE: These polygons do not cover the poles, or cross     * the dateline. For areas like that that need to be described,,     * several LinkBoundingPolys must be used.     */    protected LinkBoundingPoly[] boundingPolys;    /** Height of the map, in pixels. */    protected int height;    /** Width of the map, in pixels. */    protected int width;    /** Key value pairs of properties sent along with the map. */    protected LinkProperties properties;    /** Version Number of request format. */    protected static float version = Link.LINK_VERSION;    /** The terminator of the graphics section when receiving graphics. */    String linkStatus = Link.END_TOTAL;    /**     * The constructor to use when reading the LinkMapRequest off the     * link.     *      * @param link the Link to read from.     * @throws IOException     */    public LinkMapRequest(Link link) throws IOException {        linkStatus = read(link);    }    /**     * Return the header for this object.     *      * @return the String representing the header.     */    public String getType() {        return Link.MAP_REQUEST_HEADER;    }    /**     * After reading the gesture response, this returns the section     * ending string terminating the gesture section, either     * Link.END_TOTAL or Link.END_SECTION.     *      * @return either Link.END_TOTAL or Link.END_SECTION.     */    public String getLinkStatus() {        return linkStatus;    }    /**     * Write the request to the link.     *      * @param centerLat center latitude, in decimal degrees.     * @param centerLon center longitude, in decimal degrees.     * @param scale scale of map.     * @param height height of map in pixels.     * @param width width of map in pixels.     * @param boundingPolys An array of polygons of interest. Each     *        bounding polygon is a series of floats, alternating     *        latitude and longitude values.     * @param props Properties object containing key-value attributes.     * @param link link to write to.     */    public static void write(float centerLat, float centerLon, float scale,                             int height, int width,                             LinkBoundingPoly[] boundingPolys,                             LinkProperties props, Link link)            throws IOException {        int i;        link.start(Link.MAP_REQUEST_HEADER);        link.dos.writeFloat(version);        link.dos.writeFloat(centerLat);        link.dos.writeFloat(centerLon);        link.dos.writeFloat(scale);        link.dos.writeInt(height);        link.dos.writeInt(width);        link.dos.writeInt(boundingPolys.length);        for (i = 0; i < boundingPolys.length; i++) {            boundingPolys[i].write(link.dos);        }        props.write(link);        link.end(Link.END_TOTAL);        if (Debug.debugging("link")) {            System.out.println("LinkMapRequest wrote:");            System.out.println(" version = " + version);            System.out.println(" lat = " + centerLat);            System.out.println(" lon = " + centerLon);            System.out.println(" scale = " + scale);            System.out.println(" height = " + height);            System.out.println(" width = " + width);            System.out.println(" bounding polys:");            for (i = 0; i < boundingPolys.length; i++) {                System.out.println(boundingPolys[i]);            }            System.out.println(" Args:");            System.out.println(props);        }    }    /**     * Read the link to create the request object. Assumes the header     * has already been read.     *      * @param link the link to read.     * @throws IOException.     */    public String read(Link link) throws IOException {        Debug.message("link", "LinkMapRequest: read()");        float ver = link.dis.readFloat();        if (ver != version) {            if (ver == .1) {// Big differece....                throw new IOException("LinkMapRequest: Versions do not match! DANGER!");            } else {                Debug.message("link", "LinkMapRequest: Versions do not match");            }        }        float lat = link.dis.readFloat();        float lon = link.dis.readFloat();        center = new LatLonPoint(lat, lon);        scale = link.dis.readFloat();        height = link.dis.readInt();        width = link.dis.readInt();        int length = link.dis.readInt();        boundingPolys = new LinkBoundingPoly[length];        for (int i = 0; i < boundingPolys.length; i++) {            boundingPolys[i] = new LinkBoundingPoly(link.dis);        }        properties = new LinkProperties(link);        return link.readDelimiter(false);    }    /** Get the center of the map. */    public LatLonPoint getCenter() {        return center;    }    /** Get the scale of the map. */    public float getScale() {        return scale;    }    /** Get the height of map in pixels. */    public int getHeight() {        return height;    }    /** Get the width of the map in pixels. */    public int getWidth() {        return width;    }    /** Get an array of bounding polygons. */    public LinkBoundingPoly[] getBoundingPolys() {        return boundingPolys;    }    /** Get the key-value arguments for the request. */    public LinkProperties getProperties() {        return properties;    }    public String toString() {        StringBuffer s = new StringBuffer();        s.append("LinkMapRequest:\n");        s.append("LinkMapRequest wrote:\n");        s.append(" version = " + version + "\n");        s.append(" center = " + center + "\n");        s.append(" scale = " + scale + "\n");        s.append(" height = " + height + "\n");        s.append(" width = " + width + "\n");        s.append(" " + boundingPolys.length + " bounding polys:");        int i;        for (i = 0; i < boundingPolys.length; i++) {            s.append("\n" + boundingPolys[i]);        }        return s.toString();    }}

⌨️ 快捷键说明

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