📄 zonedutmpoint.java
字号:
//**********************************************************************////<copyright>////BBN Technologies, a Verizon Company//10 Moulton Street//Cambridge, MA 02138//(617) 873-8000////Copyright (C) BBNT Solutions LLC. All rights reserved.////</copyright>//**********************************************************************////$Source:///cvs/darwars/ambush/aar/src/com/bbn/ambush/mission/MissionHandler.java,v//$//$RCSfile: ZonedUTMPoint.java,v $//$Revision: 1.1.2.2 $//$Date: 2005/08/11 21:03:10 $//$Author: dietrick $////**********************************************************************package com.bbn.openmap.proj.coords;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.proj.Ellipsoid;/** * A ZonedUTMPoint is a UTMPoint that handles a MGRS zone letter * instead of N or S. * * @author dietrick */public class ZonedUTMPoint extends UTMPoint { /** * Constructor pass-through. */ public ZonedUTMPoint() { super(); } /** * @param northing The northing component. * @param easting The easting component. * @param zone_number The zone of the coordinate. * @param zone_letter MGRS zone letter */ public ZonedUTMPoint(float northing, float easting, int zone_number, char zone_letter) { super(northing, easting, zone_number, MGRSPoint.MGRSZoneToUTMZone(zone_letter)); } /** * Constructor pass-through. */ public ZonedUTMPoint(UTMPoint point) { super(point); } /** * Constructor pass-through. */ public ZonedUTMPoint(LatLonPoint llpoint) { super(llpoint); } /** * Constructor pass-through. */ public ZonedUTMPoint(LatLonPoint llpoint, Ellipsoid ellip) { super(llpoint, ellip); } /** * Converts UTM coords to lat/long given an ellipsoid. * <p> * Equations from USGS Bulletin 1532 <br> * East Longitudes are positive, West longitudes are negative. * <br> * North latitudes are positive, South latitudes are negative. * <br> * * @param ellip an ellipsoid definition. * @param UTMNorthing A float value for the northing to be * converted. * @param UTMEasting A float value for the easting to be * converted. * @param ZoneNumber An int value specifiying the UTM zone number. * @param ZoneLetter A char value specifying the ZoneLetter within * the ZoneNumber, letter being MGRS zone. * @param llpoint a LatLonPoint, if you want it to be filled in * with the results. If null, a new LatLonPoint will be * allocated. * @return A LatLonPoint class instance containing the lat/long * value, or <code>null</code> if conversion failed. If * you pass in a LatLonPoint, it will be returned as well, * if successful. */ public static LatLonPoint ZonedUTMtoLL(Ellipsoid ellip, float UTMNorthing, float UTMEasting, int ZoneNumber, char ZoneLetter, LatLonPoint llpoint) { return UTMPoint.UTMtoLL(ellip, UTMNorthing, UTMEasting, ZoneNumber, MGRSPoint.MGRSZoneToUTMZone(ZoneLetter), llpoint); } /** * Determines the correct MGRS letter designator for the given * latitude returns 'Z' if latitude is outside the MGRS limits of * 84N to 80S. * * @param lat The float value of the latitude. * * @return A char value which is the MGRS zone letter. */ protected char getLetterDesignator(double lat) { //This is here as an error flag to show that the Latitude is //outside MGRS limits char LetterDesignator = 'Z'; if ((84 >= lat) && (lat >= 72)) LetterDesignator = 'X'; else if ((72 > lat) && (lat >= 64)) LetterDesignator = 'W'; else if ((64 > lat) && (lat >= 56)) LetterDesignator = 'V'; else if ((56 > lat) && (lat >= 48)) LetterDesignator = 'U'; else if ((48 > lat) && (lat >= 40)) LetterDesignator = 'T'; else if ((40 > lat) && (lat >= 32)) LetterDesignator = 'S'; else if ((32 > lat) && (lat >= 24)) LetterDesignator = 'R'; else if ((24 > lat) && (lat >= 16)) LetterDesignator = 'Q'; else if ((16 > lat) && (lat >= 8)) LetterDesignator = 'P'; else if ((8 > lat) && (lat >= 0)) LetterDesignator = 'N'; else if ((0 > lat) && (lat >= -8)) LetterDesignator = 'M'; else if ((-8 > lat) && (lat >= -16)) LetterDesignator = 'L'; else if ((-16 > lat) && (lat >= -24)) LetterDesignator = 'K'; else if ((-24 > lat) && (lat >= -32)) LetterDesignator = 'J'; else if ((-32 > lat) && (lat >= -40)) LetterDesignator = 'H'; else if ((-40 > lat) && (lat >= -48)) LetterDesignator = 'G'; else if ((-48 > lat) && (lat >= -56)) LetterDesignator = 'F'; else if ((-56 > lat) && (lat >= -64)) LetterDesignator = 'E'; else if ((-64 > lat) && (lat >= -72)) LetterDesignator = 'D'; else if ((-72 > lat) && (lat >= -80)) LetterDesignator = 'C'; return LetterDesignator; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -