diff --git a/app/src/main/artwork/map/worldmap.qgs b/app/src/main/artwork/map/worldmap.qgs index 70910f89a5..0ee9f4440c 100644 --- a/app/src/main/artwork/map/worldmap.qgs +++ b/app/src/main/artwork/map/worldmap.qgs @@ -1,92 +1,401 @@ - + Suntimes Worldmap - - - + + - - +proj=aeqd +lat_0=30.05 +lon_0=31.22 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs - 100026 + + PROJCRS["World_Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World_Mercator",METHOD["Mercator (variant B)",ID["EPSG",9805]],PARAMETER["Latitude of 1st standard parallel",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54004]] + +proj=merc +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 27874 + 54004 + ESRI:54004 + World_Mercator + merc + EPSG:7030 + false + + + + + + + 0 0 - USER:100026 - Cairo - Sphere Azimuthal Equidistant [30.05,31.22] - aeqd + + + false - + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ne_10m_land_a4bd8013_75ae_4ed1_a9c2_ba2d3660d3dd + 8k_earth_daymap_modified_1c9d7f4a_9218_45bc_b8c9_be4d3428f09c + World_Bedrock_Digital_Elevation_Model_modified_7bdebd53_5cf8_4738_8c00_1d6e92f71e68 + gebco_08_rev_bath_5400x2700_modified_e18cc83c_5d74_4cb4_a825_4efdd714394a + gebco_08_rev_elev_5400x2700_modified_76eac4de_ad02_4c4b_a580_4c6b02bf440b + Densified_8d776615_d259_4811_b401_e2883344df3f + solartexture_earth_bathy_5400x2700_modified_1e561fcd_139f_4efa_8e0f_d94bb13c1b53 + world_topo_bathy_200412_3x5400x2700_modified_a12a5288_8cab_4c05_967b_fe8770088678 + world_topo_200407_3x5400x2700_modified_10b39b06_a03d_45b5_b5ec_b75333b26380 + Extent_2bf1b5ec_23e1_4458_ad53_54cbb4c662af + center_b9dc3579_1662_4c90_b23b_000026826052 + continent_7d2511b2_c5bd_489d_8e2a_cd5ac81dc513 + 8k_earth_nightmap_modified_95201ad4_4885_4fa2_bca3_ace0b563b763 + dmsp_4096_modified_f50a2cba_6e1a_48ab_8d0c_82c6671d7e30 + dnb_land_ocean_ice_2012_3600x1800_modified_e1e59a30_cf88_40e3_b072_cf5936765ea4 + land_ocean_ice_2048_modified_894d7a3f_21b4_455a_bb4c_8792e4e37d3a + land_ocean_ice_lights_2048_modified2_a4a3ddb3_281a_4f45_b25c_61e6109e3e01 + Color_etopo1_ice_low_modified2_cf9f0d57_7e79_49d8_964c_20609c57fd03 + color_etopo1_ice_low_eqc_modified_65c5dc6a_542c_4b35_835f_f0c78d8152b6 + color_etopo1_ice_low_2700_modified_dcb50452_fc18_4f07_a1fc_e27969bdb134 - + - + + + + + - + + meters - -19304130.72350786626338959 - -19432421.82540490478277206 - 18642801.08532451093196869 - 18958544.43187540769577026 + -10625874.1381758451461792 + -5222691.42533718422055244 + 13174723.25993816554546356 + 8492813.10257577896118164 0 - - +proj=aeqd +lat_0=30.05 +lon_0=31.22 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs - 100026 - 0 - USER:100026 - Cairo - Sphere Azimuthal Equidistant [30.05,31.22] - aeqd - + + PROJCRS["World_Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World_Mercator",METHOD["Mercator (variant B)",ID["EPSG",9805]],PARAMETER["Latitude of 1st standard parallel",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54004]] + +proj=merc +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 27874 + 54004 + ESRI:54004 + World_Mercator + merc + EPSG:7030 false 0 + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + unknown + + -2700 + -2771.71875 + 2700 + -71.71875 + + 0 + 0 + + + + Annotations_ba6df2d1_8da5_4b17_903b_79e8357dbb26 + + + + + PROJCRS["World_Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World_Mercator",METHOD["Mercator (variant B)",ID["EPSG",9805]],PARAMETER["Latitude of 1st standard parallel",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54004]] + +proj=merc +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 27874 + 54004 + ESRI:54004 + World_Mercator + merc + EPSG:7030 + false + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + false + + + + + + + 1 + 1 + 1 + 0 + + + + 1 + 0 + + - + - -179.99999999999991473 - -89.99999999999994316 - 180 - 83.63410065300007545 + -180.00000000000011369 + -90.00000000000001421 + 179.99999999999971578 + 89.99999999999990052 - ne_10m_land_a4bd8013_75ae_4ed1_a9c2_ba2d3660d3dd - /vsizip/./ne_10m_land.zip - - - - ne_10m_land + + -180.00000000000011369 + -90.00000000000001421 + 179.99999999999971578 + 89.99999999999990052 + + 8k_earth_daymap_modified_1c9d7f4a_9218_45bc_b8c9_be4d3428f09c + D:/Documents/misc/worldmap/bluemarble/2k_earth/8k_earth_daymap_modified.tif + 8k_earth_daymap_modified - + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] +proj=longlat +datum=WGS84 +no_defs 3452 4326 EPSG:4326 WGS 84 longlat - WGS84 + EPSG:7030 true @@ -94,7 +403,7 @@ - + dataset @@ -107,22 +416,24 @@ + - - - 0 - 0 - - - - + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 false - + @@ -131,690 +442,8608 @@ - ogr - - - - - + gdal + + + + + - - - - - - - - - - - - - - - - + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 7 + 255 + NoEnhancement + + + 35 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180.00000000000011369 + -90.00000000000001421 + 179.99999999999971578 + 89.99999999999990052 + + + -180.00000000000011369 + -90.00000000000001421 + 179.99999999999971578 + 89.99999999999990052 + + 8k_earth_nightmap_modified_95201ad4_4885_4fa2_bca3_ace0b563b763 + D:/Documents/misc/worldmap/bluemarble/2k_earth/8k_earth_nightmap_modified.tif + 8k_earth_nightmap_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + 0 + 230 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + Color_etopo1_ice_low_modified2_cf9f0d57_7e79_49d8_964c_20609c57fd03 + D:/Documents/misc/worldmap/bluemarble/etopo/Color_etopo1_ice_low_modified2.tif + Color_etopo1_ice_low_modified2 + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -179.99999999999991473 + -89.99999999999994316 + 180 + 83.63410065300007545 + + + -179.99999999999991473 + -89.99999999999994316 + 180 + 83.63410065300007545 + + Densified_8d776615_d259_4811_b401_e2883344df3f + ne_10m_land_tmerc.shp + tmerc fixed + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + + ogr + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + + + + "featurecla" + + + + Extent_2bf1b5ec_23e1_4458_ad53_54cbb4c662af + memory?geometry=Polygon&crs=EPSG:4326&field=MINX:double(0,0)&field=MINY:double(0,0)&field=MAXX:double(0,0)&field=MAXY:double(0,0)&field=CNTX:double(0,0)&field=CNTY:double(0,0)&field=AREA:double(0,0)&field=PERIM:double(0,0)&field=HEIGHT:double(0,0)&field=WIDTH:double(0,0) + Extent + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + + + + + + + 0 + 0 + + + + + false + + + + + memory + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + -20037508.34278924763202667 + -10018754.17139462381601334 + 20037508.34278924763202667 + 10018754.17139462381601334 + + + -180.00000000000002842 + -90.15030749676483879 + 180 + 90 + + World_Bedrock_Digital_Elevation_Model_modified_7bdebd53_5cf8_4738_8c00_1d6e92f71e68 + D:/Documents/misc/worldmap/bluemarble/World Bedrock Digital Elevation Model/World_Bedrock_Digital_Elevation_Model_modified.tif + World_Bedrock_Digital_Elevation_Model_modified + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + dataset + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 3 + 255 + NoEnhancement + + + 18 + 255 + NoEnhancement + + + 3 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + 0.02232184041695007 + 0.00248704931572519 + 0.02232184041695007 + 0.00248704931572519 + + + 0.02232184041695007 + 0.00248704931572519 + 0.02232184041695007 + 0.00248704931572519 + + center_b9dc3579_1662_4c90_b23b_000026826052 + center.shp + center + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + ogr + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + color_etopo1_ice_low_2700_modified_dcb50452_fc18_4f07_a1fc_e27969bdb134 + D:/Documents/misc/worldmap/bluemarble/etopo/color_etopo1_ice_low_2700_modified.tif + color_etopo1_ice_low_2700_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 254 + NoEnhancement + + + 1 + 253 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + color_etopo1_ice_low_eqc_modified_65c5dc6a_542c_4b35_835f_f0c78d8152b6 + D:/Documents/misc/worldmap/bluemarble/etopo/color_etopo1_ice_low_eqc_modified.tif + color_etopo1_ice_low_eqc_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 1 + 250 + NoEnhancement + + + 5 + 247 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -90 + 180 + 83.62359619140625 + + + -180 + -90 + 180 + 83.62359619140625 + + continent_7d2511b2_c5bd_489d_8e2a_cd5ac81dc513 + D:\Downloads\continent_shapefile\continent shapefile\continent.shp + continent + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + World Continents represents the boundaries for the continents of the world. + +used to create the World Map Templates Series. + +Largest scale when displaying the data: 1:15,000,000. + + polygon + + + + mailing and physical address +
380 New York Street
+ Redlands + California + 92373-8100 + USA +
+ Environmental Systems Research Institute, Inc. (ESRI) + Environmental Systems Research Institute, Inc. (ESRI) + + 909-793-2853 + 909-793-5953 + info@esri.com + Point of contact +
+ + + + + + Distributed with ArcGIS 8 software + See the ESRI License Agreement for Disclaimer of Warranties and Limitation on Liabilities with respect to the sample Data contained herein. The sample Data is the intellectual property of the respective data provider(s) and is used herein with permission. ESRI Data and Maps CDs, Copyright © 2000, ESRI, Inc. All rights not granted herein are reserved. The sample Data may only be used for the licensee's own internal use only. For further redistribution rights please contact the data provider(s) directly with the contact information provided in this metadata. + + + + + + 0 + 0 + + + + + false + + + +
+ ogr + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + +
+ + + -180 + -90.00000000000002842 + 179.99999999999994316 + 89.99999999999994316 + + + -180 + -90.00000000000002842 + 179.99999999999994316 + 89.99999999999994316 + + dmsp_4096_modified_f50a2cba_6e1a_48ab_8d0c_82c6671d7e30 + D:/Documents/misc/worldmap/bluemarble/dmsp_4096_modified.tif + dmsp_4096_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + 2 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + dnb_land_ocean_ice_2012_3600x1800_modified_e1e59a30_cf88_40e3_b072_cf5936765ea4 + D:/Documents/misc/worldmap/bluemarble/dnb_land_ocean_ice.2012.3600x1800_modified.tif + dnb_land_ocean_ice.2012.3600x1800_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + gebco_08_rev_bath_5400x2700_modified_e18cc83c_5d74_4cb4_a825_4efdd714394a + D:/Documents/misc/worldmap/bluemarble/bluemarble_base/gebco_08_rev_bath_5400x2700_modified.tif + gebco_08_rev_bath_5400x2700_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + gebco_08_rev_elev_5400x2700_modified_76eac4de_ad02_4c4b_a580_4c6b02bf440b + D:/Documents/misc/worldmap/bluemarble/bluemarble_base/gebco_08_rev_elev_5400x2700_modified.tif + gebco_08_rev_elev_5400x2700_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 240 + NoEnhancement + + + 0 + 240 + NoEnhancement + + + 0 + 240 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + land_ocean_ice_2048_modified_894d7a3f_21b4_455a_bb4c_8792e4e37d3a + D:/Documents/misc/worldmap/bluemarble/bluemarble_2002/land_ocean_ice_2048_modified.tif + land_ocean_ice_2048_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + land_ocean_ice_lights_2048_modified2_a4a3ddb3_281a_4f45_b25c_61e6109e3e01 + D:/Documents/misc/worldmap/bluemarble/bluemarble_2002/land_ocean_ice_lights_2048_modified2.tif + land_ocean_ice_lights_2048_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + 0 + 253 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -179.99999999999991473 + -89.99999999999994316 + 180 + 83.63410065300007545 + + + -179.99999999999991473 + -89.99999999999994316 + 180 + 83.63410065300007545 + + ne_10m_land_a4bd8013_75ae_4ed1_a9c2_ba2d3660d3dd + /vsizip/./ne_10m_land.zip + ne_10m_land + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + + + + + + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + + ogr + + + + + + + + + + 1 + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + 0 + generatedlayout + + + + + + + + + + + + + + + + + + "featurecla" + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + solartexture_earth_bathy_5400x2700_modified_1e561fcd_139f_4efa_8e0f_d94bb13c1b53 + D:\Documents\misc\worldmap\bluemarble\solartexture.earth.bathy.5400x2700_modified.tif + solartexture.earth.bathy.5400x2700_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 253 + NoEnhancement + + + 0 + 253 + NoEnhancement + + + 0 + 254 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -90 + 180 + 90 + + + -180 + -90 + 180 + 90 + + world_topo_200407_3x5400x2700_modified_10b39b06_a03d_45b5_b5ec_b75333b26380 + D:/Documents/misc/worldmap/bluemarble/topo_2004/world.topo.200407.3x5400x2700_modified.tif + world.topo.200407.3x5400x2700_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + PROJCRS["WGS 84 / Plate Carree",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World Equidistant Cylindrical (Sphere)",METHOD["Equidistant Cylindrical (Spherical)",ID["EPSG",9823]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["easting (X)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["northing (Y)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Graticule coordinates expressed in simple Cartesian form."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",32662]] + +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 3146 + 32662 + EPSG:32662 + WGS 84 / Plate Carree + eqc + EPSG:7030 + false + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + + + + -180 + -89.99999999999980105 + 179.9999999999996021 + 90 + + + -180 + -89.99999999999980105 + 179.9999999999996021 + 90 + + world_topo_bathy_200412_3x5400x2700_modified_a12a5288_8cab_4c05_967b_fe8770088678 + D:\Documents\misc\worldmap\bluemarble\world.topo.bathy.200412.3x5400x2700_modified.tif + world.topo.bathy.200412.3x5400x2700_modified + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + dataset + + + + + + + + + + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + + gdal + + + + + + + + + + 1 + 1 + 0 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MinMax + WholeRaster + Estimated + 0.02 + 0.98 + 2 + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + 0 + 255 + NoEnhancement + + + + + + resamplingFilter + + 0 + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + 0 + + + 0 + 0 + 0 + 255 + 0 + 255 + 255 + + + + + + D:/Documents/misc/worldmap/bluemarble/etopo/color_etopo1_ice_low_vandg5.png + + + false + + + + + + NONE + + + <unknown> + <unknown> + HorizontalMiddle + + + 50 + 5 + 16 + 30 + 2.5 + false + true + false + false + 0 + 0 + false + false + true + 0 + 255,0,0,255,rgb:1,0,0,1 + + + false + + + true + 2 + MU + + false + + + + + 1 + + + + + + + + + + + None + false + false + + + + + + -4.1831065161131384e-18 + false + conditions unknown + false + 90 + + + + 1 + + 8 + false + + false + + false + + false + 0 + + false + + + + + + + + false + + + + + false + + 5000 + + + + false + + + + + + + + + + + + + dataset + Suntimes Worldmap + + + + + + + + + + + + + + + Forrest + 2022-01-23T17:04:32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["North_Pole_Azimuthal_Equidistant",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["Degree",0.0174532925199433]]],CONVERSION["North_Pole_Azimuthal_Equidistant",METHOD["Azimuthal Equidistant",ID["EPSG",1125]],PARAMETER["Latitude of natural origin",90,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["Northern hemisphere."],BBOX[0,-180,90,180]],ID["ESRI",102016]] + +proj=aeqd +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 27139 + 102016 + ESRI:102016 + North_Pole_Azimuthal_Equidistant + aeqd + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["South_Pole_Azimuthal_Equidistant",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["Degree",0.0174532925199433]]],CONVERSION["South_Pole_Azimuthal_Equidistant",METHOD["Azimuthal Equidistant",ID["EPSG",1125]],PARAMETER["Latitude of natural origin",-90,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["Southern hemisphere."],BBOX[-90,-180,0,180]],ID["ESRI",102019]] + +proj=aeqd +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 27142 + 102019 + ESRI:102019 + South_Pole_Azimuthal_Equidistant + aeqd + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["unknown",ELLIPSOID["unknown",6371000,0,LENGTHUNIT["metre",1,ID["EPSG",9001]]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Azimuthal Equidistant",ID["EPSG",1125]],PARAMETER["Latitude of natural origin",33.45,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",-111.94,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]] + +proj=aeqd +lat_0=33.45 +lon_0=-111.94 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs + 100025 + 0 + USER:100025 + Phoenix - Sphere Azimuthal Equidistant [33.45, -111.94] + aeqd + PARAMETER:6371000:6371000 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["unknown",ELLIPSOID["unknown",6371000,0,LENGTHUNIT["metre",1,ID["EPSG",9001]]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Azimuthal Equidistant",ID["EPSG",1125]],PARAMETER["Latitude of natural origin",30.05,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",31.22,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]] + +proj=aeqd +lat_0=30.05 +lon_0=31.22 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs + 100026 + 0 + USER:100026 + Cairo - Sphere Azimuthal Equidistant [30.05,31.22] + aeqd + PARAMETER:6371000:6371000 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["WGS_1984_Web_Mercator",BASEGEOGCRS["Popular Visualisation CRS",DATUM["Popular Visualisation Datum",ELLIPSOID["Popular Visualisation Sphere",6378137,0,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["Degree",0.0174532925199433]]],CONVERSION["WGS_1984_Web_Mercator",METHOD["Mercator (variant B)",ID["EPSG",9805]],PARAMETER["Latitude of 1st standard parallel",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World between 85.06°S and 85.06°N."],BBOX[-85.06,-180,85.06,180]],ID["ESRI",102113]] + +proj=merc +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +R=6378137 +units=m +no_defs + 60563 + 520000563 + ESRI:102113 + WGS_1984_Web_Mercator + merc + EPSG:7059 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["Sphere_Van_der_Grinten_I",BASEGEOGCRS["Unknown datum based upon the Authalic Sphere",DATUM["Not specified (based on Authalic Sphere)",ELLIPSOID["Sphere",6371000,0,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["Degree",0.0174532925199433]]],CONVERSION["Sphere_Van_der_Grinten_I",METHOD["Van Der Grinten"],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",53029]] + +proj=vandg +lon_0=0 +x_0=0 +y_0=0 +R=6371000 +units=m +no_defs + 27229 + 53029 + ESRI:53029 + Sphere_Van_der_Grinten_I + vandg + PARAMETER:6371000:6371000 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["World_Sinusoidal",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["Degree",0.0174532925199433]]],CONVERSION["World_Sinusoidal",METHOD["Sinusoidal"],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54008]] + +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 27877 + 54008 + ESRI:54008 + World_Sinusoidal + sinu + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Peirce Quincuncial (Square)"],PARAMETER["Latitude of natural origin",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",25,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]] + +proj=peirce_q +lon_0=25 +shape=square + 100045 + 0 + USER:100045 + Peirce (square) + tmerc + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Peirce Quincuncial (Square)"],PARAMETER["Latitude of natural origin",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",25,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]] + +proj=peirce_q +lon_0=25 +shape=square + 100045 + 0 + USER:100045 + Peirce (square) + tmerc + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["WGS_1984_Peirce_quincuncial_North_Pole_square",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["Degree",0.0174532925199433]]],CONVERSION["WGS_1984_Peirce_quincuncial_North_Pole_square",METHOD["Peirce Quincuncial (Square)"],PARAMETER["Latitude of natural origin",90,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54090]] + +proj=peirce_q +shape=square +lat_0=90 +lon_0=0 +k_0=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 62439 + 520002439 + ESRI:54090 + WGS_1984_Peirce_quincuncial_North_Pole_square + peirce_q + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Transverse Mercator",ID["EPSG",9807]],PARAMETER["Latitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]] + +proj=tmerc + 100036 + 0 + USER:100036 + Tranverse Mercator World + tmerc + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Hotine Oblique Mercator (variant B)",ID["EPSG",9815]],PARAMETER["Latitude of projection centre",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8811]],PARAMETER["Longitude of projection centre",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8812]],PARAMETER["Azimuth at projection centre",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8813]],PARAMETER["Angle from Rectified to Skew Grid",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8814]],PARAMETER["Scale factor at projection centre",1,SCALEUNIT["unity",1],ID["EPSG",8815]],PARAMETER["Easting at projection centre",0,LENGTHUNIT["metre",1],ID["EPSG",8816]],PARAMETER["Northing at projection centre",0,LENGTHUNIT["metre",1],ID["EPSG",8817]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]],REMARK["PROJ CRS string: +proj=omerc +lat_1=45 +lat_2=55"]] + +proj=omerc +lat_1=45 +lat_2=55 + 100000 + 0 + USER:100000 + Oblique Mercator + omerc + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["WGS_1984_Peirce_quincuncial_North_Pole_square",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["Degree",0.0174532925199433]]],CONVERSION["WGS_1984_Peirce_quincuncial_North_Pole_square",METHOD["Peirce Quincuncial (Square)"],PARAMETER["Latitude of natural origin",90,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54090]] + +proj=peirce_q +shape=square +lat_0=90 +lon_0=0 +k_0=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 62439 + 520002439 + ESRI:54090 + WGS_1984_Peirce_quincuncial_North_Pole_square + peirce_q + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PROJCRS["World_Goode_Homolosine_Land",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["Degree",0.0174532925199433]]],CONVERSION["World_Goode_Homolosine_Land",METHOD["Interrupted Goode Homolosine"],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54052]] + +proj=igh +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 62430 + 520002430 + ESRI:54052 + World_Goode_Homolosine_Land + igh + EPSG:7030 + false + + + + + + + + + + - - - + - 0 - 0 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ../../../../../../../tmp - - 0 - - - 0 - generatedlayout - - - - - - - - - - - - - - - - - featurecla - - - - - - - - - - - NONE - - - - false - - - - - 8 - false - - false - - - 16 - 50 - false - 30 - true - 0 - false - false - true - - false - false - - - 0 - 0 - 0 - 0 - 255 - 255 - 255 - - - - conditions unknown - - - - - - false - - false - - - true - MU - 2 - - - - - <unknown> - <unknown> - - - - - - 1 - - - 90 - - - - - true - - - - 1 - - - - - - - - None - - 0 - - - - - - - - - dataset - Suntimes Worldmap - - - - - - - - - - - - - 2022-01-23T17:04:32 - - - - - - + + + + + - - - - - - - - - - - - - + + + + + + - - - + + + - + + + + + + + + + + + + + - - - + + + - + + - - - - +proj=eqc +lat_ts=0 +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371007 +b=6371007 +units=m +no_defs - 1744 - 3786 - EPSG:3786 - World Equidistant Cylindrical (Sphere) (deprecated) - eqc - + + + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["PROJ peirce_q shape=horizontal"],PARAMETER["lon_0",25,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9122]]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]],REMARK["PROJ CRS string: +proj=peirce_q +lon_0=25 +shape=horizontal"]] + +proj=peirce_q +lon_0=25 +shape=horizontal + 100046 + 0 + USER:100046 + Peirce (horizontal) + tmerc + EPSG:7030 false - + + + + + + - + - + - - - + + + - - - - - - - - - - - - - + + + + + + - - - + + + - + + + + + + + + + + + + + - - - + + + - + + - + - - +proj=aeqd +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs - 27139 - 102016 - EPSG:102016 - North_Pole_Azimuthal_Equidistant - aeqd - + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["Peirce Quincuncial (Diamond)"],PARAMETER["Latitude of natural origin",90,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8801]],PARAMETER["Longitude of natural origin",25,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["Scale factor at natural origin",1,SCALEUNIT["unity",1],ID["EPSG",8805]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]] + +proj=peirce_q +lon_0=25 +shape=diamond + 100047 + 0 + USER:100047 + Peirce (diamond) + tmerc + EPSG:7030 false - + + + + + + - - - - - - - - + - + - - - + + + - - - - - - - - - - - - - + + + + + + - - - + + + - + + + + + + + + + + + + + - - - + + + - + + - + - - +proj=aeqd +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs - 27142 - 102019 - EPSG:102019 - South_Pole_Azimuthal_Equidistant - aeqd - + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["PROJ fahey"]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]]] + +proj=fahey + 100048 + 0 + USER:100048 + Fahey + tmerc + EPSG:7030 false - + + + + + + - - - - - - - + - + - - - + + + - - - - - - - - - - - - - + + + + + + - - - + + + - + + + + + + + + + + + + + - - - + + + - + + - + - - +proj=aeqd +lat_0=33.45 +lon_0=-111.94 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs - 100025 - 0 - USER:100025 - Phoenix - Sphere Azimuthal Equidistant [33.45, -111.94] - aeqd - + + PROJCRS["World_Mollweide",BASEGEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["Degree",0.0174532925199433]]],CONVERSION["World_Mollweide",METHOD["Mollweide"],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["Degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54009]] + +proj=moll +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 27878 + 54009 + ESRI:54009 + World_Mollweide + moll + EPSG:7030 false - + + + + + + - - - - - - - + - + - - - + + + - - - - - - - - - - - - - + + + + + + - - - + + + - + + + + + + + + + + + + + - - - + + + - + + - + - - +proj=aeqd +lat_0=30.05 +lon_0=31.22 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs - 100026 + + PROJCRS["unknown",BASEGEOGCRS["unknown",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ID["EPSG",6326]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8901]]],CONVERSION["unknown",METHOD["PROJ hammer"],PARAMETER["lat_0",0,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9122]]],PARAMETER["lon_0",0,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9122]]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1,ID["EPSG",9001]]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1,ID["EPSG",9001]]],REMARK["PROJ CRS string: +proj=hammer +lat_0=0 +lon_0=0 +datum=WGS84 +units=m +no_defs"]] + +proj=hammer +lat_0=0 +lon_0=0 +datum=WGS84 +units=m +wktext +no_defs + 100043 0 - USER:100026 - Cairo - Sphere Azimuthal Equidistant [30.05,31.22] - aeqd - + USER:100043 + Hammer + hammer + EPSG:7030 false - + + + + + + - - - - - - - + - + + + + + + + + + + + PROJCRS["World_Mercator",BASEGEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],ID["EPSG",4326]],CONVERSION["World_Mercator",METHOD["Mercator (variant B)",ID["EPSG",9805]],PARAMETER["Latitude of 1st standard parallel",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8823]],PARAMETER["Longitude of natural origin",0,ANGLEUNIT["degree",0.0174532925199433],ID["EPSG",8802]],PARAMETER["False easting",0,LENGTHUNIT["metre",1],ID["EPSG",8806]],PARAMETER["False northing",0,LENGTHUNIT["metre",1],ID["EPSG",8807]]],CS[Cartesian,2],AXIS["(E)",east,ORDER[1],LENGTHUNIT["metre",1]],AXIS["(N)",north,ORDER[2],LENGTHUNIT["metre",1]],USAGE[SCOPE["Not known."],AREA["World."],BBOX[-90,-180,90,180]],ID["ESRI",54004]] + +proj=merc +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs + 27874 + 54004 + ESRI:54004 + World_Mercator + merc + EPSG:7030 + false + + + + + + + + + + + + + + + + + + + + + + GEOGCRS["WGS 84",ENSEMBLE["World Geodetic System 1984 ensemble",MEMBER["World Geodetic System 1984 (Transit)"],MEMBER["World Geodetic System 1984 (G730)"],MEMBER["World Geodetic System 1984 (G873)"],MEMBER["World Geodetic System 1984 (G1150)"],MEMBER["World Geodetic System 1984 (G1674)"],MEMBER["World Geodetic System 1984 (G1762)"],MEMBER["World Geodetic System 1984 (G2139)"],MEMBER["World Geodetic System 1984 (G2296)"],ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]],ENSEMBLEACCURACY[2.0]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]] + +proj=longlat +datum=WGS84 +no_defs + 3452 + 4326 + EPSG:4326 + WGS 84 + longlat + EPSG:7030 + true + + + + + +
diff --git a/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapDialog.java b/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapDialog.java index 2a6ad93af3..3eb221c679 100644 --- a/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapDialog.java +++ b/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapDialog.java @@ -37,6 +37,9 @@ import com.forrestguice.suntimeswidget.calculator.settings.display.TimeDateDisplay; import com.forrestguice.suntimeswidget.calculator.settings.display.TimeDeltaDisplay; +import com.forrestguice.suntimeswidget.map.backgrounds.WorldMapBackgroundContract; +import com.forrestguice.suntimeswidget.map.backgrounds.WorldMapBackgroundItem; +import com.forrestguice.suntimeswidget.map.backgrounds.WorldMapBackgrounds; import com.forrestguice.suntimeswidget.views.IconUtils; import com.forrestguice.suntimeswidget.views.SpanUtils; import com.forrestguice.support.app.ActivityResultLauncherCompat; @@ -87,6 +90,7 @@ import com.forrestguice.suntimeswidget.views.TooltipCompat; import com.forrestguice.suntimeswidget.views.ViewUtils; import com.forrestguice.support.widget.ImageViewCompat; +import com.forrestguice.util.ExecutorUtils; import com.forrestguice.util.android.AndroidResources; import com.forrestguice.util.text.TimeDisplayText; @@ -94,7 +98,9 @@ import java.util.Arrays; import java.util.Calendar; import java.util.List; +import java.util.Map; import java.util.TimeZone; +import java.util.concurrent.Callable; public class WorldMapDialog extends BottomSheetDialogBase { @@ -1024,6 +1030,45 @@ private void updateContextMenu(Context context, Menu m) MenuAddon.populateSubMenu(addonSubmenuItem, addonMenuItems, getMapTime(System.currentTimeMillis())); } //else addonSubmenuItem.setVisible(false); } + + updateBackgroundMenu(context, m); + } + + protected void updateBackgroundMenu(Context context, Menu m) + { + WorldMapBackgrounds.OnWorldMapBackgroundItemClick itemListener = new WorldMapBackgrounds.OnWorldMapBackgroundItemClick() + { + @Override + public void onClick(WorldMapBackgroundItem item) + { + Uri uri = Uri.parse(item.getUri()); + Boolean tint = (WorldMapBackgroundContract.TYPE_DAY.equals(item.getType()) ? item.shouldTint() : null); + onMapBackgroundResult(context, 0, item.getType(), uri, tint, item.getMapProjectionCenter()); + } + }; + + String projectionID = worldmap.getMapMode().getProjectionID(); + List allItems = WorldMapBackgrounds.queryWorldMapBackgroundItemsWithTimeout(context, projectionID, 1000); + + MenuItem addonBackgroundsItem_day = m.findItem(R.id.mapOption_addonBackgrounds_day); + if (addonBackgroundsItem_day != null) { + List dayItems = WorldMapBackgrounds.values(WorldMapBackgroundContract.TYPE_DAY, allItems); + initBackgroundMenu(context, addonBackgroundsItem_day, R.id.addonBackgrounds_dayGroup, dayItems, itemListener); + } + + MenuItem addonBackgroundsItem_night = m.findItem(R.id.mapOption_addonBackgrounds_night); + if (addonBackgroundsItem_night != null) { + List nightItems = WorldMapBackgrounds.values(WorldMapBackgroundContract.TYPE_NIGHT, allItems); + initBackgroundMenu(context, addonBackgroundsItem_night, R.id.addonBackgrounds_nightGroup, nightItems, itemListener); + } + } + + protected void initBackgroundMenu(Context context, MenuItem menuItem, int groupID, List items, WorldMapBackgrounds.OnWorldMapBackgroundItemClick listener) + { + if (!items.isEmpty()) { + WorldMapBackgrounds.populateSubMenu(context, menuItem, groupID, mapMode.getMapTag(), mapMode.getProjectionCenter(), items, listener); + } + menuItem.setVisible(!items.isEmpty()); } private int menuItemForMapMode(WorldMapWidgetSettings.WorldMapWidgetMode mode) { @@ -1174,11 +1219,14 @@ public void onClick(DialogInterface dialog, int which) { } } - private void clearMapBackground(Context context) + private void clearMapBackground(Context context, boolean night) { + clearMapBackground(context, night, true); + } + private void clearMapBackground(Context context, boolean night, boolean updateViews) { double[] center = worldmap.getOptions().center; String mapTag = mapMode.getMapTag(); - String mapBackgroundString = WorldMapWidgetSettings.loadWorldMapBackground(context, 0, mapTag, center); + String mapBackgroundString = WorldMapWidgetSettings.loadWorldMapBackground(context, 0, mapTag, center, night); Uri uri = mapBackgroundString != null ? Uri.parse(mapBackgroundString) : null; if (Build.VERSION.SDK_INT >= 19) @@ -1192,15 +1240,20 @@ private void clearMapBackground(Context context) } } - WorldMapWidgetSettings.deleteWorldMapBackground(context,0, mapTag, center); - WorldMapWidgetSettings.saveWorldMapPref(context, 0, WorldMapWidgetSettings.PREF_KEY_WORLDMAP_TINTMAP, mapTag, true); // reset tint flag + WorldMapWidgetSettings.deleteWorldMapBackground(context,0, mapTag, center, night); + if (!night) { + WorldMapWidgetSettings.saveWorldMapPref(context, 0, WorldMapWidgetSettings.PREF_KEY_WORLDMAP_TINTMAP, mapTag, true); // reset tint flag + } - updateOptions(context); - worldmap.setMapMode(context, mapMode); - updateViews(); + if (updateViews) + { + updateOptions(context); + worldmap.setMapMode(context, mapMode); + updateViews(); + } } - protected void onMapBackgroundResult(Context context, int requestCode, Uri uri) + protected void onMapBackgroundResult(Context context, int requestCode, String type, Uri uri, Boolean applyTint, @Nullable double[] recenter) { Drawable background = WorldMapView.loadDrawableFromUri(context, uri.toString()); if (background == null) { @@ -1218,8 +1271,17 @@ protected void onMapBackgroundResult(Context context, int requestCode, Uri uri) } double[] center = worldmap.getOptions().center; // TODO: read center/projection info from image exif data? - WorldMapWidgetSettings.saveWorldMapBackground(context, 0, mapTag, center, uri.toString()); - WorldMapWidgetSettings.saveWorldMapPref(context, 0, WorldMapWidgetSettings.PREF_KEY_WORLDMAP_TINTMAP, mapTag, false); // TODO: automatically set tint flag based on image transparency? + if (recenter != null) { + center = recenter; + WorldMapWidgetSettings.saveWorldMapCenter(context, 0, mapMode.getMapTag(), center); + WorldMapWidgetSettings.saveWorldMapString(context, 0, WorldMapWidgetSettings.PREF_KEY_WORLDMAP_CENTER_LABEL, mapMode.getMapTag(), "TODO"); + } + + boolean isNight = (WorldMapBackgroundContract.TYPE_NIGHT.equals(type)); + WorldMapWidgetSettings.saveWorldMapBackground(context, 0, mapTag, center, isNight, uri.toString()); + if (applyTint != null) { + WorldMapWidgetSettings.saveWorldMapPref(context, 0, WorldMapWidgetSettings.PREF_KEY_WORLDMAP_TINTMAP, mapTag, applyTint); // TODO: automatically set tint flag based on image transparency? + } updateOptions(context); worldmap.setMapMode(context, mapMode); @@ -1237,7 +1299,7 @@ protected void onMapBackgroundResult(int requestCode, int resultCode, Intent dat final int flags = data.getFlags() & Intent.FLAG_GRANT_READ_URI_PERMISSION; context.getContentResolver().takePersistableUriPermission(uri, flags); } - onMapBackgroundResult(context, requestCode, uri); + onMapBackgroundResult(context, requestCode, WorldMapBackgroundContract.TYPE_DAY, uri, false, null); } else { Log.d(LOGTAG, "onActivityResult: bad result: " + resultCode + ", " + data); } @@ -1346,7 +1408,16 @@ public boolean onMenuItemClick(MenuItem item) return true; } else if (itemId == R.id.mapOption_background_clear) { - clearMapBackground(context); + clearMapBackground(context, true, false); + clearMapBackground(context, false, true); + return true; + + } else if (itemId == R.id.mapOption_background_clear_day) { + clearMapBackground(context, false); + return true; + + } else if (itemId == R.id.mapOption_background_clear_night) { + clearMapBackground(context, true); return true; } else if (itemId == R.id.mapOption_location) { diff --git a/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapMercator.java b/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapMercator.java index 54f9f9e8d7..2f9f19754a 100644 --- a/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapMercator.java +++ b/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapMercator.java @@ -28,18 +28,22 @@ import com.forrestguice.suntimeswidget.map.colors.WorldMapColorValues; /** - * Mercator map projection + * Web mercator map projection */ public class WorldMapMercator extends WorldMapEquirectangular { + public static final double MAX_LATITUDE_DEG = 85.051129; + public static final double MAX_LATITUDE_RAD = Math.toRadians(MAX_LATITUDE_DEG); + private static final double PI_OVER_2 = Math.PI / 2d; private static final double PI_OVER_4 = Math.PI / 4d; @Override public int[] toBitmapCoords(int w, int h, double[] mid, double lat, double lon) { + double lat0 = Math.max(Math.min(lat, MAX_LATITUDE_DEG), -MAX_LATITUDE_DEG); // clamp (web mercator) double x = Math.toRadians(lon - 0); // minus center_longitude - double y = Math.log(Math.tan(PI_OVER_4 + (0.5d * Math.toRadians(lat)))); + double y = Math.log(Math.tan(PI_OVER_4 + (0.5d * Math.toRadians(lat0)))); int[] p = new int[2]; p[0] = (int) (mid[0] + ((x / Math.PI) * mid[0])); @@ -76,6 +80,7 @@ public double[] initMatrix() radY = Math.toRadians(-1 * (((double) j * ih0) - 180d)); // j in [0,h] to [0,360] to [-180,180] (inverted to canvas); every Y is 0.5 degrees //radLat = 2d * Math.atan(Math.pow(Math.E, radY)) - PI_OVER_2; // Gudermannian radLat = Math.atan(Math.sinh(radY)); // Gudermannian + radLat = Math.max(Math.min(radLat, MAX_LATITUDE_RAD), -MAX_LATITUDE_RAD); // clamp to web mercator cosLat = Math.cos(radLat); v[i + (size[0] * j)] = cosLon * cosLat; diff --git a/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapView.java b/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapView.java index 6a38fac0ef..06409c8974 100644 --- a/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapView.java +++ b/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapView.java @@ -145,48 +145,49 @@ public WorldMapWidgetSettings.WorldMapWidgetMode getMapMode() @SuppressLint("ResourceType") public void setMapMode(Context context, WorldMapWidgetSettings.WorldMapWidgetMode mode) { - Drawable background = loadBackgroundDrawable(context, mode.getMapTag(), options.center); + Drawable background = loadBackgroundDrawable(context, mode.getMapTag(), options.center, false); + Drawable background_night = loadBackgroundDrawable(context, mode.getMapTag(), options.center, true); this.mode = mode; switch (mode) { case MERCATOR_SIMPLE: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap_mercator); - options.map_night = null; + options.map_night = background_night; options.foregroundColor = (options.tintForeground ? foregroundColor : Color.TRANSPARENT); options.hasTransparentBaseMap = true; break; case VANDERGRINTEN_SIMPLE: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap_van_der_grinten); - options.map_night = null; + options.map_night = background_night; options.foregroundColor = (options.tintForeground ? foregroundColor : Color.TRANSPARENT); options.hasTransparentBaseMap = true; break; case SINUSOIDAL_SIMPLE: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap_sinusoidal); - options.map_night = null; + options.map_night = background_night; options.foregroundColor = (options.tintForeground ? foregroundColor : Color.TRANSPARENT); options.hasTransparentBaseMap = true; break; case EQUIAZIMUTHAL_SIMPLE: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap2); - options.map_night = null; + options.map_night = background_night; options.foregroundColor = (options.tintForeground ? foregroundColor : Color.TRANSPARENT); options.hasTransparentBaseMap = true; break; case EQUIAZIMUTHAL_SIMPLE1: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap3); - options.map_night = null; + options.map_night = background_night; options.foregroundColor = (options.tintForeground ? foregroundColor : Color.TRANSPARENT); options.hasTransparentBaseMap = true; break; case EQUIAZIMUTHAL_SIMPLE2: options.map = background; - options.map_night = null; + options.map_night = background_night; options.foregroundColor = (options.tintForeground ? foregroundColor : Color.TRANSPARENT); options.hasTransparentBaseMap = true; break; @@ -201,7 +202,7 @@ public void setMapMode(Context context, WorldMapWidgetSettings.WorldMapWidgetMod case EQUIRECTANGULAR_SIMPLE: default: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap); - options.map_night = null; + options.map_night = background_night; options.foregroundColor = (options.tintForeground ? foregroundColor : Color.TRANSPARENT); options.hasTransparentBaseMap = true; break; @@ -209,9 +210,9 @@ public void setMapMode(Context context, WorldMapWidgetSettings.WorldMapWidgetMod } @Nullable - public static Drawable loadBackgroundDrawable(Context context, String mapTag, double[] center) + public static Drawable loadBackgroundDrawable(Context context, String mapTag, double[] center, boolean night) { - String backgroundString = WorldMapWidgetSettings.loadWorldMapBackground(context, 0, mapTag, center); + String backgroundString = WorldMapWidgetSettings.loadWorldMapBackground(context, 0, mapTag, center, night); Drawable drawable = loadDrawableFromUri(context, backgroundString); if (drawable != null) { diff --git a/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapWidgetSettings.java b/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapWidgetSettings.java index 48f7bcff4d..be88dd6ba5 100644 --- a/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapWidgetSettings.java +++ b/app/src/main/java/com/forrestguice/suntimeswidget/map/WorldMapWidgetSettings.java @@ -25,11 +25,10 @@ import com.forrestguice.suntimeswidget.R; +import com.forrestguice.suntimeswidget.map.backgrounds.WorldMapBackgroundContract; import com.forrestguice.suntimeswidget.widgets.SuntimesWidget2; import com.forrestguice.suntimeswidget.widgets.layouts.SunPosLayout; import com.forrestguice.suntimeswidget.widgets.layouts.SunPosLayout_3X2_0; -import com.forrestguice.suntimeswidget.widgets.layouts.SunPosLayout_3X2_1; -import com.forrestguice.suntimeswidget.widgets.layouts.SunPosLayout_3X2_2; import com.forrestguice.suntimeswidget.widgets.layouts.SunPosLayout_3X3_0; import com.forrestguice.suntimeswidget.widgets.layouts.SuntimesLayout; import com.forrestguice.util.Log; @@ -94,10 +93,10 @@ public class WorldMapWidgetSettings public static final String MAPTAG_DEF = MAPTAG_3x2; public static final String[] MAPTAGS = new String[] { MAPTAG_3x2, MAPTAG_3x3 }; - public static final String PROJ4_EQD = "+proj=eqc +lat_ts=0 +lat_0=%1$s +lon_0=%2$s +x_0=0 +y_0=0 +a=6371007 +b=6371007 +units=m +no_defs"; + public static final String PROJ4_EQC = "+proj=eqc +lat_ts=0 +lat_0=%1$s +lon_0=%2$s +x_0=0 +y_0=0 +a=6371007 +b=6371007 +units=m +no_defs"; public static final String PROJ4_AEQD = "+proj=aeqd +lat_0=%1$s +lon_0=%2$s +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs"; public static final String PROJ4_AEQD1 = "+proj=aeqd +lat_0=%1$s +lon_0=%2$s +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"; - public static final String PROJ4_MERC = "+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"; + public static final String PROJ4_MERC = "+proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs"; public static final String PROJ4_VANDG = "+proj=vandg +lon_0=0 +x_0=0 +y_0=0 +R_A +a=6371000 +b=6371000 +units=m +no_defs"; public static final String PROJ4_SINU = "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6378140 +b=6356750 +units=m +no_defs "; @@ -184,14 +183,14 @@ public String getDisplayString(Context context) { */ public static enum WorldMapWidgetMode implements WidgetSettings.WidgetModeDisplay { - EQUIRECTANGULAR_SIMPLE("Simple", MAPTAG_3x2, R.layout.layout_widget_sunpos_3x2_0, new SunPosLayout_3X2_0(), false, 0, 0, "Equidistant Rectangular", PROJ4_EQD), - EQUIRECTANGULAR_BLUEMARBLE("Blue Marble", MAPTAG_3x2, R.layout.layout_widget_sunpos_3x2_01, new SunPosLayout_3X2_0(), false, 0, 0, "Equidistant Rectangular", PROJ4_EQD), - EQUIAZIMUTHAL_SIMPLE("Polar [north]", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_0, new SunPosLayout_3X3_0(), false, 90, 0, "Equidistant Azimuthal", PROJ4_AEQD), - EQUIAZIMUTHAL_SIMPLE1("Polar [south]", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_1, new SunPosLayout_3X3_0(), false, -90, 0, "Equidistant Azimuthal", PROJ4_AEQD), - EQUIAZIMUTHAL_SIMPLE2("Equidistant Azimuthal", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_2, new SunPosLayout_3X3_0(),true, 33.45, -111.94, "Equidistant Azimuthal", PROJ4_AEQD1), - MERCATOR_SIMPLE("Mercator", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_3, new SunPosLayout_3X3_0(),false, 0, 0, "Mercator", PROJ4_MERC), // TODO: layout - VANDERGRINTEN_SIMPLE("Van der Grinten", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_4, new SunPosLayout_3X3_0(), false, 0, 0, "Van der Grinten", PROJ4_VANDG), - SINUSOIDAL_SIMPLE("Sinusoidal", MAPTAG_3x2, R.layout.layout_widget_sunpos_3x3_5, new SunPosLayout_3X3_0(),false, 0, 0, "Sinuisoidal", PROJ4_SINU), + EQUIRECTANGULAR_SIMPLE("Simple", MAPTAG_3x2, R.layout.layout_widget_sunpos_3x2_0, new SunPosLayout_3X2_0(), false, 0, 0, "Equidistant Rectangular", PROJ4_EQC, WorldMapBackgroundContract.PROJECTION_EQC), + EQUIRECTANGULAR_BLUEMARBLE("Blue Marble", MAPTAG_3x2, R.layout.layout_widget_sunpos_3x2_01, new SunPosLayout_3X2_0(), false, 0, 0, "Equidistant Rectangular", PROJ4_EQC, WorldMapBackgroundContract.PROJECTION_EQC), + EQUIAZIMUTHAL_SIMPLE("Polar [north]", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_0, new SunPosLayout_3X3_0(), false, 90, 0, "Equidistant Azimuthal", PROJ4_AEQD, WorldMapBackgroundContract.PROJECTION_AEQD_NORTH), + EQUIAZIMUTHAL_SIMPLE1("Polar [south]", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_1, new SunPosLayout_3X3_0(), false, -90, 0, "Equidistant Azimuthal", PROJ4_AEQD, WorldMapBackgroundContract.PROJECTION_AEQD_SOUTH), + EQUIAZIMUTHAL_SIMPLE2("Equidistant Azimuthal", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_2, new SunPosLayout_3X3_0(),true, 33.45, -111.94, "Equidistant Azimuthal", PROJ4_AEQD1, WorldMapBackgroundContract.PROJECTION_AEQD_ + "33,-111"), + MERCATOR_SIMPLE("Mercator", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_3, new SunPosLayout_3X3_0(),false, 0, 0, "Mercator", PROJ4_MERC, WorldMapBackgroundContract.PROJECTION_MERC), // TODO: layout + VANDERGRINTEN_SIMPLE("Van der Grinten", MAPTAG_3x3, R.layout.layout_widget_sunpos_3x3_4, new SunPosLayout_3X3_0(), false, 0, 0, "Van der Grinten", PROJ4_VANDG, WorldMapBackgroundContract.PROJECTION_VANDG), + SINUSOIDAL_SIMPLE("Sinusoidal", MAPTAG_3x2, R.layout.layout_widget_sunpos_3x3_5, new SunPosLayout_3X3_0(),false, 0, 0, "Sinuisoidal", PROJ4_SINU, WorldMapBackgroundContract.PROJECTION_SINU), ; private final SunPosLayout layout; @@ -202,12 +201,14 @@ public static enum WorldMapWidgetMode implements WidgetSettings.WidgetModeDispla private final double[] center; private String projectionTitle; private final String proj4String; + private final String projID; - private WorldMapWidgetMode(@NonNull String displayString, String tag, int layoutID, SunPosLayout layout, boolean supportsCenter, double centerLat, double centerLon, String projectionTitle, String proj4String) + private WorldMapWidgetMode(@NonNull String displayString, String tag, int layoutID, SunPosLayout layout, boolean supportsCenter, double centerLat, double centerLon, String projectionTitle, String proj4String, String projID) { this.displayString = displayString; this.projectionTitle = projectionTitle; this.proj4String = proj4String; + this.projID = projID; this.layout = layout; this.layoutID = layoutID; this.tag = tag; @@ -263,6 +264,9 @@ public String getProj4() { public String getProj4(double[] center) { return String.format(proj4String, center[0], center[1]); } + public String getProjectionID() { + return projID; + } public double[] getProjectionCenter() { return center; @@ -434,13 +438,24 @@ public static String getCenterTag(@Nullable double[] center) { } public static String loadWorldMapBackground(Context context, int appWidgetId, String mapTag, @Nullable double[] center) { - return loadWorldMapString(context, appWidgetId, PREF_KEY_WORLDMAP_BACKGROUND, mapTag + ":" + getCenterTag(center)); + return loadWorldMapBackground(context, appWidgetId, mapTag, center, false); } public static void saveWorldMapBackground(Context context, int appWidgetId, String mapTag, @Nullable double[] center, String backgroundUri) { - saveWorldMapString(context, appWidgetId, PREF_KEY_WORLDMAP_BACKGROUND, mapTag + ":" + getCenterTag(center), backgroundUri); + saveWorldMapBackground(context, appWidgetId, mapTag, center, false, backgroundUri); } public static void deleteWorldMapBackground(Context context, int appWidgetId, String mapTag, @Nullable double[] center) { - deleteWorldMapPref(context, appWidgetId, PREF_KEY_WORLDMAP_BACKGROUND, mapTag + ":" + getCenterTag(center)); + deleteWorldMapBackground(context, appWidgetId, mapTag, center, false); + deleteWorldMapBackground(context, appWidgetId, mapTag, center, true); + } + + public static String loadWorldMapBackground(Context context, int appWidgetId, String mapTag, @Nullable double[] center, boolean night) { + return loadWorldMapString(context, appWidgetId, PREF_KEY_WORLDMAP_BACKGROUND, mapTag + ":" + getCenterTag(center) + (night ? ":night" : "")); + } + public static void saveWorldMapBackground(Context context, int appWidgetId, String mapTag, @Nullable double[] center, boolean night, @Nullable String backgroundUri) { + saveWorldMapString(context, appWidgetId, PREF_KEY_WORLDMAP_BACKGROUND, mapTag + ":" + getCenterTag(center) + (night ? ":night" : ""), backgroundUri); + } + public static void deleteWorldMapBackground(Context context, int appWidgetId, String mapTag, @Nullable double[] center, boolean night) { + deleteWorldMapPref(context, appWidgetId, PREF_KEY_WORLDMAP_BACKGROUND, mapTag + ":" + getCenterTag(center) + (night ? ":night" : "")); } public static void initWorldMapBackgroundDefaults(Context context) { diff --git a/app/src/main/java/com/forrestguice/suntimeswidget/map/backgrounds/WorldMapBackgroundContract.java b/app/src/main/java/com/forrestguice/suntimeswidget/map/backgrounds/WorldMapBackgroundContract.java new file mode 100644 index 0000000000..85ba4e4c5d --- /dev/null +++ b/app/src/main/java/com/forrestguice/suntimeswidget/map/backgrounds/WorldMapBackgroundContract.java @@ -0,0 +1,65 @@ +/** + Copyright (C) 2026 Forrest Guice + This file is part of SuntimesWidget. + + SuntimesWidget is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + SuntimesWidget is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with SuntimesWidget. If not, see . +*/ +package com.forrestguice.suntimeswidget.map.backgrounds; + +/** + * WorldMapBackgroundContract + * @version 1 (0.1.0) + * + * Queries: + * content://authority/backgroundList .. lists all backgrounds + * content://authority/backgroundList/ .. lists all backgrounds with given projection (e.g. eqc) + * + * CHANGES + * 1 initial version + */ +public interface WorldMapBackgroundContract +{ + String AUTHORITY = "suntimeswidget.map.backgrounds.provider"; + String REQUIRED_PERMISSION = "suntimes.permission.READ_CALCULATOR"; + + String COLUMN_BACKGROUND_ID = "background_id"; // id (int) + String COLUMN_BACKGROUND_TYPE = "background_type"; // type string (day, night) + String COLUMN_BACKGROUND_TITLE = "background_title"; // short display string + String COLUMN_BACKGROUND_SUMMARY = "background_summary"; // long display string + String COLUMN_BACKGROUND_FILE = "background_file"; // file uri (string) + String COLUMN_BACKGROUND_TINT = "background_tint"; // request tint flag (boolean) + String COLUMN_BACKGROUND_PROJECTION = "background_projection"; // proj4 string + String COLUMN_BACKGROUND_PROJECTION_CENTER = "background_projection_center"; // lat,lon + + String QUERY_BACKGROUND_LIST = "backgroundList"; + String[] QUERY_BACKGROUND_LIST_PROJECTION = new String[] { + COLUMN_BACKGROUND_ID, COLUMN_BACKGROUND_TYPE, + COLUMN_BACKGROUND_TITLE, COLUMN_BACKGROUND_SUMMARY, + COLUMN_BACKGROUND_PROJECTION, COLUMN_BACKGROUND_PROJECTION_CENTER, + COLUMN_BACKGROUND_FILE, COLUMN_BACKGROUND_TINT + }; + + String TYPE_DAY = "day"; + String TYPE_NIGHT = "night"; + + String PROJECTION_EQC = "eqc"; + String PROJECTION_AEQD_NORTH = "aeqd_90,0"; + String PROJECTION_AEQD_SOUTH = "aeqd_-90,0"; + String PROJECTION_AEQD_ = "aeqd_"; + String PROJECTION_MERC = "merc"; + String PROJECTION_SINU = "sinu"; + String PROJECTION_VANDG = "vandg"; + String PROJECTION_MOLL = "moll"; + String PROJECTION_HAMMER = "hammer"; +} \ No newline at end of file diff --git a/app/src/main/java/com/forrestguice/suntimeswidget/map/backgrounds/WorldMapBackgroundItem.java b/app/src/main/java/com/forrestguice/suntimeswidget/map/backgrounds/WorldMapBackgroundItem.java new file mode 100644 index 0000000000..581130e659 --- /dev/null +++ b/app/src/main/java/com/forrestguice/suntimeswidget/map/backgrounds/WorldMapBackgroundItem.java @@ -0,0 +1,173 @@ +/** + Copyright (C) 2026 Forrest Guice + This file is part of SuntimesWidget. + + SuntimesWidget is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + SuntimesWidget is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with SuntimesWidget. If not, see . +*/ + +package com.forrestguice.suntimeswidget.map.backgrounds; + +import static com.forrestguice.suntimeswidget.map.backgrounds.WorldMapBackgroundContract.TYPE_DAY; + +/** + * @see WorldMapBackgroundContract + */ +public class WorldMapBackgroundItem +{ + public WorldMapBackgroundItem() {} + public WorldMapBackgroundItem(String providerUri, String type, String id, String title, String summary, String mapProjection, String mapProjectionCenter, String fileUri, String tint) + { + this.provider_uri = providerUri; + this.type = type; + this.id = id; + this.title = title; + this.summary = summary; + this.map_projection_center = parseCenter(mapProjectionCenter); + this.map_projection = mapProjection; + this.file_uri = fileUri; + this.tint = Boolean.parseBoolean(tint); + isValid = true; + } + + public WorldMapBackgroundItem(String provider_uri, String id, String[] manifest) + { + this.provider_uri = provider_uri; + this.id = id; + this.file_uri = manifest[0]; + this.type = manifest[1]; + this.title = manifest[2]; + this.summary = manifest[3]; + this.map_projection = manifest[4]; + this.map_projection_center = parseCenter(manifest[5]); + this.tint = Boolean.parseBoolean(manifest[6]); + isValid = true; + } + + protected boolean isValid = false; + public void setIsValid(boolean value) { + isValid = value; + } + public boolean isValid() { + return isValid; + } + + protected String id = null; + public void setID(String value) { + id = value; + } + public String getID() { + return id; + } + + protected String title; + public void setTitle(String value) { + title = (value != null ? value : ""); + } + public String getTitle() { + return title; + } + + protected String summary; + public void setSummary(String value) { + summary = value; + } + public String getSummary() { + return summary; + } + + protected String map_projection; + public void setMapProjection(String value) { + map_projection = value; + } + public String getMapProjection() { + return map_projection; + } + + protected double[] map_projection_center; + public void setMapProjectionCenter(String s) { + map_projection_center = parseCenter(s); + } + public double[] getMapProjectionCenter() { + return map_projection_center; + } + public String getMapProjectionCenterAsString() + { + if (map_projection_center != null) + { + StringBuilder result = new StringBuilder(); + for (int i=0; i. +*/ +package com.forrestguice.suntimeswidget.map.backgrounds; + +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.database.Cursor; +import android.net.Uri; +import android.os.Build; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; +import android.view.SubMenu; +import android.view.View; + +import com.forrestguice.annotation.NonNull; +import com.forrestguice.annotation.Nullable; +import com.forrestguice.suntimeswidget.BuildConfig; +import com.forrestguice.suntimeswidget.map.WorldMapWidgetSettings; +import com.forrestguice.util.ExecutorUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.Callable; + +import static com.forrestguice.suntimeswidget.map.backgrounds.WorldMapBackgroundContract.TYPE_DAY; + +/** + * WorldMapBackgrounds + */ + +/* + Example manifest: + + + + + ... + + + + + + + + + + + + + + + + + */ +public class WorldMapBackgrounds +{ + public static final String REQUIRED_PERMISSION = BuildConfig.SUNTIMES_PERMISSION_ROOT + ".permission.READ_CALCULATOR"; + + public static final String CATEGORY_SUNTIMES_ADDON = "suntimes.SUNTIMES_ADDON"; + public static final String ACTION_SUNTIMES_ADDON_WORLDMAP_BACKGROUND = "suntimes.action.ADDON_WORLDMAP_BACKGROUND"; + public static final String KEY_BACKGROUND_PROVIDER = "WorldMapBackgroundProvider"; + + /** + * Get a list of available background providers. Each "world map background provider" + * supplies a ContentProvider that implements WorldMapBackgroundContract. + * @param context Context + * @return a list of world map background provider uris + */ + public static List queryWorldMapBackgroundProviders(@NonNull Context context) + { + ArrayList references = new ArrayList<>(); + PackageManager packageManager = context.getPackageManager(); + Intent packageQuery = new Intent(ACTION_SUNTIMES_ADDON_WORLDMAP_BACKGROUND); + packageQuery.addCategory(CATEGORY_SUNTIMES_ADDON); + List packages = packageManager.queryIntentActivities(packageQuery, PackageManager.GET_META_DATA); + Log.i("queryBackground", "Scanning for WorldMapBackgroundProvider references... found " + packages.size()); + + for (ResolveInfo resolveInfo : packages) + { + if (resolveInfo != null && resolveInfo.activityInfo != null && resolveInfo.activityInfo.metaData != null) + { + try { + PackageInfo packageInfo = packageManager.getPackageInfo(resolveInfo.activityInfo.packageName, PackageManager.GET_PERMISSIONS); + if (hasPermission(packageInfo)) + { + String metaData = resolveInfo.activityInfo.metaData.getString(KEY_BACKGROUND_PROVIDER); + String[] values = (metaData != null) ? metaData.replace(" ","").split("\\|") : new String[0]; + references.addAll(Arrays.asList(values)); + } else { + Log.w("queryBackground", "Permission denied! " + packageInfo.packageName + " does not have required permissions."); + } + } catch (PackageManager.NameNotFoundException e) { + Log.e("queryBackground", "Package not found! " + e); + } + } + } + return references; + } + + /** + * Retrieve a list of all available backgrounds from all background providers. + * @param context Context + * @return list of WorldMapBackgroundItem + */ + public static List queryWorldMapBackgroundItems(Context context, String projection) + { + List items = new ArrayList<>(); + List providers = WorldMapBackgrounds.queryWorldMapBackgroundProviders(context); + for (String provider : providers) { + items.addAll(WorldMapBackgrounds.queryWorldMapBackgroundItems(provider, context.getContentResolver(), projection)); + } + return items; + } + + public static List queryWorldMapBackgroundItemsWithTimeout(Context context, String projection, int timeoutAfter) + { + List items = ExecutorUtils.getResult("", new Callable>() { + @Override + public List call() throws Exception { + return queryWorldMapBackgroundItems(context, projection); + } + }, timeoutAfter); + return (items != null ? items : new ArrayList<>()); + } + + public static List values(String type, List items) + { + List result = new ArrayList<>(); + for (WorldMapBackgroundItem item : items) { + if (type.equals(item.getType())) { + result.add(item); + } + } + return result; + } + + /** + * Retrieve the list of available backgrounds from a given background provider. + * @param provider world map background provider uri (@see queryWorldMapBackgroundProviders) + * @param resolver ContentResolver + * @return list of WorldMapBackgroundItem + */ + public static List queryWorldMapBackgroundItems(String provider, @Nullable ContentResolver resolver, String projection) + { + ArrayList items = new ArrayList<>(); + if (resolver != null && provider != null) + { + Uri uri = Uri.parse(provider + "/" + WorldMapBackgroundContract.QUERY_BACKGROUND_LIST + "/" + projection); + Cursor cursor = resolver.query(uri, WorldMapBackgroundContract.QUERY_BACKGROUND_LIST_PROJECTION, null, null, null); + if (cursor != null) + { + cursor.moveToFirst(); + while (!cursor.isAfterLast()) + { + int i_id = cursor.getColumnIndex(WorldMapBackgroundContract.COLUMN_BACKGROUND_ID); + int i_title = cursor.getColumnIndex(WorldMapBackgroundContract.COLUMN_BACKGROUND_TITLE); + int i_summary = cursor.getColumnIndex(WorldMapBackgroundContract.COLUMN_BACKGROUND_SUMMARY); + int i_mapproj = cursor.getColumnIndex(WorldMapBackgroundContract.COLUMN_BACKGROUND_PROJECTION); + int i_mapproj_center = cursor.getColumnIndex(WorldMapBackgroundContract.COLUMN_BACKGROUND_PROJECTION_CENTER); + int i_fileUri = cursor.getColumnIndex(WorldMapBackgroundContract.COLUMN_BACKGROUND_FILE); + int i_type = cursor.getColumnIndex(WorldMapBackgroundContract.COLUMN_BACKGROUND_TYPE); + int i_tint = cursor.getColumnIndex(WorldMapBackgroundContract.COLUMN_BACKGROUND_TINT); + + String map_projection = (i_mapproj >= 0) ? cursor.getString(i_mapproj) : null; + if (map_projection == null) { + Log.w("queryBackground", "map projection is missing! skipping item returned from: " + provider); + continue; + } + String file_uri = (i_fileUri >= 0) ? cursor.getString(i_fileUri) : null; + if (file_uri == null) { + Log.w("queryBackground", "file uri is missing! skipping item returned from: " + provider); + continue; + } + + WorldMapBackgroundItem item = new WorldMapBackgroundItem(); + item.provider_uri = provider; + item.id = (i_id >= 0) ? cursor.getString(i_id) : null; + item.map_projection = map_projection; + item.map_projection_center = (i_mapproj_center >= 0 ? WorldMapBackgroundItem.parseCenter(cursor.getString(i_mapproj_center)) : null); + item.file_uri = file_uri; + item.type = (i_type >= 0) ? cursor.getString(i_type) : TYPE_DAY; + item.tint = (i_tint >= 0 && Boolean.parseBoolean(cursor.getString(i_tint))); + + String titleValue = (i_title >= 0) ? cursor.getString(i_title) : null; + item.setTitle(titleValue != null ? titleValue : uri.getLastPathSegment()); + item.summary = (i_summary >= 0) ? cursor.getString(i_summary) : null; + + items.add(item); + cursor.moveToNext(); + } + cursor.close(); + } + } + return items; + } + + /** + * hasPermission + */ + public static boolean hasPermission(@NonNull PackageInfo packageInfo) + { + boolean hasPermission = false; + if (packageInfo.requestedPermissions != null) + { + for (String permission : packageInfo.requestedPermissions) { + if (permission != null && permission.equals(REQUIRED_PERMISSION)) { + hasPermission = true; + break; + } + } + } + return hasPermission; + } + + /** + * Populates a submenu with WorldMapBackgroundItems. + * @param submenuItem MenuItem + * @param backgroundItems List + */ + public static void populateSubMenu(Context context, @Nullable MenuItem submenuItem, int groupId, String mapTag, @Nullable double[] center, @NonNull Collection backgroundItems, @Nullable OnWorldMapBackgroundItemClick menuItemListener) + { + if (submenuItem != null) + { + String selectedDayUri = WorldMapWidgetSettings.loadWorldMapBackground(context, 0, mapTag, center, false); + String selectedNightUri = WorldMapWidgetSettings.loadWorldMapBackground(context, 0, mapTag, center, true); + SubMenu submenu = submenuItem.getSubMenu(); + if (submenu != null) + { + int order = 0; + for (WorldMapBackgroundItem item : backgroundItems) + { + int itemID = Menu.NONE; + if (Build.VERSION.SDK_INT >= 17) { + itemID = View.generateViewId(); + } + + MenuItem menuItem = submenu.add(groupId, itemID, order++, item.getTitle()); + menuItem.setChecked(item.getUri().equals(selectedDayUri) || item.getUri().equals(selectedNightUri)); + menuItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() + { + @Override + public boolean onMenuItemClick(MenuItem menuItem) + { + if (menuItemListener != null) { + menuItemListener.onClick(item); + } + return true; + } + }); + } + submenu.setGroupCheckable(groupId, true, true); // true checkable, true exclusive + } + } + } + + public interface OnWorldMapBackgroundItemClick { + void onClick(WorldMapBackgroundItem item); + } + +} diff --git a/app/src/main/java/com/forrestguice/suntimeswidget/widgets/layouts/SunPosLayout_3X2_0.java b/app/src/main/java/com/forrestguice/suntimeswidget/widgets/layouts/SunPosLayout_3X2_0.java index fcbea3e59b..41561ad29a 100644 --- a/app/src/main/java/com/forrestguice/suntimeswidget/widgets/layouts/SunPosLayout_3X2_0.java +++ b/app/src/main/java/com/forrestguice/suntimeswidget/widgets/layouts/SunPosLayout_3X2_0.java @@ -85,49 +85,50 @@ public static WorldMapProjection createProjectionForMode(Context context, WorldM } options.center = WorldMapWidgetSettings.loadWorldMapCenter(context, 0, mapMode.getMapTag(), mapMode.getProjectionCenter()); - Drawable background = WorldMapView.loadBackgroundDrawable(context, mapMode.getMapTag(), options.center); + Drawable background = WorldMapView.loadBackgroundDrawable(context, mapMode.getMapTag(), options.center, false); + Drawable background_night = WorldMapView.loadBackgroundDrawable(context, mapMode.getMapTag(), options.center, true); WorldMapProjection projection; switch (mapMode) { case MERCATOR_SIMPLE: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap_mercator); - options.map_night = null; + options.map_night = background_night; options.hasTransparentBaseMap = true; projection = new WorldMapMercator(); break; case VANDERGRINTEN_SIMPLE: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap_van_der_grinten); - options.map_night = null; + options.map_night = background_night; options.hasTransparentBaseMap = true; projection = new WorldMapVanDerGrinten(); break; case SINUSOIDAL_SIMPLE: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap_sinusoidal); - options.map_night = null; + options.map_night = background_night; options.hasTransparentBaseMap = true; projection = new WorldMapSinusoidal(); break; case EQUIAZIMUTHAL_SIMPLE: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap2); - options.map_night = null; + options.map_night = background_night; options.hasTransparentBaseMap = true; projection = new WorldMapEquiazimuthal(); break; case EQUIAZIMUTHAL_SIMPLE1: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap3); - options.map_night = null; + options.map_night = background_night; options.hasTransparentBaseMap = true; projection = new WorldMapEquiazimuthal1(); break; case EQUIAZIMUTHAL_SIMPLE2: options.map = background; // ContextCompat.getDrawable(context, R.drawable.worldmap4); - options.map_night = null; + options.map_night = background_night; options.hasTransparentBaseMap = true; projection = new WorldMapEquiazimuthal2(); break; @@ -143,7 +144,7 @@ public static WorldMapProjection createProjectionForMode(Context context, WorldM case EQUIRECTANGULAR_SIMPLE: default: options.map = (background != null) ? background : ContextCompat.getDrawable(context, R.drawable.worldmap); - options.map_night = null; + options.map_night = background_night; options.hasTransparentBaseMap = true; projection = new WorldMapEquirectangular(); break; diff --git a/app/src/main/res/drawable-nodpi/worldmap_mercator.png b/app/src/main/res/drawable-nodpi/worldmap_mercator.png index 364f861990..ebefa4a8ad 100644 Binary files a/app/src/main/res/drawable-nodpi/worldmap_mercator.png and b/app/src/main/res/drawable-nodpi/worldmap_mercator.png differ diff --git a/app/src/main/res/drawable-nodpi/worldmap_van_der_grinten.png b/app/src/main/res/drawable-nodpi/worldmap_van_der_grinten.png index a6122b8ae9..27056c1684 100644 Binary files a/app/src/main/res/drawable-nodpi/worldmap_van_der_grinten.png and b/app/src/main/res/drawable-nodpi/worldmap_van_der_grinten.png differ diff --git a/app/src/main/res/menu/mapmenu.xml b/app/src/main/res/menu/mapmenu.xml index aa45af62ba..5efa90e9e1 100644 --- a/app/src/main/res/menu/mapmenu.xml +++ b/app/src/main/res/menu/mapmenu.xml @@ -2,12 +2,46 @@ + + + + + + + + + + + + + + + + + +