package com.agup.gps.utils; import java.util.Map; import com.esri.core.geometry.GeometryEngine; import com.esri.core.geometry.Polygon; import android.graphics.Point; public class DrawCircle { public DrawCircle(){ } public void createMercatorCircle(double radius, Point center){ double lon1 = degToRad(center.x); double lat1 = degToRad(center.y); double R_KM = 6371; //radius km double R_MI = 3963; //radius mi //double d = radius/R_KM; //angular distance on earth's surface double d = radius/R_MI; Polygon circle = new Polygon(); int nodes = 100; //number of nodes in circle int step = Math.round(360/nodes); int n = 0; double[] pointArray; for(int x = 0; x <= 360; x++){ int z = Math.round(n+=step); double bearing = degToRad(x); double lat2 = Math.asin( Math.sin(lat1) * Math.cos(d) + Math.cos(lat1) * Math.sin(d) * Math.cos(bearing) ); double lon2 = lon1 + Math.atan2( Math.sin(bearing) * Math.sin(d) * Math.cos(lat1), Math.cos(d) - Math.sin(lat1) * Math.sin(lat2) ); //pointArray[x] = GeometryEngine.project(x, y, sr) } } public static double radToDeg(double radians){ return radians * 180 / Math.PI; } public static double degToRad(double degrees){ return degrees * Math.PI / 180; } }