001/* 002 * To change this template, choose Tools | Templates 003 * and open the template in the editor. 004 */ 005 006package armyc2.c5isr.renderer.utilities; 007 008 009//import android.graphics.Point; 010import android.graphics.PointF; 011//import Point2D; 012//import Point2D; 013import armyc2.c5isr.graphics2d.*; 014import armyc2.c5isr.graphics2d.Point2D; 015 016/** 017 * 018* 019 */ 020public class PointConverter3D implements IPointConversion 021{ 022 private double _controlLat=0; 023 private double _controlLong=0; 024 private double _scale=0; 025 private double _metersPerPixel=0; 026 public PointConverter3D(double controlLong, double controlLat, double scale) 027 { 028 try 029 { 030 this._controlLat=controlLat; 031 this._controlLong=controlLong; 032 this._scale=scale; 033 _metersPerPixel=GeoPixelConversion3D.metersPerPixel(scale); 034 } 035 catch(Error e) 036 { 037 throw e; 038 } 039 } 040 public PointF PixelsToGeo(PointF pixel) 041 { 042 PointF pt2dGeo=null; 043 try 044 { 045 double y=GeoPixelConversion3D.y2lat(pixel.y, _scale, _controlLat, _metersPerPixel); 046 double x=GeoPixelConversion3D.x2long(pixel.x, _scale, _controlLong, y, _metersPerPixel); 047 pt2dGeo=new PointF((float)x,(float)y); 048 } 049 catch(Error e) 050 { 051 throw e; 052 } 053 return pt2dGeo; 054 } 055 056 public PointF GeoToPixels(PointF coord) 057 { 058 PointF ptPixels=null; 059 try 060 { 061 double y=GeoPixelConversion3D.lat2y(coord.y, _scale, _controlLat, _metersPerPixel); 062 double x=GeoPixelConversion3D.long2x(coord.x, _scale, _controlLong, coord.y, _metersPerPixel); 063 ptPixels=new PointF((float)x,(float)y); 064 } 065 catch(Error e) 066 { 067 throw e; 068 } 069 return ptPixels; 070 } 071// @Override 072// public Point2D PixelsToGeo(Point pixel) { 073// 074// return (Point2D)PixelsToGeo(new Point2D.Double(pixel.x, pixel.y)); 075// } 076// @Override 077// public Point GeoToPixels(Point2D coord) { 078 079// Point2D temp = PixelsToGeo(coord); 080// return new Point((int)temp.getX(),(int)temp.getY()); 081// } 082 @Override 083 public Point2D PixelsToGeo(Point2D pixel) { 084 085 Point2D pt2dGeo=null; 086 try 087 { 088 double y=GeoPixelConversion3D.y2lat(pixel.getY(), _scale, _controlLat, _metersPerPixel); 089 double x=GeoPixelConversion3D.x2long(pixel.getX(), _scale, _controlLong, y, _metersPerPixel); 090 pt2dGeo=new Point2D.Double(x,y); 091 } 092 catch(Error e) 093 { 094 throw e; 095 } 096 return pt2dGeo; 097 } 098 //@Override 099 public Point2D GeoToPixels(Point2D coord) { 100 Point2D ptPixels=null; 101 try 102 { 103 double y=GeoPixelConversion3D.lat2y(coord.getY(), _scale, _controlLat, _metersPerPixel); 104 double x=GeoPixelConversion3D.long2x(coord.getX(), _scale, _controlLong, coord.getY(), _metersPerPixel); 105 ptPixels=new Point2D.Double(x,y); 106 } 107 catch(Error e) 108 { 109 throw e; 110 } 111 return ptPixels; 112 } 113 114}