package com.androidol.map.schema; import com.androidol.basetypes.Size; import com.androidol.proj4j.map.proj.ProjectionFactory; import com.androidol.projection.Projection; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.Envelope; import com.vividsolutions.jts.geom.Point; public class ArcGISOnlineWgs84MapSchema implements MapSchema { public static double[] SCALES = { 5.916590302988535E8, 2.9582951514942676E8, 1.4791475757471338E8, 7.395737878735669E7, 3.6978689393678345E7, 1.8489344696839172E7, 9244672.348419586, 4622336.174209793, 2311168.0871048965, 1155584.0435524483, 577792.0217762241, 288896.01088811207, 144448.00544405603, 72224.00272202802, 36112.00136101401, 18056.000680507004, 9028.000340253502, 4514.000170126751, 2257.0000850633755, }; public static double[] RESOLUTIONS = { 1.40625, 0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 0.0006866455078125, 0.00034332275390625, 0.000171661376953125, 8.58306884765625E-05, 4.29153442382813E-05, 2.14576721191407E-05, 1.07288360595703E-05, 5.36441802978515E-06 }; public static int NUM_ZOOM_LEVELS = 19; public static int MAX_ZOOM_LEVEL = 18; public static int MIN_ZOOM_LEVEL = 0; public static double MAX_RESOLUTION = RESOLUTIONS[0]; public static double MIN_RESOLUTION = RESOLUTIONS[NUM_ZOOM_LEVELS-1]; public static double MAX_SCALE = SCALES[0]; public static double MIN_SCALE = SCALES[NUM_ZOOM_LEVELS-1]; public static int DPI = 96; public static String PROJECTION = "epsg:4326"; // mercator auxiliary?? public static String UNITS = "meters"; public static Envelope DEFAULT_MAX_EXTENT = new Envelope(-180.0, 180.0, -90.0, 90.0); public static Envelope DEFAULT_MIN_EXTENT = null; public static Coordinate DEFAULT_CENTER = new Coordinate(0.0, 0.0); public static int DEFAULT_ZOOM_LEVEL = 0; public static double DEFAULT_RESOLUTION = RESOLUTIONS[DEFAULT_ZOOM_LEVEL]; public static double DEFAULT_SCALE = SCALES[DEFAULT_ZOOM_LEVEL]; @Override public int getDpi() { return DPI; } @Override public double getMaxResolution() { return MAX_RESOLUTION; } @Override public double getMaxScale() { return MAX_SCALE; } @Override public int getMaxZoomLevel() { return MAX_ZOOM_LEVEL; } @Override public double getMinResolution() { return MIN_RESOLUTION; } @Override public double getMinScale() { return MIN_SCALE; } @Override public int getMinZoomLevel() { return MIN_ZOOM_LEVEL; } @Override public int getNumZoomLevels() { return NUM_ZOOM_LEVELS; } @Override public String getProjection() { return PROJECTION; } @Override public double[] getResolutions() { return RESOLUTIONS; } @Override public double[] getScales() { return SCALES; } @Override public String getUnits() { return UNITS; } @Override public Envelope getDefaultMaxExtent() { return DEFAULT_MAX_EXTENT; } @Override public Envelope getDefaultMinExtent() { return DEFAULT_MIN_EXTENT; } @Override public Coordinate getDefaultCenter() { //return DEFAULT_CENTER; // Rancho Cucamonga return new Coordinate(-117.5931084, 34.1063989); } @Override public int getDefaultZoomLevel() { return DEFAULT_ZOOM_LEVEL; } @Override public double getDefaultScale() { return DEFAULT_SCALE; } @Override public double getDefaultResolution() { return DEFAULT_RESOLUTION; } }