mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-24 11:45:53 +01:00
Compare commits
3 Commits
625ee42eb4
...
a48b46d0fb
Author | SHA1 | Date | |
---|---|---|---|
a48b46d0fb | |||
bd8d2267c7 | |||
48396e254b |
@ -2116,7 +2116,6 @@ UCS-2000 / Ukraine TM zone 12,6386,5561,6379
|
|||||||
UCS-2000 / Ukraine TM zone 13,6387,5561,6380
|
UCS-2000 / Ukraine TM zone 13,6387,5561,6380
|
||||||
Cayman Islands National Grid 2011,6391,6135,6390
|
Cayman Islands National Grid 2011,6391,6135,6390
|
||||||
NAD83(2011) / Alaska Albers,6393,6318,15021
|
NAD83(2011) / Alaska Albers,6393,6318,15021
|
||||||
NAD83(2011) / Alaska zone 1,6394,6318,15031
|
|
||||||
NAD83(2011) / Alaska zone 2,6395,6318,15032
|
NAD83(2011) / Alaska zone 2,6395,6318,15032
|
||||||
NAD83(2011) / Alaska zone 3,6396,6318,15033
|
NAD83(2011) / Alaska zone 3,6396,6318,15033
|
||||||
NAD83(2011) / Alaska zone 4,6397,6318,15034
|
NAD83(2011) / Alaska zone 4,6397,6318,15034
|
||||||
@ -2219,7 +2218,6 @@ NAD83(2011) / Michigan Central,6493,6318,12142
|
|||||||
NAD83(2011) / Michigan Central (ft),6494,6318,15334
|
NAD83(2011) / Michigan Central (ft),6494,6318,15334
|
||||||
NAD83(2011) / Michigan North,6495,6318,12141
|
NAD83(2011) / Michigan North,6495,6318,12141
|
||||||
NAD83(2011) / Michigan North (ft),6496,6318,15333
|
NAD83(2011) / Michigan North (ft),6496,6318,15333
|
||||||
NAD83(2011) / Michigan Oblique Mercator,6497,6318,12150
|
|
||||||
NAD83(2011) / Michigan South,6498,6318,12143
|
NAD83(2011) / Michigan South,6498,6318,12143
|
||||||
NAD83(2011) / Michigan South (ft),6499,6318,15335
|
NAD83(2011) / Michigan South (ft),6499,6318,15335
|
||||||
NAD83(2011) / Minnesota Central,6500,6318,12232
|
NAD83(2011) / Minnesota Central,6500,6318,12232
|
||||||
@ -2378,8 +2376,6 @@ NAD83(2011) / Oregon Canyonville-Grants Pass zone (m),6802,6318,6749
|
|||||||
NAD83(2011) / Oregon Canyonville-Grants Pass zone (ft),6803,6318,6750
|
NAD83(2011) / Oregon Canyonville-Grants Pass zone (ft),6803,6318,6750
|
||||||
NAD83(2011) / Oregon Columbia River East zone (m),6806,6318,6751
|
NAD83(2011) / Oregon Columbia River East zone (m),6806,6318,6751
|
||||||
NAD83(2011) / Oregon Columbia River East zone (ft),6807,6318,6752
|
NAD83(2011) / Oregon Columbia River East zone (ft),6807,6318,6752
|
||||||
NAD83(2011) / Oregon Columbia River West zone (m),6810,6318,6753
|
|
||||||
NAD83(2011) / Oregon Columbia River West zone (ft),6811,6318,6754
|
|
||||||
NAD83(2011) / Oregon Cottage Grove-Canyonville zone (m),6814,6318,6755
|
NAD83(2011) / Oregon Cottage Grove-Canyonville zone (m),6814,6318,6755
|
||||||
NAD83(2011) / Oregon Cottage Grove-Canyonville zone (ft),6815,6318,6756
|
NAD83(2011) / Oregon Cottage Grove-Canyonville zone (ft),6815,6318,6756
|
||||||
NAD83(2011) / Oregon Dufur-Madras zone (m),6818,6318,6757
|
NAD83(2011) / Oregon Dufur-Madras zone (m),6818,6318,6757
|
||||||
@ -2394,8 +2390,6 @@ NAD83(2011) / Oregon La Grande zone (m),6834,6318,6765
|
|||||||
NAD83(2011) / Oregon La Grande zone (ft),6835,6318,6766
|
NAD83(2011) / Oregon La Grande zone (ft),6835,6318,6766
|
||||||
NAD83(2011) / Oregon Ontario zone (m),6838,6318,6767
|
NAD83(2011) / Oregon Ontario zone (m),6838,6318,6767
|
||||||
NAD83(2011) / Oregon Ontario zone (ft),6839,6318,6768
|
NAD83(2011) / Oregon Ontario zone (ft),6839,6318,6768
|
||||||
NAD83(2011) / Oregon Coast zone (m),6842,6318,6769
|
|
||||||
NAD83(2011) / Oregon Coast zone (ft),6843,6318,6770
|
|
||||||
NAD83(2011) / Oregon Pendleton zone (m),6846,6318,6771
|
NAD83(2011) / Oregon Pendleton zone (m),6846,6318,6771
|
||||||
NAD83(2011) / Oregon Pendleton zone (ft),6847,6318,6772
|
NAD83(2011) / Oregon Pendleton zone (ft),6847,6318,6772
|
||||||
NAD83(2011) / Oregon Pendleton-La Grande zone (m),6850,6318,6773
|
NAD83(2011) / Oregon Pendleton-La Grande zone (m),6850,6318,6773
|
||||||
@ -2963,7 +2957,6 @@ Pulkovo 1995 / Gauss-Kruger zone 29,20029,4200,16229
|
|||||||
Pulkovo 1995 / Gauss-Kruger zone 30,20030,4200,16230
|
Pulkovo 1995 / Gauss-Kruger zone 30,20030,4200,16230
|
||||||
Pulkovo 1995 / Gauss-Kruger zone 31,20031,4200,16231
|
Pulkovo 1995 / Gauss-Kruger zone 31,20031,4200,16231
|
||||||
Pulkovo 1995 / Gauss-Kruger zone 32,20032,4200,16232
|
Pulkovo 1995 / Gauss-Kruger zone 32,20032,4200,16232
|
||||||
NAD83(2011) / Amtrak NECCS21 (ft),20050,6318,10148
|
|
||||||
Pulkovo 1995 / Gauss-Kruger 4N,20064,4200,16304
|
Pulkovo 1995 / Gauss-Kruger 4N,20064,4200,16304
|
||||||
Pulkovo 1995 / Gauss-Kruger 5N,20065,4200,16305
|
Pulkovo 1995 / Gauss-Kruger 5N,20065,4200,16305
|
||||||
Pulkovo 1995 / Gauss-Kruger 6N,20066,4200,16306
|
Pulkovo 1995 / Gauss-Kruger 6N,20066,4200,16306
|
||||||
@ -3150,39 +3143,6 @@ ED50 / TM 0 N,23090,4230,16400
|
|||||||
ED50 / TM 5 NE,23095,4230,16405
|
ED50 / TM 5 NE,23095,4230,16405
|
||||||
Fahud / UTM zone 39N,23239,4232,16039
|
Fahud / UTM zone 39N,23239,4232,16039
|
||||||
Fahud / UTM zone 40N,23240,4232,16040
|
Fahud / UTM zone 40N,23240,4232,16040
|
||||||
NAD83(2011) / ICS83-Freeport (ftUS),23301,6318,11264
|
|
||||||
NAD83(2011) / ICS83-Rockford (ftUS),23302,6318,11265
|
|
||||||
NAD83(2011) / ICS83-Aurora (ftUS),23303,6318,11233
|
|
||||||
NAD83(2011) / ICS83-Chicago (ftUS),23304,6318,11234
|
|
||||||
NAD83(2011) / ICS83-Moline (ftUS),23305,6318,11235
|
|
||||||
NAD83(2011) / ICS83-Sterling (ftUS),23306,6318,11236
|
|
||||||
NAD83(2011) / ICS83-Ottawa (ftUS),23307,6318,11237
|
|
||||||
NAD83(2011) / ICS83-Joliet (ftUS),23308,6318,11238
|
|
||||||
NAD83(2011) / ICS83-Monmouth (ftUS),23309,6318,11239
|
|
||||||
NAD83(2011) / ICS83-Galesburg (ftUS),23310,6318,11240
|
|
||||||
NAD83(2011) / ICS83-Peoria (ftUS),23311,6318,11241
|
|
||||||
NAD83(2011) / ICS83-Eureka (ftUS),23312,6318,11242
|
|
||||||
NAD83(2011) / ICS83-Bloomington (ftUS),23313,6318,11243
|
|
||||||
NAD83(2011) / ICS83-Pontiac (ftUS),23314,6318,11244
|
|
||||||
NAD83(2011) / ICS83-Watseka (ftUS),23315,6318,11245
|
|
||||||
NAD83(2011) / ICS83-Quincy (ftUS),23316,6318,11246
|
|
||||||
NAD83(2011) / ICS83-Macomb (ftUS),23317,6318,11247
|
|
||||||
NAD83(2011) / ICS83-Lincoln (ftUS),23318,6318,11248
|
|
||||||
NAD83(2011) / ICS83-Decatur (ftUS),23319,6318,11249
|
|
||||||
NAD83(2011) / ICS83-Champaign (ftUS),23320,6318,11250
|
|
||||||
NAD83(2011) / ICS83-Jacksonville (ftUS),23321,6318,11251
|
|
||||||
NAD83(2011) / ICS83-Springfield (ftUS),23322,6318,11252
|
|
||||||
NAD83(2011) / ICS83-Charleston (ftUS),23323,6318,11253
|
|
||||||
NAD83(2011) / ICS83-Jerseyville (ftUS),23324,6318,11254
|
|
||||||
NAD83(2011) / ICS83-Carlinville (ftUS),23325,6318,11255
|
|
||||||
NAD83(2011) / ICS83-Taylorville (ftUS),23326,6318,11256
|
|
||||||
NAD83(2011) / ICS83-Effingham (ftUS),23327,6318,11257
|
|
||||||
NAD83(2011) / ICS83-Robinson (ftUS),23328,6318,11258
|
|
||||||
NAD83(2011) / ICS83-Belleville (ftUS),23329,6318,11259
|
|
||||||
NAD83(2011) / ICS83-Mount Vernon (ftUS),23330,6318,11260
|
|
||||||
NAD83(2011) / ICS83-Olney (ftUS),23331,6318,11261
|
|
||||||
NAD83(2011) / ICS83-Carbondale (ftUS),23332,6318,11262
|
|
||||||
NAD83(2011) / ICS83-Metropolis (ftUS),23333,6318,11263
|
|
||||||
HD72 / EOV,23700,4237,19931
|
HD72 / EOV,23700,4237,19931
|
||||||
DGN95 / Indonesia TM-3 zone 46.2,23830,4755,17432
|
DGN95 / Indonesia TM-3 zone 46.2,23830,4755,17432
|
||||||
DGN95 / Indonesia TM-3 zone 47.1,23831,4755,17433
|
DGN95 / Indonesia TM-3 zone 47.1,23831,4755,17433
|
||||||
|
|
@ -283,6 +283,42 @@ Map Grid of Australia zone 44,6728,9001,9807,4400,8801,0,9102,8802,81,9102,8805,
|
|||||||
Map Grid of Australia zone 46,6729,9001,9807,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,
|
Map Grid of Australia zone 46,6729,9001,9807,4400,8801,0,9102,8802,93,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,
|
||||||
Map Grid of Australia zone 47,6730,9001,9807,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,
|
Map Grid of Australia zone 47,6730,9001,9807,4400,8801,0,9102,8802,99,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,
|
||||||
Map Grid of Australia zone 59,6731,9001,9807,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,
|
Map Grid of Australia zone 59,6731,9001,9807,4400,8801,0,9102,8802,171,9102,8805,0.9996,9201,8806,500000,9001,8807,10000000,9001,,,,,,
|
||||||
|
Oregon Baker zone (meter),6741,9001,9807,4499,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,40000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Baker zone (international foot),6742,9002,9807,4495,8801,44.3,9110,8802,-117.5,9110,8805,1.00016,9201,8806,131233.5958,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Bend-Klamath Falls zone (meter),6743,9001,9807,4499,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,80000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Bend-Klamath Falls zone (international foot),6744,9002,9807,4495,8801,41.45,9110,8802,-121.45,9110,8805,1.0002,9201,8806,262467.1916,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Bend-Redmond-Prineville zone (meter),6745,9001,9801,4499,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,80000.0,9001,8807,130000.0,9001,,,,,,
|
||||||
|
Oregon Bend-Redmond-Prineville zone (international foot),6746,9002,9801,4495,8801,44.4,9110,8802,-121.15,9110,8805,1.00012,9201,8806,262467.1916,9002,8807,426509.1864,9002,,,,,,
|
||||||
|
Oregon Bend-Burns zone (meter),6747,9001,9801,4499,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,120000.0,9001,8807,60000.0,9001,,,,,,
|
||||||
|
Oregon Bend-Burns zone (international foot),6748,9002,9801,4495,8801,43.4,9110,8802,-119.45,9110,8805,1.0002,9201,8806,393700.7874,9002,8807,196850.3937,9002,,,,,,
|
||||||
|
Oregon Canyonville-Grants Pass zone (meter),6749,9001,9807,4499,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,40000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Canyonville-Grants Pass zone (international foot),6750,9002,9807,4495,8801,42.3,9110,8802,-123.2,9110,8805,1.00007,9201,8806,131233.5958,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Columbia River East zone (meter),6751,9001,9801,4499,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,150000.0,9001,8807,30000.0,9001,,,,,,
|
||||||
|
Oregon Columbia River East zone (international foot),6752,9002,9801,4495,8801,45.4,9110,8802,-120.3,9110,8805,1.000008,9201,8806,492125.9843,9002,8807,98425.1969,9002,,,,,,
|
||||||
|
Oregon Cottage Grove-Canyonville zone (meter),6755,9001,9807,4499,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,50000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Cottage Grove-Canyonville zone (international foot),6756,9002,9807,4495,8801,42.5,9110,8802,-123.2,9110,8805,1.000023,9201,8806,164041.9948,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Dufur-Madras zone (meter),6757,9001,9807,4499,8801,44.3,9110,8802,-121.0,9110,8805,1.00011,9201,8806,80000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Dufur-Madras zone (international foot),6758,9002,9807,4495,8801,44.3,9110,8802,-121.0,9110,8805,1.00011,9201,8806,262467.1916,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Eugene zone (meter),6759,9001,9807,4499,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,50000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Eugene zone (international foot),6760,9002,9807,4495,8801,43.45,9110,8802,-123.1,9110,8805,1.000015,9201,8806,164041.9948,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Grants Pass-Ashland zone (meter),6761,9001,9807,4499,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,50000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Grants Pass-Ashland zone (international foot),6762,9002,9807,4495,8801,41.45,9110,8802,-123.2,9110,8805,1.000043,9201,8806,164041.9948,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Gresham-Warm Springs zone (meter),6763,9001,9807,4499,8801,45.0,9110,8802,-122.2,9110,8805,1.00005,9201,8806,10000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Gresham-Warm Springs zone (international foot),6764,9002,9807,4495,8801,45.0,9110,8802,-122.2,9110,8805,1.00005,9201,8806,32808.399,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon La Grande zone (meter),6765,9001,9807,4499,8801,45.0,9102,8802,-118.0,9102,8805,1.00013,9201,8806,40000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon La Grande zone (international foot),6766,9002,9807,4495,8801,45.0,9102,8802,-118.0,9102,8805,1.00013,9201,8806,131233.5958,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Ontario zone (meter),6767,9001,9807,4499,8801,43.15,9110,8802,-117.0,9110,8805,1.0001,9201,8806,80000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Ontario zone (international foot),6768,9002,9807,4495,8801,43.15,9110,8802,-117.0,9110,8805,1.0001,9201,8806,262467.1916,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Pendleton zone (meter),6771,9001,9807,4499,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,60000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Pendleton zone (international foot),6772,9001,9807,4495,8801,45.15,9110,8802,-119.1,9110,8805,1.000045,9201,8806,196850.3937,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Pendleton-La Grande zone (meter),6773,9001,9807,4499,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,30000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Pendleton-La Grande zone (international foot),6774,9002,9807,4495,8801,45.05,9110,8802,-118.2,9110,8805,1.000175,9201,8806,98425.1969,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Portland zone (meter),6775,9001,9801,4499,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,100000.0,9001,8807,50000.0,9001,,,,,,
|
||||||
|
Oregon Portland zone (international foot),6776,9002,9801,4495,8801,45.3,9110,8802,-122.45,9110,8805,1.000002,9201,8806,328083.9895,9002,8807,164041.9948,9002,,,,,,
|
||||||
|
Oregon Salem zone (meter),6777,9001,9807,4499,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,50000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Salem zone (international foot),6778,9002,9807,4495,8801,44.2,9110,8802,-123.05,9110,8805,1.00001,9201,8806,164041.9948,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Santiam Pass zone (meter),6779,9001,9807,4499,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Santiam Pass zone (international foot),6780,9002,9807,4495,8801,44.05,9110,8802,-122.3,9110,8805,1.000155,9201,8806,0.0,9002,8807,0.0,9002,,,,,,
|
||||||
Albania TM 2010,6869,9001,9807,4530,8801,0,9102,8802,20,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,
|
Albania TM 2010,6869,9001,9807,4530,8801,0,9102,8802,20,9102,8805,1,9201,8806,500000,9001,8807,0,9001,,,,,,
|
||||||
Italy zone,6877,9001,9807,4500,8801,0,9102,8802,12,9102,8805,0.9985,9201,8806,7000000,9001,8807,0,9001,,,,,,
|
Italy zone,6877,9001,9807,4500,8801,0,9102,8802,12,9102,8805,0.9985,9201,8806,7000000,9001,8807,0,9001,,,,,,
|
||||||
Italy zone 12,6878,9001,9807,4500,8801,0,9102,8802,12,9102,8805,1,9201,8806,3000000,9001,8807,0,9001,,,,,,
|
Italy zone 12,6878,9001,9807,4500,8801,0,9102,8802,12,9102,8805,1,9201,8806,3000000,9001,8807,0,9001,,,,,,
|
||||||
@ -295,7 +331,159 @@ Vietnam TM-3 zone 482,6953,9001,9807,4400,8801,0,9102,8802,105,9102,8805,0.9999,
|
|||||||
Vietnam TM-3 zone 491,6954,9001,9807,4400,8801,0,9102,8802,108,9102,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,
|
Vietnam TM-3 zone 491,6954,9001,9807,4400,8801,0,9102,8802,108,9102,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,
|
||||||
Vietnam TM-3 Da Nang zone,6955,9001,9807,4400,8801,0,9110,8802,107.45,9110,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,
|
Vietnam TM-3 Da Nang zone,6955,9001,9807,4400,8801,0,9110,8802,107.45,9110,8805,0.9999,9201,8806,0,9001,8807,500000,9001,,,,,,
|
||||||
Albania LCC 2010,6961,9001,9802,4530,8821,41,9102,8822,20,9102,8823,39,9102,8824,43,9102,8826,0,9001,8827,0,9001,,,
|
Albania LCC 2010,6961,9001,9802,4530,8821,41,9102,8822,20,9102,8823,39,9102,8824,43,9102,8826,0,9001,8827,0,9001,,,
|
||||||
|
City and County of San Francisco CS13 (meters),6994,9001,9807,4499,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9202,8806,48000.0,9001,8807,24000.0,9001,,,,,,
|
||||||
|
City and County of San Francisco CS13 (US Survey feet),6995,9003,9807,4497,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9202,8806,157480.0,9003,8807,78740.0,9003,,,,,,
|
||||||
|
Iowa regional zone 1 Spencer,7043,9003,9801,4497,8801,43.12,9110,8802,-95.15,9110,8805,1.000052,9201,8806,11500000.0,9003,8807,9600000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 2 Mason City,7044,9003,9801,4497,8801,43.1,9110,8802,-92.45,9110,8805,1.000043,9201,8806,12500000.0,9003,8807,9800000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 3 Elkader,7045,9003,9807,4497,8801,40.15,9110,8802,-91.12,9110,8805,1.000035,9201,8806,13500000.0,9003,8807,8300000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 4 Sioux City-Iowa Falls,7046,9003,9801,4497,8801,42.32,9110,8802,-94.5,9110,8805,1.000045,9201,8806,14500000.0,9003,8807,8600000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 5 Waterloo,7047,9003,9801,4497,8801,42.39,9110,8802,-92.15,9110,8805,1.000032,9201,8806,15500000.0,9003,8807,8900000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 6 Council Bluffs,7048,9003,9807,4497,8801,40.15,9110,8802,-95.44,9110,8805,1.000039,9201,8806,16500000.0,9003,8807,6600000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 7 Carroll-Atlantic,7049,9003,9807,4497,8801,40.15,9110,8802,-94.38,9110,8805,1.000045,9201,8806,17500000.0,9003,8807,6800000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 8 Ames-Des Moines,7050,9003,9807,4497,8801,40.15,9110,8802,-93.43,9110,8805,1.000033,9201,8806,18500000.0,9003,8807,7000000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 9 Newton,7051,9003,9807,4497,8801,40.15,9110,8802,-92.49,9110,8805,1.000027,9201,8806,19500000.0,9003,8807,7200000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 10 Cedar Rapids,7052,9003,9801,4497,8801,41.5,9110,8802,-91.4,9110,8805,1.00002,9201,8806,20500000.0,9003,8807,8000000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 11 Dubuque-Davenport,7053,9003,9807,4497,8801,40.15,9110,8802,-90.32,9110,8805,1.000027,9201,8806,21500000.0,9003,8807,7600000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 12 Red Oak-Ottumwa,7054,9003,9801,4497,8801,40.55,9110,8802,-93.45,9110,8805,1.000037,9201,8806,22500000.0,9003,8807,6200000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 13 Fairfield,7055,9003,9807,4497,8801,40.15,9110,8802,-91.55,9110,8805,1.00002,9201,8806,23500000.0,9003,8807,6400000.0,9003,,,,,,
|
||||||
|
Iowa regional zone 14 Burlington,7056,9003,9807,4497,8801,40.15,9110,8802,-91.15,9110,8805,1.000018,9201,8806,24500000.0,9003,8807,6200000.0,9003,,,,,,
|
||||||
|
Montana Blackfeet St Mary Valley (meter),7089,9001,9807,4499,8801,48.3,9110,8802,-112.3,9110,8805,1.00016,9201,8806,150000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Montana Blackfeet St Mary Valley (international foot),7090,9002,9807,4495,8801,48.3,9110,8802,-112.3,9110,8805,1.00016,9201,8806,492125.9843,9002,8807,0.0,9002,,,,,,
|
||||||
|
Montana Blackfeet (meter),7091,9001,9807,4499,8801,48.0,9110,8802,-112.3,9110,8805,1.00019,9201,8806,100000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Montana Blackfeet (international foot),7092,9002,9807,4495,8801,48.0,9110,8802,-112.3,9110,8805,1.00019,9201,8806,328083.9895,9002,8807,0.0,9002,,,,,,
|
||||||
|
Montana Milk River (meter),7093,9001,9801,4499,8801,48.3,9110,8802,-111.0,9110,8805,1.000145,9201,8806,150000.0,9001,8807,200000.0,9001,,,,,,
|
||||||
|
Montana Milk River (international foot),7094,9002,9801,4495,8801,48.3,9110,8802,-111.0,9110,8805,1.000145,9201,8806,492125.9843,9002,8807,656167.979,9002,,,,,,
|
||||||
|
Montana Fort Belknap (meter),7095,9001,9801,4499,8801,48.3,9110,8802,-108.3,9110,8805,1.00012,9201,8806,200000.0,9001,8807,150000.0,9001,,,,,,
|
||||||
|
Montana Fort Belknap (international foot),7096,9002,9801,4495,8801,48.3,9110,8802,-108.3,9110,8805,1.00012,9201,8806,656167.979,9002,8807,492125.9843,9002,,,,,,
|
||||||
|
Montana Fort Peck Assiniboine (meter),7097,9001,9801,4499,8801,48.2,9110,8802,-105.3,9110,8805,1.00012,9201,8806,200000.0,9001,8807,100000.0,9001,,,,,,
|
||||||
|
Montana Fort Peck Assiniboine (international foot),7098,9002,9801,4495,8801,48.2,9110,8802,-105.3,9110,8805,1.00012,9201,8806,656167.979,9002,8807,328083.9895,9002,,,,,,
|
||||||
|
Montana Fort Peck Sioux (meter),7099,9001,9801,4499,8801,48.2,9110,8802,-105.3,9110,8805,1.00009,9201,8806,100000.0,9001,8807,50000.0,9001,,,,,,
|
||||||
|
Montana Fort Peck Sioux (international foot),7100,9002,9801,4495,8801,48.2,9110,8802,-105.3,9110,8805,1.00009,9201,8806,328083.9895,9002,8807,164041.9938,9002,,,,,,
|
||||||
|
Montana Crow (meter),7101,9001,9807,4499,8801,44.45,9110,8802,-107.45,9110,8805,1.000148,9201,8806,200000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Montana Crow (international foot),7102,9002,9807,4495,8801,44.45,9110,8802,-107.45,9110,8805,1.000148,9201,8806,656167.979,9002,8807,0.0,9002,,,,,,
|
||||||
|
Montana Bobcat (meter),7103,9001,9801,4499,8801,46.15,9110,8802,-111.15,9110,8805,1.000185,9201,8806,100000.0,9001,8807,100000.0,9001,,,,,,
|
||||||
|
Montana Bobcat (international foot),7104,9002,9801,4495,8801,46.15,9110,8802,-111.15,9110,8805,1.000185,9201,8806,328083.9895,9002,8807,328083.9895,9002,,,,,,
|
||||||
|
Montana Billings (meter),7105,9001,9801,4499,8801,45.47,9110,8802,-108.25,9110,8805,1.0001515,9201,8806,200000.0,9001,8807,50000.0,9001,,,,,,
|
||||||
|
Montana Billings (international foot),7106,9002,9801,4495,8801,45.47,9110,8802,-108.25,9110,8805,1.0001515,9201,8806,656167.979,9002,8807,164041.9948,9002,,,,,,
|
||||||
|
Wyoming Wind River (meter),7107,9001,9807,4499,8801,42.4,9110,8802,-108.2,9110,8805,1.00024,9201,8806,100000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Wyoming Wind River (US survey foot),7108,9003,9807,4497,8801,42.4,9110,8802,-108.2,9110,8805,1.00024,9201,8806,328083.3333,9003,8807,0.0,9003,,,,,,
|
||||||
|
City and County of San Francisco CS13 (meter),7129,9001,9807,4499,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9201,8806,48000.0,9001,8807,24000.0,9001,,,,,,
|
||||||
|
City and County of San Francisco CS13 (US survey foot),7130,9003,9807,4497,8801,37.75,9102,8802,-122.45,9102,8805,1.000007,9201,8806,157480.0,9003,8807,78740.0,9003,,,,,,
|
||||||
Palestine Grid modified,7141,9001,9807,4400,8801,31.4402749,9110,8802,35.124349,9110,8805,1,9201,8806,170251.555,9001,8807,126867.909,9001,,,,,,
|
Palestine Grid modified,7141,9001,9807,4400,8801,31.4402749,9110,8802,35.124349,9110,8805,1,9201,8806,170251.555,9001,8807,126867.909,9001,,,,,,
|
||||||
|
InGCS Adams (m),7143,9001,9807,4499,8801,40.33,9110,8802,-84.57,9110,8805,1.000034,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Adams (ftUS),7144,9003,9807,4497,8801,40.33,9110,8802,-84.57,9110,8805,1.000034,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Allen (m),7145,9001,9807,4499,8801,40.54,9110,8802,-85.03,9110,8805,1.000031,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Allen (ftUS),7146,9003,9807,4497,8801,40.54,9110,8802,-85.03,9110,8805,1.000031,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Bartholomew (m),7147,9001,9807,4499,8801,39.0,9110,8802,-85.51,9110,8805,1.000026,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Bartholomew (ftUS),7148,9003,9807,4497,8801,39.0,9110,8802,-85.51,9110,8805,1.000026,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Benton (m),7149,9001,9807,4499,8801,40.27,9110,8802,-87.18,9110,8805,1.000029,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Benton (ftUS),7150,9003,9807,4497,8801,40.27,9110,8802,-87.18,9110,8805,1.000029,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Blackford-Delaware (m),7151,9001,9807,4499,8801,40.03,9110,8802,-85.24,9110,8805,1.000038,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Blackford-Delaware (ftUS),7152,9003,9807,4497,8801,40.03,9110,8802,-85.24,9110,8805,1.000038,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Boone-Hendricks (m),7153,9001,9807,4499,8801,39.36,9110,8802,-86.3,9110,8805,1.000036,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Boone-Hendricks (ftUS),7154,9003,9807,4497,8801,39.36,9110,8802,-86.3,9110,8805,1.000036,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Brown (m),7155,9001,9807,4499,8801,39.0,9110,8802,-86.18,9110,8805,1.00003,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Brown (ftUS),7156,9003,9807,4497,8801,39.0,9110,8802,-86.18,9110,8805,1.00003,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Carroll (m),7157,9001,9807,4499,8801,40.24,9110,8802,-86.39,9110,8805,1.000026,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Carroll (ftUS),7158,9003,9807,4497,8801,40.24,9110,8802,-86.39,9110,8805,1.000026,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Cass (m),7159,9001,9807,4499,8801,40.33,9110,8802,-86.24,9110,8805,1.000028,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Cass (ftUS),7160,9003,9807,4497,8801,40.33,9110,8802,-86.24,9110,8805,1.000028,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Clark-Floyd-Scott (m),7161,9001,9807,4499,8801,38.09,9110,8802,-85.36,9110,8805,1.000021,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Clark-Floyd-Scott (ftUS),7162,9003,9807,4497,8801,38.09,9110,8802,-85.36,9110,8805,1.000021,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Clay (m),7163,9001,9807,4499,8801,39.09,9110,8802,-87.09,9110,8805,1.000024,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Clay (ftUS),7164,9003,9807,4497,8801,39.09,9110,8802,-87.09,9110,8805,1.000024,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Clinton (m),7165,9001,9807,4499,8801,40.09,9110,8802,-86.36,9110,8805,1.000032,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Clinton (ftUS),7166,9003,9807,4497,8801,40.09,9110,8802,-86.36,9110,8805,1.000032,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Crawford-Lawrence-Orange (m),7167,9001,9807,4499,8801,38.06,9110,8802,-86.3,9110,8805,1.000025,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Crawford-Lawrence-Orange (ftUS),7168,9003,9807,4497,8801,38.06,9110,8802,-86.3,9110,8805,1.000025,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Daviess-Greene (m),7169,9001,9807,4499,8801,38.27,9110,8802,-87.06,9110,8805,1.000018,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Daviess-Greene (ftUS),7170,9003,9807,4497,8801,38.27,9110,8802,-87.06,9110,8805,1.000018,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Dearborn-Ohio-Switzerland (m),7171,9001,9807,4499,8801,38.39,9110,8802,-84.54,9110,8805,1.000029,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Dearborn-Ohio-Switzerland (ftUS),7172,9003,9807,4497,8801,38.39,9110,8802,-84.54,9110,8805,1.000029,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Decatur-Rush (m),7173,9001,9807,4499,8801,39.06,9110,8802,-85.39,9110,8805,1.000036,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Decatur-Rush (ftUS),7174,9003,9807,4497,8801,39.06,9110,8802,-85.39,9110,8805,1.000036,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS DeKalb (m),7175,9001,9807,4499,8801,41.15,9110,8802,-84.57,9110,8805,1.000036,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS DeKalb (ftUS),7176,9003,9807,4497,8801,41.15,9110,8802,-84.57,9110,8805,1.000036,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Dubois-Martin (m),7177,9001,9807,4499,8801,38.12,9110,8802,-86.57,9110,8805,1.00002,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Dubois-Martin (ftUS),7178,9003,9807,4497,8801,38.12,9110,8802,-86.57,9110,8805,1.00002,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Elkhart-Kosciusko-Wabash (m),7179,9001,9807,4499,8801,40.39,9110,8802,-85.51,9110,8805,1.000033,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Elkhart-Kosciusko-Wabash (ftUS),7180,9003,9807,4497,8801,40.39,9110,8802,-85.51,9110,8805,1.000033,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Fayette-Franklin-Union (m),7181,9001,9807,4499,8801,39.15,9110,8802,-85.03,9110,8805,1.000038,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Fayette-Franklin-Union (ftUS),7182,9003,9807,4497,8801,39.15,9110,8802,-85.03,9110,8805,1.000038,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Fountain-Warren (m),7183,9001,9807,4499,8801,39.57,9110,8802,-87.18,9110,8805,1.000025,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Fountain-Warren (ftUS),7184,9003,9807,4497,8801,39.57,9110,8802,-87.18,9110,8805,1.000025,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Fulton-Marshall-St. Joseph (m),7185,9001,9807,4499,8801,40.54,9110,8802,-86.18,9110,8805,1.000031,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Fulton-Marshall-St. Joseph (ftUS),7186,9003,9807,4497,8801,40.54,9110,8802,-86.18,9110,8805,1.000031,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Gibson (m),7187,9001,9807,4499,8801,38.09,9110,8802,-87.39,9110,8805,1.000013,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Gibson (ftUS),7188,9003,9807,4497,8801,38.09,9110,8802,-87.39,9110,8805,1.000013,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Grant (m),7189,9001,9807,4499,8801,40.21,9110,8802,-85.42,9110,8805,1.000034,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Grant (ftUS),7190,9003,9807,4497,8801,40.21,9110,8802,-85.42,9110,8805,1.000034,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Hamilton-Tipton (m),7191,9001,9807,4499,8801,39.54,9110,8802,-86.0,9110,8805,1.000034,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Hamilton-Tipton (ftUS),7192,9003,9807,4497,8801,39.54,9110,8802,-86.0,9110,8805,1.000034,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Hancock-Madison (m),7193,9001,9807,4499,8801,39.39,9110,8802,-85.48,9110,8805,1.000036,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Hancock-Madison (ftUS),7194,9003,9807,4497,8801,39.39,9110,8802,-85.48,9110,8805,1.000036,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Harrison-Washington (m),7195,9001,9807,4499,8801,37.57,9110,8802,-86.09,9110,8805,1.000027,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Harrison-Washington (ftUS),7196,9003,9807,4497,8801,37.57,9110,8802,-86.09,9110,8805,1.000027,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Henry (m),7197,9001,9807,4499,8801,39.45,9110,8802,-85.27,9110,8805,1.000043,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Henry (ftUS),7198,9003,9807,4497,8801,39.45,9110,8802,-85.27,9110,8805,1.000043,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Howard-Miami (m),7199,9001,9807,4499,8801,40.21,9110,8802,-86.09,9110,8805,1.000031,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Howard-Miami (ftUS),7200,9003,9807,4497,8801,40.21,9110,8802,-86.09,9110,8805,1.000031,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Huntington-Whitley (m),7201,9001,9807,4499,8801,40.39,9110,8802,-85.3,9110,8805,1.000034,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Huntington-Whitley (ftUS),7202,9003,9807,4497,8801,40.39,9110,8802,-85.3,9110,8805,1.000034,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Jackson (m),7203,9001,9807,4499,8801,38.42,9110,8802,-85.57,9110,8805,1.000022,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Jackson (ftUS),7204,9003,9807,4497,8801,38.42,9110,8802,-85.57,9110,8805,1.000022,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Jasper-Porter (m),7205,9001,9807,4499,8801,40.42,9110,8802,-87.06,9110,8805,1.000027,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Jasper-Porter (ftUS),7206,9003,9807,4497,8801,40.42,9110,8802,-87.06,9110,8805,1.000027,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Jay (m),7207,9001,9807,4499,8801,40.18,9110,8802,-85.0,9110,8805,1.000038,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Jay (ftUS),7208,9003,9807,4497,8801,40.18,9110,8802,-85.0,9110,8805,1.000038,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Jefferson (m),7209,9001,9807,4499,8801,38.33,9110,8802,-85.21,9110,8805,1.000028,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Jefferson (ftUS),7210,9003,9807,4497,8801,38.33,9110,8802,-85.21,9110,8805,1.000028,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Jennings (m),7211,9001,9807,4499,8801,38.48,9110,8802,-85.48,9110,8805,1.000025,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Jennings (ftUS),7212,9003,9807,4497,8801,38.48,9110,8802,-85.48,9110,8805,1.000025,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Johnson-Marion (m),7213,9001,9807,4499,8801,39.18,9110,8802,-86.09,9110,8805,1.000031,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Johnson-Marion (ftUS),7214,9003,9807,4497,8801,39.18,9110,8802,-86.09,9110,8805,1.000031,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Knox (m),7215,9001,9807,4499,8801,38.24,9110,8802,-87.27,9110,8805,1.000015,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Knox (ftUS),7216,9003,9807,4497,8801,38.24,9110,8802,-87.27,9110,8805,1.000015,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS LaGrange-Noble (m),7217,9001,9807,4499,8801,41.15,9110,8802,-85.27,9110,8805,1.000037,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS LaGrange-Noble (ftUS),7218,9003,9807,4497,8801,41.15,9110,8802,-85.27,9110,8805,1.000037,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Lake-Newton (m),7219,9001,9807,4499,8801,40.42,9110,8802,-87.24,9110,8805,1.000026,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Lake-Newton (ftUS),7220,9003,9807,4497,8801,40.42,9110,8802,-87.24,9110,8805,1.000026,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS LaPorte-Pulaski-Starke (m),7221,9001,9807,4499,8801,40.54,9110,8802,-86.45,9110,8805,1.000027,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS LaPorte-Pulaski-Starke (ftUS),7222,9003,9807,4497,8801,40.54,9110,8802,-86.45,9110,8805,1.000027,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Monroe-Morgan (m),7223,9001,9807,4499,8801,38.57,9110,8802,-86.3,9110,8805,1.000028,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Monroe-Morgan (ftUS),7224,9003,9807,4497,8801,38.57,9110,8802,-86.3,9110,8805,1.000028,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Montgomery-Putnam (m),7225,9001,9807,4499,8801,39.27,9110,8802,-86.57,9110,8805,1.000031,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Montgomery-Putnam (ftUS),7226,9003,9807,4497,8801,39.27,9110,8802,-86.57,9110,8805,1.000031,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Owen (m),7227,9001,9807,4499,8801,39.09,9110,8802,-86.54,9110,8805,1.000026,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Owen (ftUS),7228,9003,9807,4497,8801,39.09,9110,8802,-86.54,9110,8805,1.000026,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Parke-Vermillion (m),7229,9001,9807,4499,8801,39.36,9110,8802,-87.21,9110,8805,1.000022,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Parke-Vermillion (ftUS),7230,9003,9807,4497,8801,39.36,9110,8802,-87.21,9110,8805,1.000022,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Perry (m),7231,9001,9807,4499,8801,37.48,9110,8802,-86.42,9110,8805,1.00002,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Perry (ftUS),7232,9003,9807,4497,8801,37.48,9110,8802,-86.42,9110,8805,1.00002,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Pike-Warrick (m),7233,9001,9807,4499,8801,37.51,9110,8802,-87.18,9110,8805,1.000015,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Pike-Warrick (ftUS),7234,9003,9807,4497,8801,37.51,9110,8802,-87.18,9110,8805,1.000015,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Posey (m),7235,9001,9807,4499,8801,37.45,9110,8802,-87.57,9110,8805,1.000013,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Posey (ftUS),7236,9003,9807,4497,8801,37.45,9110,8802,-87.57,9110,8805,1.000013,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Randolph-Wayne (m),7237,9001,9807,4499,8801,39.42,9110,8802,-85.03,9110,8805,1.000044,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Randolph-Wayne (ftUS),7238,9003,9807,4497,8801,39.42,9110,8802,-85.03,9110,8805,1.000044,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Ripley (m),7239,9001,9807,4499,8801,38.54,9110,8802,-85.18,9110,8805,1.000038,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Ripley (ftUS),7240,9003,9807,4497,8801,38.54,9110,8802,-85.18,9110,8805,1.000038,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Shelby (m),7241,9001,9807,4499,8801,39.18,9110,8802,-85.54,9110,8805,1.00003,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Shelby (ftUS),7242,9003,9807,4497,8801,39.18,9110,8802,-85.54,9110,8805,1.00003,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Spencer (m),7243,9001,9807,4499,8801,37.45,9110,8802,-87.03,9110,8805,1.000014,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Spencer (ftUS),7244,9003,9807,4497,8801,37.45,9110,8802,-87.03,9110,8805,1.000014,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Steuben (m),7245,9001,9807,4499,8801,41.3,9110,8802,-85.0,9110,8805,1.000041,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Steuben (ftUS),7246,9003,9807,4497,8801,41.3,9110,8802,-85.0,9110,8805,1.000041,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Sullivan (m),7247,9001,9807,4499,8801,38.54,9110,8802,-87.3,9110,8805,1.000017,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Sullivan (ftUS),7248,9003,9807,4497,8801,38.54,9110,8802,-87.3,9110,8805,1.000017,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Tippecanoe-White (m),7249,9001,9807,4499,8801,40.12,9110,8802,-86.54,9110,8805,1.000026,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Tippecanoe-White (ftUS),7250,9003,9807,4497,8801,40.12,9110,8802,-86.54,9110,8805,1.000026,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Vanderburgh (m),7251,9001,9807,4499,8801,37.48,9110,8802,-87.33,9110,8805,1.000015,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Vanderburgh (ftUS),7252,9003,9807,4497,8801,37.48,9110,8802,-87.33,9110,8805,1.000015,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Vigo (m),7253,9001,9807,4499,8801,39.15,9110,8802,-87.27,9110,8805,1.00002,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Vigo (ftUS),7254,9003,9807,4497,8801,39.15,9110,8802,-87.27,9110,8805,1.00002,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
|
InGCS Wells (m),7255,9001,9807,4499,8801,40.33,9110,8802,-85.15,9110,8805,1.000034,9201,8806,240000.0,9001,8807,36000.0,9001,,,,,,
|
||||||
|
InGCS Wells (ftUS),7256,9003,9807,4497,8801,40.33,9110,8802,-85.15,9110,8805,1.000034,9201,8806,787400.0,9003,8807,118110.0,9003,,,,,,
|
||||||
WISCRS Ashland County (m),7378,9001,9807,4499,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,172821.9461,9001,8807,0.0017,9001,,,,,,
|
WISCRS Ashland County (m),7378,9001,9807,4499,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,172821.9461,9001,8807,0.0017,9001,,,,,,
|
||||||
WISCRS Ashland County (ftUS),7379,9003,9807,4497,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,567000.001,9003,8807,0.006,9003,,,,,,
|
WISCRS Ashland County (ftUS),7379,9003,9807,4497,8801,45.4222,9110,8802,-90.372,9110,8805,1.0000495683,9201,8806,567000.001,9003,8807,0.006,9003,,,,,,
|
||||||
WISCRS Bayfield County (m),7380,9001,9801,4499,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,228600.4575,9001,8807,148551.4837,9001,,,,,,
|
WISCRS Bayfield County (m),7380,9001,9801,4499,8801,46.4010734158,9110,8802,-91.091,9110,8805,1.0000331195,9201,8806,228600.4575,9001,8807,148551.4837,9001,,,,,,
|
||||||
@ -372,6 +560,8 @@ WISCRS Wood County (m),7482,9001,9801,4499,8801,44.214534369,9110,8802,-90,9110,
|
|||||||
WISCRS Wood County (ftUS),7483,9003,9801,4497,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,684000.001,9003,8807,441566.551,9003,,,,,,
|
WISCRS Wood County (ftUS),7483,9003,9801,4497,8801,44.214534369,9110,8802,-90,9110,8805,1.0000421209,9201,8806,684000.001,9003,8807,441566.551,9003,,,,,,
|
||||||
WISCRS Adams and Juneau Counties (m),7484,9001,9807,4499,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,147218.6942,9001,8807,0.0037,9001,,,,,,
|
WISCRS Adams and Juneau Counties (m),7484,9001,9807,4499,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,147218.6942,9001,8807,0.0037,9001,,,,,,
|
||||||
WISCRS Adams and Juneau Counties (ftUS),7485,9003,9807,4497,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,482999.999,9003,8807,0.012,9003,,,,,,
|
WISCRS Adams and Juneau Counties (ftUS),7485,9003,9807,4497,8801,43.22,9110,8802,-90,9110,8805,1.0000365285,9201,8806,482999.999,9003,8807,0.012,9003,,,,,,
|
||||||
|
"WISCRS Calumet, Fond du Lac, Outagamie and Winnebago Counties (m)",7486,9001,9807,4499,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,244754.8893,9001,8807,0.0049,9001,,,,,,
|
||||||
|
"WISCRS Calumet, Fond du Lac, Outagamie and Winnebago Counties (ftUS)",7487,9003,9807,4497,8801,42.431,9110,8802,-88.3,9110,8805,1.0000286569,9201,8806,802999.999,9003,8807,0.016,9003,,,,,,
|
||||||
WISCRS Columbia County (m),7488,9001,9801,4499,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,169164.3381,9001,8807,111569.6134,9001,,,,,,
|
WISCRS Columbia County (m),7488,9001,9801,4499,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,169164.3381,9001,8807,111569.6134,9001,,,,,,
|
||||||
WISCRS Columbia County (ftUS),7489,9003,9801,4497,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,554999.999,9003,8807,366041.307,9003,,,,,,
|
WISCRS Columbia County (ftUS),7489,9003,9801,4497,8801,43.2745167925,9110,8802,-89.234,9110,8805,1.00003498,9201,8806,554999.999,9003,8807,366041.307,9003,,,,,,
|
||||||
WISCRS Crawford County (m),7490,9001,9801,4499,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,113690.6274,9001,8807,53703.1201,9001,,,,,,
|
WISCRS Crawford County (m),7490,9001,9801,4499,8801,43.1200200178,9110,8802,-90.562,9110,8805,1.0000349151,9201,8806,113690.6274,9001,8807,53703.1201,9001,,,,,,
|
||||||
@ -388,6 +578,10 @@ WISCRS Green Lake and Marquette Counties (m),7500,9001,9801,4499,8801,43.4825200
|
|||||||
WISCRS Green Lake and Marquette Counties (ftUS),7501,9003,9801,4497,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,495000,9003,8807,259746.132,9003,,,,,,
|
WISCRS Green Lake and Marquette Counties (ftUS),7501,9003,9801,4497,8801,43.4825200424,9110,8802,-89.143,9110,8805,1.0000344057,9201,8806,495000,9003,8807,259746.132,9003,,,,,,
|
||||||
WISCRS Iowa County (m),7502,9001,9807,4499,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,113081.0261,9001,8807,0.0045,9001,,,,,,
|
WISCRS Iowa County (m),7502,9001,9807,4499,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,113081.0261,9001,8807,0.0045,9001,,,,,,
|
||||||
WISCRS Iowa County (ftUS),7503,9003,9807,4497,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,371000,9003,8807,0.015,9003,,,,,,
|
WISCRS Iowa County (ftUS),7503,9003,9807,4497,8801,42.322,9110,8802,-90.094,9110,8805,1.0000394961,9201,8806,371000,9003,8807,0.015,9003,,,,,,
|
||||||
|
"WISCRS Kenosha, Milwaukee, Ozaukee and Racine Counties (m)",7504,9001,9807,4499,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,185928.3728,9001,8807,0.0009,9001,,,,,,
|
||||||
|
"WISCRS Kenosha, Milwaukee, Ozaukee and Racine Counties (ftUS)",7505,9003,9807,4497,8801,42.13,9110,8802,-87.534,9110,8805,1.0000260649,9201,8806,610000.003,9003,8807,0.003,9003,,,,,,
|
||||||
|
"WISCRS Kewaunee, Manitowoc and Sheboygan Counties (m)",7506,9001,9807,4499,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,79857.7614,9001,8807,0.0012,9001,,,,,,
|
||||||
|
"WISCRS Kewaunee, Manitowoc and Sheboygan Counties (ftUS)",7507,9003,9807,4497,8801,43.16,9110,8802,-87.33,9110,8805,1.0000233704,9201,8806,262000.006,9003,8807,0.004,9003,,,,,,
|
||||||
WISCRS La Crosse County (m),7508,9001,9807,4499,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,130454.6598,9001,8807,0.0033,9001,,,,,,
|
WISCRS La Crosse County (m),7508,9001,9807,4499,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,130454.6598,9001,8807,0.0033,9001,,,,,,
|
||||||
WISCRS La Crosse County (ftUS),7509,9003,9807,4497,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,427999.996,9003,8807,0.011,9003,,,,,,
|
WISCRS La Crosse County (ftUS),7509,9003,9807,4497,8801,43.2704,9110,8802,-91.19,9110,8805,1.0000319985,9201,8806,427999.996,9003,8807,0.011,9003,,,,,,
|
||||||
WISCRS Monroe County (m),7510,9001,9801,4499,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,204521.209,9001,8807,121923.9861,9001,,,,,,
|
WISCRS Monroe County (m),7510,9001,9801,4499,8801,44.0000266143,9110,8802,-90.383,9110,8805,1.0000434122,9201,8806,204521.209,9001,8807,121923.9861,9001,,,,,,
|
||||||
@ -452,6 +646,74 @@ St. Helena Local Grid 1971,7875,9001,9807,4400,8801,-15.58,9110,8802,-5.43,9110,
|
|||||||
St. Helena Local Grid (Tritan),7876,9001,9807,4400,8801,-15.58,9110,8802,-5.43,9110,8805,1,9201,8806,299483.737,9001,8807,2000527.879,9001,,,,,,
|
St. Helena Local Grid (Tritan),7876,9001,9807,4400,8801,-15.58,9110,8802,-5.43,9110,8805,1,9201,8806,299483.737,9001,8807,2000527.879,9001,,,,,,
|
||||||
TM Zone 20N (US survey feet),8033,9003,9807,4497,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,
|
TM Zone 20N (US survey feet),8033,9003,9807,4497,8801,0,9102,8802,-63,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,
|
||||||
TM Zone 21N (US survey feet),8034,9003,9807,4497,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,
|
TM Zone 21N (US survey feet),8034,9003,9807,4497,8801,0,9102,8802,-57,9102,8805,0.9996,9201,8806,1640416.667,9003,8807,0,9003,,,,,,
|
||||||
|
Pima County zone 1 East (ft),8061,9002,9815,4495,8811,32.15,9110,8812,-111.24,9110,8813,45.0,9102,8814,45.0,9102,8815,1.00011,9201,8816,160000.0,9002,8817,800000.0,9002
|
||||||
|
Pima County zone 2 Central (ft),8062,9002,9807,4495,8801,31.15,9110,8802,-112.1,9110,8805,1.00009,9201,8806,1800000.0,9002,8807,1000000.0,9002,,,,,,
|
||||||
|
Pima County zone 3 West (ft),8063,9002,9807,4495,8801,31.3,9110,8802,-113.1,9110,8805,1.000055,9201,8806,600000.0,9002,8807,0.0,9002,,,,,,
|
||||||
|
Pima County zone 4 Mt. Lemmon (ft),8064,9002,9801,4495,8801,30.3,9110,8802,-110.45,9110,8805,0.9998,9201,8806,30000.0,9002,8807,-620000.0,9002,,,,,,
|
||||||
|
Oregon Burns-Harper zone (meter),8273,9001,9807,4499,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,90000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Burns-Harper zone (international foot),8274,9002,9807,4495,8801,43.3,9110,8802,-117.4,9110,8805,1.00014,9201,8806,295275.5906,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Canyon City-Burns zone (meter),8275,9001,9807,4499,8801,43.3,9110,8802,-119.0,9110,8805,1.00022,9201,8806,20000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Canyon City-Burns zone (international foot),8276,9002,9807,4495,8801,43.3,9110,8802,-119.0,9110,8805,1.00022,9201,8806,65616.7979,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Coast Range North zone (meter),8277,9001,9801,4499,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,30000.0,9001,8807,20000.0,9001,,,,,,
|
||||||
|
Oregon Coast Range North zone (international foot),8278,9002,9801,4495,8801,45.35,9110,8802,-123.25,9110,8805,1.000045,9201,8806,98425.1969,9002,8807,65616.7979,9002,,,,,,
|
||||||
|
Oregon Dayville-Prairie City zone (meter),8279,9001,9807,4499,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,20000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Dayville-Prairie City zone (international foot),8280,9002,9807,4495,8801,44.15,9110,8802,-119.38,9110,8805,1.00012,9201,8806,65616.7979,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Denio-Burns zone (meter),8281,9001,9807,4499,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,80000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Denio-Burns zone (international foot),8282,9002,9807,4495,8801,41.45,9110,8802,-118.25,9110,8805,1.00019,9201,8806,262467.1916,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Halfway zone (meter),8283,9001,9801,4499,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,40000.0,9001,8807,70000.0,9001,,,,,,
|
||||||
|
Oregon Halfway zone (international foot),8284,9002,9801,4495,8801,45.15,9110,8802,-117.15,9110,8805,1.000085,9201,8806,131233.5958,9002,8807,229658.7927,9002,,,,,,
|
||||||
|
Oregon Medford-Diamond Lake zone (meter),8285,9001,9801,4499,8801,42.0,9110,8802,-122.15,9110,8805,1.00004,9201,8806,60000.0,9001,8807,-60000.0,9001,,,,,,
|
||||||
|
Oregon Medford-Diamond Lake zone (international foot),8286,9002,9801,4495,8801,42.0,9110,8802,-122.15,9110,8805,1.00004,9201,8806,196850.3937,9002,8807,-196850.3937,9002,,,,,,
|
||||||
|
Oregon Mitchell zone (meter),8287,9001,9801,4499,8801,47.0,9110,8802,-120.15,9110,8805,0.99927,9201,8806,30000.0,9001,8807,290000.0,9001,,,,,,
|
||||||
|
Oregon Mitchell zone (international foot),8288,9002,9801,4495,8801,47.0,9110,8802,-120.15,9110,8805,0.99927,9201,8806,98425.1969,9002,8807,951443.5696,9002,,,,,,
|
||||||
|
Oregon North Central zone (meter),8289,9001,9801,4499,8801,46.1,9110,8802,-120.3,9110,8805,1.0,9201,8806,100000.0,9001,8807,140000.0,9001,,,,,,
|
||||||
|
Oregon North Central zone (international foot),8290,9002,9801,4495,8801,46.1,9110,8802,-120.3,9110,8805,1.0,9201,8806,328083.9895,9002,8807,459317.5853,9002,,,,,,
|
||||||
|
Oregon Ochoco Summit zone (meter),8291,9001,9801,4499,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,40000.0,9001,8807,-80000.0,9001,,,,,,
|
||||||
|
Oregon Ochoco Summit zone (international foot),8292,9002,9801,4495,8801,43.3,9110,8802,-120.3,9110,8805,1.00006,9201,8806,131233.5958,9002,8807,-262467.1916,9002,,,,,,
|
||||||
|
Oregon Owyhee zone (meter),8293,9001,9807,4499,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,70000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Owyhee zone (international foot),8294,9002,9807,4495,8801,41.45,9110,8802,-117.35,9110,8805,1.00018,9201,8806,229658.7927,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Pilot Rock-Ukiah zone (meter),8295,9001,9801,4499,8801,46.1,9110,8802,-119.0,9110,8805,1.000025,9201,8806,50000.0,9001,8807,130000.0,9001,,,,,,
|
||||||
|
Oregon Pilot Rock-Ukiah zone (international foot),8296,9002,9801,4495,8801,46.1,9110,8802,-119.0,9110,8805,1.000025,9201,8806,164041.9948,9002,8807,426509.1864,9002,,,,,,
|
||||||
|
Oregon Prairie City-Brogan zone (meter),8297,9001,9801,4499,8801,44.0,9110,8802,-118.0,9110,8805,1.00017,9201,8806,60000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Prairie City-Brogan zone (international foot),8298,9002,9801,4495,8801,44.0,9110,8802,-118.0,9110,8805,1.00017,9201,8806,196850.3937,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Riley-Lakeview zone (meter),8299,9001,9807,4499,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,70000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Riley-Lakeview zone (international foot),8300,9002,9807,4495,8801,41.45,9110,8802,-120.2,9110,8805,1.000215,9201,8806,229658.7927,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Siskiyou Pass zone (meter),8301,9001,9801,4499,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,10000.0,9001,8807,60000.0,9001,,,,,,
|
||||||
|
Oregon Siskiyou Pass zone (international foot),8302,9002,9801,4495,8801,42.3,9110,8802,-122.35,9110,8805,1.00015,9201,8806,32808.399,9002,8807,196850.3937,9002,,,,,,
|
||||||
|
Oregon Ukiah-Fox zone (meter),8303,9001,9801,4499,8801,45.15,9110,8802,-119.0,9110,8805,1.00014,9201,8806,30000.0,9001,8807,90000.0,9001,,,,,,
|
||||||
|
Oregon Ukiah-Fox zone (international foot),8304,9002,9801,4495,8801,45.15,9110,8802,-119.0,9110,8805,1.00014,9201,8806,98425.1969,9002,8807,295275.5906,9002,,,,,,
|
||||||
|
Oregon Wallowa zone (meter),8305,9001,9807,4495,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,60000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Wallowa zone (international foot),8306,9002,9807,4495,8801,45.15,9110,8802,-117.3,9110,8805,1.000195,9201,8806,196850.3937,9002,8807,0.0,9002,,,,,,
|
||||||
|
Oregon Warner Highway zone (meter),8307,9001,9801,4499,8801,42.3,9110,8802,-120.0,9110,8805,1.000245,9201,8806,40000.0,9001,8807,60000.0,9001,,,,,,
|
||||||
|
Oregon Warner Highway zone (international foot),8308,9002,9801,4495,8801,42.3,9110,8802,-120.0,9110,8805,1.000245,9201,8806,131233.5958,9002,8807,196850.3937,9002,,,,,,
|
||||||
|
Oregon Willamette Pass zone (meter),8309,9001,9807,4499,8801,43.0,9110,8802,-122.0,9110,8805,1.000223,9201,8806,20000.0,9001,8807,0.0,9001,,,,,,
|
||||||
|
Oregon Willamette Pass zone (international foot),8310,9002,9807,4495,8801,43.0,9110,8802,-122.0,9110,8805,1.000223,9201,8806,65616.7979,9002,8807,0.0,9002,,,,,,
|
||||||
|
NCRS Las Vegas zone (m),8373,9001,9807,4499,8801,36.15,9110,8802,-114.58,9110,8805,1.0001,9201,8806,100000.0,9001,8807,200000.0,9001,,,,,,
|
||||||
|
NCRS Las Vegas zone (ftUS),8374,9003,9807,4497,8801,36.15,9110,8802,-114.58,9110,8805,1.0001,9201,8806,328083.3333,9003,8807,656166.6667,9003,,,,,,
|
||||||
|
NCRS Las Vegas high elevation zone (m),8375,9001,9807,4499,8801,36.15,9110,8802,-114.58,9110,8805,1.000135,9201,8806,300000.0,9001,8807,400000.0,9001,,,,,,
|
||||||
|
NCRS Las Vegas high elevation zone (ftUS),8376,9003,9807,4497,8801,36.15,9110,8802,-114.58,9110,8805,1.000135,9201,8806,984250.0,9003,8807,1312333.3333,9003,,,,,,
|
||||||
|
Kansas regional zone 1 Goodland (ftUS),8458,9003,9807,4497,8801,37.3,9110,8802,-101.36,9110,8805,1.000156,9201,8806,1500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 2 Colby (ftUS),8459,9003,9807,4497,8801,37.3,9110,8802,-100.57,9110,8805,1.000134,9201,8806,2500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 3 Oberlin (ftUS),8490,9003,9807,4497,8801,37.3,9110,8802,-100.21,9110,8805,1.000116,9201,8806,3500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 4 Hays (ftUS),8491,9003,9807,4497,8801,37.3,9110,8802,-99.27,9110,8805,1.000082,9201,8806,4500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 5 Great Bend (ftUS),8492,9003,9807,4497,8801,37.3,9110,8802,-98.4,9110,8805,1.000078,9201,8806,5500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 6 Beliot (ftUS),8493,9003,9807,4497,8801,37.3,9110,8802,-98.09,9110,8805,1.000068,9201,8806,6500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 7 Salina (ftUS),8494,9003,9807,4497,8801,37.3,9110,8802,-97.2,9110,8805,1.000049,9201,8806,7500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 8 Manhattan (ftUS),8495,9003,9801,4497,8801,39.1,9110,8802,-96.3,9110,8805,1.000044,9201,8806,8500000.0,9003,8807,600000.0,9003,,,,,,
|
||||||
|
Kansas regional zone 9 Emporia (ftUS),8498,9003,9801,4497,8801,38.3,9110,8802,-96.3,9110,8805,1.00005,9201,8806,9500000.0,9003,8807,300000.0,9003,,,,,,
|
||||||
|
Kansas regional zone 10 Atchison (ftUS),8499,9003,9801,4497,8801,39.38,9110,8802,-95.45,9110,8805,1.00004,9201,8806,10500000.0,9003,8807,700000.0,9003,,,,,,
|
||||||
|
Kansas regional zone 11 Kansas City (ftUS),8500,9003,9801,4497,8801,39.06,9110,8802,-95.15,9110,8805,1.000033,9201,8806,11500000.0,9003,8807,600000.0,9003,,,,,,
|
||||||
|
Kansas regional zone 12 Ulysses (ftUS),8501,9003,9807,4497,8801,36.45,9110,8802,-101.25,9110,8805,1.00014,9201,8806,12500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 13 Garden City (ftUS),8502,9003,9807,4497,8801,36.45,9110,8802,-100.24,9110,8805,1.000109,9201,8806,13500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 14 Dodge City (ftUS),8503,9003,9807,4497,8801,36.45,9110,8802,-99.4,9110,8805,1.000097,9201,8806,14500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 15 Larned (ftUS),8504,9003,9807,4497,8801,36.45,9110,8802,-99.12,9110,8805,1.000087,9201,8806,15500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 16 Pratt (ftUS),8505,9003,9807,4497,8801,36.45,9110,8802,-98.33,9110,8805,1.000069,9201,8806,16500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 17 Wichita (ftUS),8506,9003,9801,4497,8801,37.46,9110,8802,-97.3,9110,8805,1.000059,9201,8806,17500000.0,9003,8807,400000.0,9003,,,,,,
|
||||||
|
Kansas regional zone 18 Arkansas City (ftUS),8507,9003,9801,4497,8801,37.11,9110,8802,-97.3,9110,8805,1.000055,9201,8806,18500000.0,9003,8807,200000.0,9003,,,,,,
|
||||||
|
Kansas regional zone 19 Coffeyville (ftUS),8515,9003,9807,4497,8801,36.45,9110,8802,-95.58,9110,8805,1.000034,9201,8806,19500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
Kansas regional zone 20 Pittsburg (ftUS),8516,9003,9807,4497,8801,36.45,9110,8802,-95.05,9110,8805,1.000031,9201,8806,20500000.0,9003,8807,0.0,9003,,,,,,
|
||||||
|
SPCS83 Alabama East zone (US survey foot),9746,9003,9807,4497,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,656166.667,9003,8807,0.0,9003,,,,,,
|
||||||
|
SPCS83 Alabama West zone (US survey foot),9747,9003,9807,4497,8801,30.0,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,1968500.0,9003,8807,0.0,9003,,,,,,
|
||||||
Alabama CS27 East zone,10101,9003,9807,4497,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,500000,9003,8807,0,9003,,,,,,
|
Alabama CS27 East zone,10101,9003,9807,4497,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,500000,9003,8807,0,9003,,,,,,
|
||||||
Alabama CS27 West zone,10102,9003,9807,4497,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,
|
Alabama CS27 West zone,10102,9003,9807,4497,8801,30,9110,8802,-87.3,9110,8805,0.999933333,9201,8806,500000,9003,8807,0,9003,,,,,,
|
||||||
SPCS83 Alabama East zone (meters),10131,9001,9807,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,
|
SPCS83 Alabama East zone (meters),10131,9001,9807,4499,8801,30.3,9110,8802,-85.5,9110,8805,0.99996,9201,8806,200000,9001,8807,0,9001,,,,,,
|
||||||
|
|
@ -2,6 +2,7 @@
|
|||||||
#include "map/pcs.h"
|
#include "map/pcs.h"
|
||||||
#include "map/gcs.h"
|
#include "map/gcs.h"
|
||||||
#include "map/utm.h"
|
#include "map/utm.h"
|
||||||
|
#include "map/projection.h"
|
||||||
#include "gpsdumpparser.h"
|
#include "gpsdumpparser.h"
|
||||||
|
|
||||||
static double dms2dd(const QStringList &dms)
|
static double dms2dd(const QStringList &dms)
|
||||||
|
@ -303,20 +303,20 @@ bool BSBMap::createProjection(const QString &datum, const QString &proj,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!proj.compare("MERCATOR", Qt::CaseInsensitive)) {
|
if (!proj.compare("MERCATOR", Qt::CaseInsensitive)) {
|
||||||
Projection::Setup setup(0, c.lon(), NAN, 0, 0, NAN, NAN);
|
Conversion::Setup setup(0, c.lon(), NAN, 0, 0, NAN, NAN);
|
||||||
pcs = PCS(gcs, Conversion(9804, setup, 9001));
|
pcs = PCS(gcs, Conversion(9804, setup, 9001));
|
||||||
} else if (!proj.compare("TRANSVERSE MERCATOR", Qt::CaseInsensitive)) {
|
} else if (!proj.compare("TRANSVERSE MERCATOR", Qt::CaseInsensitive)) {
|
||||||
Projection::Setup setup(0, params[1], params[2], 0, 0, NAN, NAN);
|
Conversion::Setup setup(0, params[1], params[2], 0, 0, NAN, NAN);
|
||||||
pcs = PCS(gcs, Conversion(9807, setup, 9001));
|
pcs = PCS(gcs, Conversion(9807, setup, 9001));
|
||||||
} else if (!proj.compare("UNIVERSAL TRANSVERSE MERCATOR",
|
} else if (!proj.compare("UNIVERSAL TRANSVERSE MERCATOR",
|
||||||
Qt::CaseInsensitive)) {
|
Qt::CaseInsensitive)) {
|
||||||
Projection::Setup setup(0, params[0], 0.9996, 500000, 0, NAN, NAN);
|
Conversion::Setup setup(0, params[0], 0.9996, 500000, 0, NAN, NAN);
|
||||||
pcs = PCS(gcs, Conversion(9807, setup, 9001));
|
pcs = PCS(gcs, Conversion(9807, setup, 9001));
|
||||||
} else if (!proj.compare("LAMBERT CONFORMAL CONIC", Qt::CaseInsensitive)) {
|
} else if (!proj.compare("LAMBERT CONFORMAL CONIC", Qt::CaseInsensitive)) {
|
||||||
Projection::Setup setup(0, params[0], NAN, 0, 0, params[2], params[3]);
|
Conversion::Setup setup(0, params[0], NAN, 0, 0, params[2], params[3]);
|
||||||
pcs = PCS(gcs, Conversion(9802, setup, 9001));
|
pcs = PCS(gcs, Conversion(9802, setup, 9001));
|
||||||
} else if (!proj.compare("POLYCONIC", Qt::CaseInsensitive)) {
|
} else if (!proj.compare("POLYCONIC", Qt::CaseInsensitive)) {
|
||||||
Projection::Setup setup(0, params[0], NAN, 0, 0, NAN, NAN);
|
Conversion::Setup setup(0, params[0], NAN, 0, 0, NAN, NAN);
|
||||||
pcs = PCS(gcs, Conversion(9818, setup, 9001));
|
pcs = PCS(gcs, Conversion(9818, setup, 9001));
|
||||||
} else {
|
} else {
|
||||||
_errorString = proj + ": Unknown/missing projection";
|
_errorString = proj + ": Unknown/missing projection";
|
||||||
|
@ -1,71 +1,72 @@
|
|||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include "common/csv.h"
|
#include "common/csv.h"
|
||||||
|
#include "angularunits.h"
|
||||||
#include "conversion.h"
|
#include "conversion.h"
|
||||||
|
|
||||||
static bool parameter(int key, double val, int units, Projection::Setup &setup)
|
static bool parameter(int key, double val, int units, Conversion::Setup &setup)
|
||||||
{
|
{
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case 8801:
|
case 8801:
|
||||||
case 8811:
|
case 8811:
|
||||||
case 8821:
|
case 8821:
|
||||||
case 8832:
|
case 8832:
|
||||||
{AngularUnits au(units);
|
{AngularUnits au(units);
|
||||||
if (au.isNull())
|
if (au.isNull())
|
||||||
|
return false;
|
||||||
|
setup.setLatitudeOrigin(au.toDegrees(val));}
|
||||||
|
return true;
|
||||||
|
case 8802:
|
||||||
|
case 8812:
|
||||||
|
case 8822:
|
||||||
|
case 8833:
|
||||||
|
{AngularUnits au(units);
|
||||||
|
if (au.isNull())
|
||||||
|
return false;
|
||||||
|
setup.setLongitudeOrigin(au.toDegrees(val));}
|
||||||
|
return true;
|
||||||
|
case 8805:
|
||||||
|
case 8815:
|
||||||
|
case 8819:
|
||||||
|
setup.setScale(val);
|
||||||
|
return true;
|
||||||
|
case 8806:
|
||||||
|
case 8816:
|
||||||
|
case 8826:
|
||||||
|
{LinearUnits lu(units);
|
||||||
|
if (lu.isNull())
|
||||||
|
return false;
|
||||||
|
setup.setFalseEasting(lu.toMeters(val));}
|
||||||
|
return true;
|
||||||
|
case 8807:
|
||||||
|
case 8817:
|
||||||
|
case 8827:
|
||||||
|
{LinearUnits lu(units);
|
||||||
|
if (lu.isNull())
|
||||||
|
return false;
|
||||||
|
setup.setFalseNorthing(lu.toMeters(val));}
|
||||||
|
return true;
|
||||||
|
case 8813:
|
||||||
|
case 8818:
|
||||||
|
case 8823:
|
||||||
|
{AngularUnits au(units);
|
||||||
|
if (au.isNull())
|
||||||
|
return false;
|
||||||
|
setup.setStandardParallel1(au.toDegrees(val));}
|
||||||
|
return true;
|
||||||
|
case 1036:
|
||||||
|
case 8814:
|
||||||
|
case 8824:
|
||||||
|
{AngularUnits au(units);
|
||||||
|
if (au.isNull())
|
||||||
|
return false;
|
||||||
|
setup.setStandardParallel2(au.toDegrees(val));}
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
return false;
|
return false;
|
||||||
setup.setLatitudeOrigin(au.toDegrees(val));}
|
|
||||||
return true;
|
|
||||||
case 8802:
|
|
||||||
case 8812:
|
|
||||||
case 8822:
|
|
||||||
case 8833:
|
|
||||||
{AngularUnits au(units);
|
|
||||||
if (au.isNull())
|
|
||||||
return false;
|
|
||||||
setup.setLongitudeOrigin(au.toDegrees(val));}
|
|
||||||
return true;
|
|
||||||
case 8805:
|
|
||||||
case 8815:
|
|
||||||
case 8819:
|
|
||||||
setup.setScale(val);
|
|
||||||
return true;
|
|
||||||
case 8806:
|
|
||||||
case 8816:
|
|
||||||
case 8826:
|
|
||||||
{LinearUnits lu(units);
|
|
||||||
if (lu.isNull())
|
|
||||||
return false;
|
|
||||||
setup.setFalseEasting(lu.toMeters(val));}
|
|
||||||
return true;
|
|
||||||
case 8807:
|
|
||||||
case 8817:
|
|
||||||
case 8827:
|
|
||||||
{LinearUnits lu(units);
|
|
||||||
if (lu.isNull())
|
|
||||||
return false;
|
|
||||||
setup.setFalseNorthing(lu.toMeters(val));}
|
|
||||||
return true;
|
|
||||||
case 8813:
|
|
||||||
case 8818:
|
|
||||||
case 8823:
|
|
||||||
{AngularUnits au(units);
|
|
||||||
if (au.isNull())
|
|
||||||
return false;
|
|
||||||
setup.setStandardParallel1(au.toDegrees(val));}
|
|
||||||
return true;
|
|
||||||
case 1036:
|
|
||||||
case 8814:
|
|
||||||
case 8824:
|
|
||||||
{AngularUnits au(units);
|
|
||||||
if (au.isNull())
|
|
||||||
return false;
|
|
||||||
setup.setStandardParallel2(au.toDegrees(val));}
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int projectionSetup(const QByteArrayList &list, Projection::Setup &setup)
|
static int projectionSetup(const QByteArrayList &list, Conversion::Setup &setup)
|
||||||
{
|
{
|
||||||
bool r1, r2, r3;
|
bool r1, r2, r3;
|
||||||
|
|
||||||
@ -87,13 +88,36 @@ static int projectionSetup(const QByteArrayList &list, Projection::Setup &setup)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Conversion::Method::Method(int id)
|
||||||
|
{
|
||||||
|
switch (id) {
|
||||||
|
case 1024:
|
||||||
|
case 1041:
|
||||||
|
case 9801:
|
||||||
|
case 9802:
|
||||||
|
case 9804:
|
||||||
|
case 9807:
|
||||||
|
case 9809:
|
||||||
|
case 9815:
|
||||||
|
case 9818:
|
||||||
|
case 9819:
|
||||||
|
case 9820:
|
||||||
|
case 9822:
|
||||||
|
case 9829:
|
||||||
|
_id = id;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
_id = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QMap<int, Conversion::Entry> Conversion::_conversions = defaults();
|
QMap<int, Conversion::Entry> Conversion::_conversions = defaults();
|
||||||
|
|
||||||
QMap<int, Conversion::Entry> Conversion::defaults()
|
QMap<int, Conversion::Entry> Conversion::defaults()
|
||||||
{
|
{
|
||||||
QMap<int, Conversion::Entry> map;
|
QMap<int, Conversion::Entry> map;
|
||||||
map.insert(3856, Entry("Popular Visualisation Pseudo-Mercator", 1024,
|
map.insert(3856, Entry("Popular Visualisation Pseudo-Mercator", 1024,
|
||||||
Projection::Setup(), 9001, 4400));
|
Setup(), 9001, 4400));
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -159,7 +183,7 @@ bool Conversion::loadList(const QString &path)
|
|||||||
csv.line());
|
csv.line());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!Projection::Method(transform).isValid()) {
|
if (!Method(transform).isValid()) {
|
||||||
qWarning("%s:%d: Unknown coordinate transformation code",
|
qWarning("%s:%d: Unknown coordinate transformation code",
|
||||||
qPrintable(path), csv.line());
|
qPrintable(path), csv.line());
|
||||||
continue;
|
continue;
|
||||||
@ -170,7 +194,7 @@ bool Conversion::loadList(const QString &path)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Projection::Setup setup;
|
Setup setup;
|
||||||
int pn = projectionSetup(entry, setup);
|
int pn = projectionSetup(entry, setup);
|
||||||
if (pn) {
|
if (pn) {
|
||||||
qWarning("%s: %d: Invalid projection parameter #%d",
|
qWarning("%s: %d: Invalid projection parameter #%d",
|
||||||
@ -196,6 +220,21 @@ QList<KV<int, QString> > Conversion::list()
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef QT_NO_DEBUG
|
#ifndef QT_NO_DEBUG
|
||||||
|
QDebug operator<<(QDebug dbg, const Conversion::Setup &setup)
|
||||||
|
{
|
||||||
|
dbg.nospace() << "Setup(" << setup.latitudeOrigin() << ", "
|
||||||
|
<< setup.longitudeOrigin() << ", " << setup.scale() << ", "
|
||||||
|
<< setup.falseEasting() << ", " << setup.falseNorthing() << ", "
|
||||||
|
<< setup.standardParallel1() << ", " << setup.standardParallel2() << ")";
|
||||||
|
return dbg.space();
|
||||||
|
}
|
||||||
|
|
||||||
|
QDebug operator<<(QDebug dbg, const Conversion::Method &method)
|
||||||
|
{
|
||||||
|
dbg.nospace() << "Method(" << method.id() << ")";
|
||||||
|
return dbg.space();
|
||||||
|
}
|
||||||
|
|
||||||
QDebug operator<<(QDebug dbg, const Conversion &conversion)
|
QDebug operator<<(QDebug dbg, const Conversion &conversion)
|
||||||
{
|
{
|
||||||
dbg.nospace() << "Conversion(" << conversion.method() << ", "
|
dbg.nospace() << "Conversion(" << conversion.method() << ", "
|
||||||
|
@ -1,18 +1,81 @@
|
|||||||
#ifndef CONVERSION_H
|
#ifndef CONVERSION_H
|
||||||
#define CONVERSION_H
|
#define CONVERSION_H
|
||||||
|
|
||||||
#include "projection.h"
|
#include <cmath>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <common/kv.h>
|
||||||
|
#include "coordinatesystem.h"
|
||||||
|
#include "linearunits.h"
|
||||||
|
|
||||||
class Conversion {
|
class Conversion {
|
||||||
public:
|
public:
|
||||||
Conversion() {}
|
class Setup {
|
||||||
Conversion(const Projection::Method &method,
|
public:
|
||||||
const Projection::Setup &setup, const LinearUnits &units,
|
Setup() : _latitudeOrigin(NAN), _longitudeOrigin(NAN), _scale(NAN),
|
||||||
const CoordinateSystem &cs = CoordinateSystem()) : _method(method),
|
_falseEasting(NAN), _falseNorthing(NAN), _standardParallel1(NAN),
|
||||||
_setup(setup), _units(units), _cs(cs) {}
|
_standardParallel2(NAN) {}
|
||||||
|
Setup(double latitudeOrigin, double longitudeOrigin, double scale,
|
||||||
|
double falseEasting, double falseNorthing, double standardParallel1,
|
||||||
|
double standardParallel2) : _latitudeOrigin(latitudeOrigin),
|
||||||
|
_longitudeOrigin(longitudeOrigin), _scale(scale),
|
||||||
|
_falseEasting(falseEasting), _falseNorthing(falseNorthing),
|
||||||
|
_standardParallel1(standardParallel1),
|
||||||
|
_standardParallel2(standardParallel2) {}
|
||||||
|
|
||||||
const Projection::Method &method() const {return _method;}
|
double latitudeOrigin() const {return _latitudeOrigin;}
|
||||||
const Projection::Setup &setup() const {return _setup;}
|
double longitudeOrigin() const {return _longitudeOrigin;}
|
||||||
|
double scale() const {return _scale;}
|
||||||
|
double falseEasting() const {return _falseEasting;}
|
||||||
|
double falseNorthing() const {return _falseNorthing;}
|
||||||
|
double standardParallel1() const {return _standardParallel1;}
|
||||||
|
double standardParallel2() const {return _standardParallel2;}
|
||||||
|
|
||||||
|
void setLatitudeOrigin(double val) {_latitudeOrigin = val;}
|
||||||
|
void setLongitudeOrigin(double val) {_longitudeOrigin = val;}
|
||||||
|
void setScale(double val) {_scale = val;}
|
||||||
|
void setFalseEasting(double val) {_falseEasting = val;}
|
||||||
|
void setFalseNorthing(double val) {_falseNorthing = val;}
|
||||||
|
void setStandardParallel1(double val) {_standardParallel1 = val;}
|
||||||
|
void setStandardParallel2(double val) {_standardParallel2 = val;}
|
||||||
|
|
||||||
|
bool isNull() const
|
||||||
|
{
|
||||||
|
return std::isnan(_latitudeOrigin)
|
||||||
|
&& std::isnan(_longitudeOrigin) && std::isnan(_scale)
|
||||||
|
&& std::isnan(_falseEasting) && std::isnan(_falseNorthing)
|
||||||
|
&& std::isnan(_standardParallel1)
|
||||||
|
&& std::isnan(_standardParallel2);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
double _latitudeOrigin;
|
||||||
|
double _longitudeOrigin;
|
||||||
|
double _scale;
|
||||||
|
double _falseEasting;
|
||||||
|
double _falseNorthing;
|
||||||
|
double _standardParallel1;
|
||||||
|
double _standardParallel2;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Method {
|
||||||
|
public:
|
||||||
|
Method() : _id(0) {}
|
||||||
|
Method(int id);
|
||||||
|
|
||||||
|
int id() const {return _id;}
|
||||||
|
bool isNull() const {return (_id == 0);}
|
||||||
|
bool isValid() const {return !isNull();}
|
||||||
|
private:
|
||||||
|
int _id;
|
||||||
|
};
|
||||||
|
|
||||||
|
Conversion() {}
|
||||||
|
Conversion(const Method &method, const Setup &setup,
|
||||||
|
const LinearUnits &units, const CoordinateSystem &cs = CoordinateSystem())
|
||||||
|
: _method(method), _setup(setup), _units(units), _cs(cs) {}
|
||||||
|
|
||||||
|
const Method &method() const {return _method;}
|
||||||
|
const Setup &setup() const {return _setup;}
|
||||||
const LinearUnits &units() const {return _units;}
|
const LinearUnits &units() const {return _units;}
|
||||||
const CoordinateSystem &cs() const {return _cs;}
|
const CoordinateSystem &cs() const {return _cs;}
|
||||||
|
|
||||||
@ -34,30 +97,28 @@ public:
|
|||||||
private:
|
private:
|
||||||
class Entry {
|
class Entry {
|
||||||
public:
|
public:
|
||||||
Entry(const QString &name, const Projection::Method &method,
|
Entry(const QString &name, const Method &method, const Setup &setup,
|
||||||
const Projection::Setup &setup, const LinearUnits &units,
|
const LinearUnits &units, const CoordinateSystem &cs = CoordinateSystem())
|
||||||
const CoordinateSystem &cs = CoordinateSystem())
|
: _name(name), _method(method), _setup(setup), _units(units), _cs(cs) {}
|
||||||
: _name(name), _method(method), _setup(setup), _units(units),
|
|
||||||
_cs(cs) {}
|
|
||||||
|
|
||||||
const QString &name() const {return _name;}
|
const QString &name() const {return _name;}
|
||||||
const Projection::Method &method() const {return _method;}
|
const Method &method() const {return _method;}
|
||||||
const Projection::Setup &setup() const {return _setup;}
|
const Setup &setup() const {return _setup;}
|
||||||
const LinearUnits &units() const {return _units;}
|
const LinearUnits &units() const {return _units;}
|
||||||
const CoordinateSystem &cs() const {return _cs;}
|
const CoordinateSystem &cs() const {return _cs;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString _name;
|
QString _name;
|
||||||
Projection::Method _method;
|
Method _method;
|
||||||
Projection::Setup _setup;
|
Setup _setup;
|
||||||
LinearUnits _units;
|
LinearUnits _units;
|
||||||
CoordinateSystem _cs;
|
CoordinateSystem _cs;
|
||||||
};
|
};
|
||||||
|
|
||||||
static QMap<int, Entry> defaults();
|
static QMap<int, Entry> defaults();
|
||||||
|
|
||||||
Projection::Method _method;
|
Method _method;
|
||||||
Projection::Setup _setup;
|
Setup _setup;
|
||||||
LinearUnits _units;
|
LinearUnits _units;
|
||||||
CoordinateSystem _cs;
|
CoordinateSystem _cs;
|
||||||
|
|
||||||
@ -65,6 +126,8 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
#ifndef QT_NO_DEBUG
|
#ifndef QT_NO_DEBUG
|
||||||
|
QDebug operator<<(QDebug dbg, const Conversion::Setup &setup);
|
||||||
|
QDebug operator<<(QDebug dbg, const Conversion::Method &method);
|
||||||
QDebug operator<<(QDebug dbg, const Conversion &conversion);
|
QDebug operator<<(QDebug dbg, const Conversion &conversion);
|
||||||
#endif // QT_NO_DEBUG
|
#endif // QT_NO_DEBUG
|
||||||
|
|
||||||
|
@ -321,38 +321,38 @@ GCS GeoTIFF::geographicCS(QMap<quint16, Value> &kv)
|
|||||||
return gcs;
|
return gcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
Projection::Method GeoTIFF::coordinateTransformation(QMap<quint16, Value> &kv)
|
Conversion::Method GeoTIFF::coordinateTransformation(QMap<quint16, Value> &kv)
|
||||||
{
|
{
|
||||||
if (!IS_SET(kv, ProjCoordTransGeoKey)) {
|
if (!IS_SET(kv, ProjCoordTransGeoKey)) {
|
||||||
_errorString = "Missing coordinate transformation method";
|
_errorString = "Missing coordinate transformation method";
|
||||||
return Projection::Method();
|
return Conversion::Method();
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (kv.value(ProjCoordTransGeoKey).SHORT) {
|
switch (kv.value(ProjCoordTransGeoKey).SHORT) {
|
||||||
case CT_TransverseMercator:
|
case CT_TransverseMercator:
|
||||||
return Projection::Method(9807);
|
return Conversion::Method(9807);
|
||||||
case CT_ObliqueMercator:
|
case CT_ObliqueMercator:
|
||||||
return Projection::Method(9815);
|
return Conversion::Method(9815);
|
||||||
case CT_Mercator:
|
case CT_Mercator:
|
||||||
return Projection::Method(9804);
|
return Conversion::Method(9804);
|
||||||
case CT_LambertConfConic_2SP:
|
case CT_LambertConfConic_2SP:
|
||||||
return Projection::Method(9802);
|
return Conversion::Method(9802);
|
||||||
case CT_LambertConfConic_1SP:
|
case CT_LambertConfConic_1SP:
|
||||||
return Projection::Method(9801);
|
return Conversion::Method(9801);
|
||||||
case CT_LambertAzimEqualArea:
|
case CT_LambertAzimEqualArea:
|
||||||
return Projection::Method(9820);
|
return Conversion::Method(9820);
|
||||||
case CT_AlbersEqualArea:
|
case CT_AlbersEqualArea:
|
||||||
return Projection::Method(9822);
|
return Conversion::Method(9822);
|
||||||
case CT_PolarStereographic:
|
case CT_PolarStereographic:
|
||||||
return Projection::Method(9829);
|
return Conversion::Method(9829);
|
||||||
case CT_ObliqueStereographic:
|
case CT_ObliqueStereographic:
|
||||||
return Projection::Method(9809);
|
return Conversion::Method(9809);
|
||||||
case CT_Polyconic:
|
case CT_Polyconic:
|
||||||
return Projection::Method(9818);
|
return Conversion::Method(9818);
|
||||||
default:
|
default:
|
||||||
_errorString = QString("%1: unknown coordinate transformation method")
|
_errorString = QString("%1: unknown coordinate transformation method")
|
||||||
.arg(kv.value(ProjCoordTransGeoKey).SHORT);
|
.arg(kv.value(ProjCoordTransGeoKey).SHORT);
|
||||||
return Projection::Method();
|
return Conversion::Method();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -383,7 +383,7 @@ bool GeoTIFF::projectedModel(QMap<quint16, Value> &kv)
|
|||||||
GCS gcs(geographicCS(kv));
|
GCS gcs(geographicCS(kv));
|
||||||
if (gcs.isNull())
|
if (gcs.isNull())
|
||||||
return false;
|
return false;
|
||||||
Projection::Method method(coordinateTransformation(kv));
|
Conversion::Method method(coordinateTransformation(kv));
|
||||||
if (method.isNull())
|
if (method.isNull())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -452,7 +452,7 @@ bool GeoTIFF::projectedModel(QMap<quint16, Value> &kv)
|
|||||||
else
|
else
|
||||||
fe = NAN;
|
fe = NAN;
|
||||||
|
|
||||||
Projection::Setup setup(lat0, lon0, scale, fe, fn, sp1, sp2);
|
Conversion::Setup setup(lat0, lon0, scale, fe, fn, sp1, sp2);
|
||||||
_projection = Projection(PCS(gcs, Conversion(method, setup, lu)));
|
_projection = Projection(PCS(gcs, Conversion(method, setup, lu)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include <QList>
|
#include <QList>
|
||||||
#include "transform.h"
|
#include "transform.h"
|
||||||
#include "projection.h"
|
#include "projection.h"
|
||||||
|
#include "conversion.h"
|
||||||
|
|
||||||
class TIFFFile;
|
class TIFFFile;
|
||||||
class GCS;
|
class GCS;
|
||||||
@ -49,7 +50,7 @@ private:
|
|||||||
double &val) const;
|
double &val) const;
|
||||||
|
|
||||||
GCS geographicCS(QMap<quint16, Value> &kv);
|
GCS geographicCS(QMap<quint16, Value> &kv);
|
||||||
Projection::Method coordinateTransformation(QMap<quint16, Value> &kv);
|
Conversion::Method coordinateTransformation(QMap<quint16, Value> &kv);
|
||||||
bool geographicModel(QMap<quint16, Value> &kv);
|
bool geographicModel(QMap<quint16, Value> &kv);
|
||||||
bool projectedModel(QMap<quint16, Value> &kv);
|
bool projectedModel(QMap<quint16, Value> &kv);
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ static double parameter(const QString &str, bool *res, double dflt = 0.0)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int MapFile::parse(QIODevice &device, QList<CalibrationPoint> &points,
|
int MapFile::parse(QIODevice &device, QList<CalibrationPoint> &points,
|
||||||
QString &projection, Projection::Setup &setup, QString &datum)
|
QString &projection, Conversion::Setup &setup, QString &datum)
|
||||||
{
|
{
|
||||||
bool res, utm = false;
|
bool res, utm = false;
|
||||||
int ln = 1, zone = 0;
|
int ln = 1, zone = 0;
|
||||||
@ -123,7 +123,7 @@ int MapFile::parse(QIODevice &device, QList<CalibrationPoint> &points,
|
|||||||
setup = UTM::setup(zone);
|
setup = UTM::setup(zone);
|
||||||
else {
|
else {
|
||||||
bool r[8];
|
bool r[8];
|
||||||
setup = Projection::Setup(
|
setup = Conversion::Setup(
|
||||||
parameter(list[1], &r[1]), parameter(list[2], &r[2]),
|
parameter(list[1], &r[1]), parameter(list[2], &r[2]),
|
||||||
parameter(list[3], &r[3], 1.0), parameter(list[4], &r[4]),
|
parameter(list[3], &r[3], 1.0), parameter(list[4], &r[4]),
|
||||||
parameter(list[5], &r[5]), parameter(list[6], &r[6]),
|
parameter(list[5], &r[5]), parameter(list[6], &r[6]),
|
||||||
@ -143,7 +143,7 @@ int MapFile::parse(QIODevice &device, QList<CalibrationPoint> &points,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool MapFile::parseMapFile(QIODevice &device, QList<CalibrationPoint> &points,
|
bool MapFile::parseMapFile(QIODevice &device, QList<CalibrationPoint> &points,
|
||||||
QString &projection, Projection::Setup &setup, QString &datum)
|
QString &projection, Conversion::Setup &setup, QString &datum)
|
||||||
{
|
{
|
||||||
int el;
|
int el;
|
||||||
|
|
||||||
@ -161,7 +161,7 @@ bool MapFile::parseMapFile(QIODevice &device, QList<CalibrationPoint> &points,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool MapFile::createProjection(const QString &datum, const QString &name,
|
bool MapFile::createProjection(const QString &datum, const QString &name,
|
||||||
const Projection::Setup &setup)
|
const Conversion::Setup &setup)
|
||||||
{
|
{
|
||||||
PCS pcs;
|
PCS pcs;
|
||||||
|
|
||||||
@ -188,37 +188,37 @@ bool MapFile::createProjection(const QString &datum, const QString &name,
|
|||||||
else if (name == "Polyconic (American)")
|
else if (name == "Polyconic (American)")
|
||||||
pcs = PCS(gcs, Conversion(9818, setup, 9001));
|
pcs = PCS(gcs, Conversion(9818, setup, 9001));
|
||||||
else if (name == "(NZTM2) New Zealand TM 2000")
|
else if (name == "(NZTM2) New Zealand TM 2000")
|
||||||
pcs = PCS(gcs, Conversion(9807, Projection::Setup(0, 173.0, 0.9996,
|
pcs = PCS(gcs, Conversion(9807, Conversion::Setup(0, 173.0, 0.9996,
|
||||||
1600000, 10000000, NAN, NAN), 9001));
|
1600000, 10000000, NAN, NAN), 9001));
|
||||||
else if (name == "(BNG) British National Grid")
|
else if (name == "(BNG) British National Grid")
|
||||||
pcs = PCS(gcs, Conversion(9807, Projection::Setup(49, -2, 0.999601,
|
pcs = PCS(gcs, Conversion(9807, Conversion::Setup(49, -2, 0.999601,
|
||||||
400000, -100000, NAN, NAN), 9001));
|
400000, -100000, NAN, NAN), 9001));
|
||||||
else if (name == "(IG) Irish Grid")
|
else if (name == "(IG) Irish Grid")
|
||||||
pcs = PCS(gcs, Conversion(9807, Projection::Setup(53.5, -8, 1.000035,
|
pcs = PCS(gcs, Conversion(9807, Conversion::Setup(53.5, -8, 1.000035,
|
||||||
200000, 250000, NAN, NAN), 9001));
|
200000, 250000, NAN, NAN), 9001));
|
||||||
else if (name == "(SG) Swedish Grid")
|
else if (name == "(SG) Swedish Grid")
|
||||||
pcs = PCS(gcs, Conversion(9807, Projection::Setup(0, 15.808278, 1,
|
pcs = PCS(gcs, Conversion(9807, Conversion::Setup(0, 15.808278, 1,
|
||||||
1500000, 0, NAN, NAN), 9001));
|
1500000, 0, NAN, NAN), 9001));
|
||||||
else if (name == "(I) France Zone I")
|
else if (name == "(I) France Zone I")
|
||||||
pcs = PCS(gcs, Conversion(9802, Projection::Setup(49.5, 2.337229, NAN,
|
pcs = PCS(gcs, Conversion(9802, Conversion::Setup(49.5, 2.337229, NAN,
|
||||||
600000, 1200000, 48.598523, 50.395912), 9001));
|
600000, 1200000, 48.598523, 50.395912), 9001));
|
||||||
else if (name == "(II) France Zone II")
|
else if (name == "(II) France Zone II")
|
||||||
pcs = PCS(gcs, Conversion(9802, Projection::Setup(46.8, 2.337229, NAN,
|
pcs = PCS(gcs, Conversion(9802, Conversion::Setup(46.8, 2.337229, NAN,
|
||||||
600000, 2200000, 45.898919, 47.696014), 9001));
|
600000, 2200000, 45.898919, 47.696014), 9001));
|
||||||
else if (name == "(III) France Zone III")
|
else if (name == "(III) France Zone III")
|
||||||
pcs = PCS(gcs, Conversion(9802, Projection::Setup(44.1, 2.337229, NAN,
|
pcs = PCS(gcs, Conversion(9802, Conversion::Setup(44.1, 2.337229, NAN,
|
||||||
600000, 3200000, 43.199291, 44.996094), 9001));
|
600000, 3200000, 43.199291, 44.996094), 9001));
|
||||||
else if (name == "(IV) France Zone IV")
|
else if (name == "(IV) France Zone IV")
|
||||||
pcs = PCS(gcs, Conversion(9802, Projection::Setup(42.165, 2.337229, NAN,
|
pcs = PCS(gcs, Conversion(9802, Conversion::Setup(42.165, 2.337229, NAN,
|
||||||
234.358, 4185861.369, 41.560388, 42.767663), 9001));
|
234.358, 4185861.369, 41.560388, 42.767663), 9001));
|
||||||
else if (name == "(VICGRID) Victoria Australia")
|
else if (name == "(VICGRID) Victoria Australia")
|
||||||
pcs = PCS(gcs, Conversion(9802, Projection::Setup(-37, 145, NAN,
|
pcs = PCS(gcs, Conversion(9802, Conversion::Setup(-37, 145, NAN,
|
||||||
2500000, 4500000, -36, -38), 9001));
|
2500000, 4500000, -36, -38), 9001));
|
||||||
else if (name == "(VG94) VICGRID94 Victoria Australia")
|
else if (name == "(VG94) VICGRID94 Victoria Australia")
|
||||||
pcs = PCS(gcs, Conversion(9802, Projection::Setup(-37, 145, NAN,
|
pcs = PCS(gcs, Conversion(9802, Conversion::Setup(-37, 145, NAN,
|
||||||
2500000, 2500000, -36, -38), 9001));
|
2500000, 2500000, -36, -38), 9001));
|
||||||
else if (name == "(SUI) Swiss Grid")
|
else if (name == "(SUI) Swiss Grid")
|
||||||
pcs = PCS(gcs, Conversion(9815, Projection::Setup(46.570866, 7.26225,
|
pcs = PCS(gcs, Conversion(9815, Conversion::Setup(46.570866, 7.26225,
|
||||||
1.0, 600000, 200000, 90.0, 90.0), 9001));
|
1.0, 600000, 200000, 90.0, 90.0), 9001));
|
||||||
else {
|
else {
|
||||||
_errorString = QString("%1: Unknown map projection").arg(name);
|
_errorString = QString("%1: Unknown map projection").arg(name);
|
||||||
@ -250,7 +250,7 @@ MapFile::MapFile(QIODevice &file)
|
|||||||
{
|
{
|
||||||
QList<CalibrationPoint> points;
|
QList<CalibrationPoint> points;
|
||||||
QString ct, datum;
|
QString ct, datum;
|
||||||
Projection::Setup setup;
|
Conversion::Setup setup;
|
||||||
|
|
||||||
if (!parseMapFile(file, points, ct, setup, datum))
|
if (!parseMapFile(file, points, ct, setup, datum))
|
||||||
return;
|
return;
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "transform.h"
|
#include "transform.h"
|
||||||
#include "projection.h"
|
#include "projection.h"
|
||||||
|
#include "conversion.h"
|
||||||
#include "calibrationpoint.h"
|
#include "calibrationpoint.h"
|
||||||
|
|
||||||
class QIODevice;
|
class QIODevice;
|
||||||
@ -26,11 +27,11 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
int parse(QIODevice &device, QList<CalibrationPoint> &points,
|
int parse(QIODevice &device, QList<CalibrationPoint> &points,
|
||||||
QString &projection, Projection::Setup &setup, QString &datum);
|
QString &projection, Conversion::Setup &setup, QString &datum);
|
||||||
bool parseMapFile(QIODevice &device, QList<CalibrationPoint> &points,
|
bool parseMapFile(QIODevice &device, QList<CalibrationPoint> &points,
|
||||||
QString &projection, Projection::Setup &setup, QString &datum);
|
QString &projection, Conversion::Setup &setup, QString &datum);
|
||||||
bool createProjection(const QString &datum, const QString &projection,
|
bool createProjection(const QString &datum, const QString &projection,
|
||||||
const Projection::Setup &setup);
|
const Conversion::Setup &setup);
|
||||||
bool computeTransformation(const QList<CalibrationPoint> &points);
|
bool computeTransformation(const QList<CalibrationPoint> &points);
|
||||||
|
|
||||||
QString _name;
|
QString _name;
|
||||||
|
@ -75,93 +75,93 @@ static PointD corner2point(const QString &name, const QSize &size)
|
|||||||
return PointD();
|
return PointD();
|
||||||
}
|
}
|
||||||
|
|
||||||
static Projection::Setup lcc2setup(const QStringList &list)
|
static Conversion::Setup lcc2setup(const QStringList &list)
|
||||||
{
|
{
|
||||||
double params[6];
|
double params[6];
|
||||||
bool ok;
|
bool ok;
|
||||||
|
|
||||||
if (list.size() < 7)
|
if (list.size() < 7)
|
||||||
return Projection::Setup();
|
return Conversion::Setup();
|
||||||
for (int i = 1; i < 7; i++) {
|
for (int i = 1; i < 7; i++) {
|
||||||
params[i - 1] = list.at(i).toDouble(&ok);
|
params[i - 1] = list.at(i).toDouble(&ok);
|
||||||
if (!ok)
|
if (!ok)
|
||||||
return Projection::Setup();
|
return Conversion::Setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Projection::Setup(params[0], params[1], NAN, params[4],
|
return Conversion::Setup(params[0], params[1], NAN, params[4],
|
||||||
params[5], params[2], params[3]);
|
params[5], params[2], params[3]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Projection::Setup laea2setup(const QStringList &list)
|
static Conversion::Setup laea2setup(const QStringList &list)
|
||||||
{
|
{
|
||||||
double params[2];
|
double params[2];
|
||||||
bool ok;
|
bool ok;
|
||||||
|
|
||||||
if (list.size() < 3)
|
if (list.size() < 3)
|
||||||
return Projection::Setup();
|
return Conversion::Setup();
|
||||||
for (int i = 1; i < 3; i++) {
|
for (int i = 1; i < 3; i++) {
|
||||||
params[i - 1] = list.at(i).toDouble(&ok);
|
params[i - 1] = list.at(i).toDouble(&ok);
|
||||||
if (!ok)
|
if (!ok)
|
||||||
return Projection::Setup();
|
return Conversion::Setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Projection::Setup(params[1], params[0], NAN, 0, 0, NAN, NAN);
|
return Conversion::Setup(params[1], params[0], NAN, 0, 0, NAN, NAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Projection::Setup polyconic2setup(const QStringList &list)
|
static Conversion::Setup polyconic2setup(const QStringList &list)
|
||||||
{
|
{
|
||||||
double params[3];
|
double params[3];
|
||||||
bool ok;
|
bool ok;
|
||||||
|
|
||||||
if (list.size() < 4)
|
if (list.size() < 4)
|
||||||
return Projection::Setup();
|
return Conversion::Setup();
|
||||||
for (int i = 1; i < 4; i++) {
|
for (int i = 1; i < 4; i++) {
|
||||||
params[i - 1] = list.at(i).toDouble(&ok);
|
params[i - 1] = list.at(i).toDouble(&ok);
|
||||||
if (!ok)
|
if (!ok)
|
||||||
return Projection::Setup();
|
return Conversion::Setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Projection::Setup(NAN, params[0], NAN, params[1], params[2], NAN,
|
return Conversion::Setup(NAN, params[0], NAN, params[1], params[2], NAN,
|
||||||
NAN);
|
NAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Projection::Setup tm2setup(const QStringList &list)
|
static Conversion::Setup tm2setup(const QStringList &list)
|
||||||
{
|
{
|
||||||
double params[5];
|
double params[5];
|
||||||
bool ok;
|
bool ok;
|
||||||
|
|
||||||
if (list.size() < 6)
|
if (list.size() < 6)
|
||||||
return Projection::Setup();
|
return Conversion::Setup();
|
||||||
for (int i = 1; i < 6; i++) {
|
for (int i = 1; i < 6; i++) {
|
||||||
params[i - 1] = list.at(i).toDouble(&ok);
|
params[i - 1] = list.at(i).toDouble(&ok);
|
||||||
if (!ok)
|
if (!ok)
|
||||||
return Projection::Setup();
|
return Conversion::Setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Projection::Setup(params[1], params[0], params[2], params[3],
|
return Conversion::Setup(params[1], params[0], params[2], params[3],
|
||||||
params[4], NAN, NAN);
|
params[4], NAN, NAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Projection::Setup utm2setup(const QStringList &list)
|
static Conversion::Setup utm2setup(const QStringList &list)
|
||||||
{
|
{
|
||||||
bool ok;
|
bool ok;
|
||||||
if (list.size() < 2)
|
if (list.size() < 2)
|
||||||
return Projection::Setup();
|
return Conversion::Setup();
|
||||||
int zone = list.at(1).toInt(&ok);
|
int zone = list.at(1).toInt(&ok);
|
||||||
return ok ? UTM::setup(zone) : Projection::Setup();
|
return ok ? UTM::setup(zone) : Conversion::Setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
static Projection::Setup mercator2setup(const QStringList &list)
|
static Conversion::Setup mercator2setup(const QStringList &list)
|
||||||
{
|
{
|
||||||
double lon;
|
double lon;
|
||||||
bool ok;
|
bool ok;
|
||||||
|
|
||||||
if (list.size() < 2)
|
if (list.size() < 2)
|
||||||
return Projection::Setup(0, 0, NAN, 0, 0, NAN, NAN);
|
return Conversion::Setup(0, 0, NAN, 0, 0, NAN, NAN);
|
||||||
lon = list.at(1).toDouble(&ok);
|
lon = list.at(1).toDouble(&ok);
|
||||||
|
|
||||||
return ok ? Projection::Setup(0, lon, NAN, 0, 0, NAN, NAN)
|
return ok ? Conversion::Setup(0, lon, NAN, 0, 0, NAN, NAN)
|
||||||
: Projection::Setup();
|
: Conversion::Setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
static GCS createGCS(const QString &datum)
|
static GCS createGCS(const QString &datum)
|
||||||
@ -180,7 +180,7 @@ static Projection createProjection(const GCS &gcs, const QString &name)
|
|||||||
else if (pl.first() == "UTM")
|
else if (pl.first() == "UTM")
|
||||||
pcs = PCS(gcs, Conversion(9807, utm2setup(pl), 9001));
|
pcs = PCS(gcs, Conversion(9807, utm2setup(pl), 9001));
|
||||||
else if (pl.first() == "Mercator")
|
else if (pl.first() == "Mercator")
|
||||||
pcs = PCS(gcs, Conversion(1024, Projection::Setup(), 9001));
|
pcs = PCS(gcs, Conversion(1024, Conversion::Setup(), 9001));
|
||||||
else if (pl.first() == "Mercator Ellipsoidal")
|
else if (pl.first() == "Mercator Ellipsoidal")
|
||||||
pcs = PCS(gcs, Conversion(9804, mercator2setup(pl), 9001));
|
pcs = PCS(gcs, Conversion(9804, mercator2setup(pl), 9001));
|
||||||
else if (pl.first() == "Transverse Mercator")
|
else if (pl.first() == "Transverse Mercator")
|
||||||
@ -192,13 +192,13 @@ static Projection createProjection(const GCS &gcs, const QString &name)
|
|||||||
else if (pl.first() == "Polyconic (American)")
|
else if (pl.first() == "Polyconic (American)")
|
||||||
pcs = PCS(gcs, Conversion(9818, polyconic2setup(pl), 9001));
|
pcs = PCS(gcs, Conversion(9818, polyconic2setup(pl), 9001));
|
||||||
else if (pl.first() == "(IG) Irish Grid")
|
else if (pl.first() == "(IG) Irish Grid")
|
||||||
pcs = PCS(gcs, Conversion(9807, Projection::Setup(53.5, -8, 1.000035,
|
pcs = PCS(gcs, Conversion(9807, Conversion::Setup(53.5, -8, 1.000035,
|
||||||
200000, 250000, NAN, NAN), 9001));
|
200000, 250000, NAN, NAN), 9001));
|
||||||
else if (pl.first() == "(SUI) Swiss Grid")
|
else if (pl.first() == "(SUI) Swiss Grid")
|
||||||
pcs = PCS(gcs, Conversion(9815, Projection::Setup(46.570866, 7.26225,
|
pcs = PCS(gcs, Conversion(9815, Conversion::Setup(46.570866, 7.26225,
|
||||||
1.0, 600000, 200000, 90.0, 90.0), 9001));
|
1.0, 600000, 200000, 90.0, 90.0), 9001));
|
||||||
else if (pl.first() == "Rijksdriehoeksmeting")
|
else if (pl.first() == "Rijksdriehoeksmeting")
|
||||||
pcs = PCS(gcs, Conversion(9809, Projection::Setup(52.1561605555556,
|
pcs = PCS(gcs, Conversion(9809, Conversion::Setup(52.1561605555556,
|
||||||
5.38763888888889, 0.9999079, 155000, 463000, NAN, NAN), 9001));
|
5.38763888888889, 0.9999079, 155000, 463000, NAN, NAN), 9001));
|
||||||
else
|
else
|
||||||
return Projection();
|
return Projection();
|
||||||
|
@ -63,6 +63,11 @@ bool PCS::loadList(const QString &path)
|
|||||||
qWarning("%s:%d: Unknown GCS code", qPrintable(path), csv.line());
|
qWarning("%s:%d: Unknown GCS code", qPrintable(path), csv.line());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (Conversion::conversion(proj).isNull()) {
|
||||||
|
qWarning("%s:%d: Unknown projection code", qPrintable(path),
|
||||||
|
csv.line());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
_pcss.insert(id, Entry(name, gcs, proj));
|
_pcss.insert(id, Entry(name, gcs, proj));
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#include "pcs.h"
|
#include "pcs.h"
|
||||||
#include "prjfile.h"
|
#include "prjfile.h"
|
||||||
|
|
||||||
static Projection::Method projectionMethod(const QString &name)
|
static Conversion::Method projectionMethod(const QString &name)
|
||||||
{
|
{
|
||||||
static const struct {
|
static const struct {
|
||||||
int id;
|
int id;
|
||||||
@ -30,10 +30,10 @@ static Projection::Method projectionMethod(const QString &name)
|
|||||||
|
|
||||||
qWarning("%s: unknown projection", qPrintable(name));
|
qWarning("%s: unknown projection", qPrintable(name));
|
||||||
|
|
||||||
return Projection::Method();
|
return Conversion::Method();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setParameter(Projection::Setup *setup, const QString &name,
|
static void setParameter(Conversion::Setup *setup, const QString &name,
|
||||||
double val)
|
double val)
|
||||||
{
|
{
|
||||||
// latitude origin
|
// latitude origin
|
||||||
@ -460,7 +460,7 @@ void PRJFile::primeMeridian(CTX &ctx, PrimeMeridian *pm, int *epsg)
|
|||||||
*pm = PrimeMeridian(lon);
|
*pm = PrimeMeridian(lon);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PRJFile::parameter(CTX &ctx, Projection::Setup *setup)
|
void PRJFile::parameter(CTX &ctx, Conversion::Setup *setup)
|
||||||
{
|
{
|
||||||
QString name;
|
QString name;
|
||||||
|
|
||||||
@ -478,7 +478,7 @@ void PRJFile::parameter(CTX &ctx, Projection::Setup *setup)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PRJFile::projection(CTX &ctx, Projection::Method *method)
|
void PRJFile::projection(CTX &ctx, Conversion::Method *method)
|
||||||
{
|
{
|
||||||
int epsg = -1;
|
int epsg = -1;
|
||||||
QString proj;
|
QString proj;
|
||||||
@ -490,7 +490,7 @@ void PRJFile::projection(CTX &ctx, Projection::Method *method)
|
|||||||
optAuthority(ctx, &epsg);
|
optAuthority(ctx, &epsg);
|
||||||
compare(ctx, RBRK);
|
compare(ctx, RBRK);
|
||||||
|
|
||||||
*method = (epsg > 0) ? Projection::Method(epsg) : projectionMethod(proj);
|
*method = (epsg > 0) ? Conversion::Method(epsg) : projectionMethod(proj);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PRJFile::optProjectedCS2(CTX &ctx, int *epsg)
|
void PRJFile::optProjectedCS2(CTX &ctx, int *epsg)
|
||||||
@ -521,8 +521,8 @@ void PRJFile::projectedCS(CTX &ctx, PCS *pcs)
|
|||||||
int epsg = -1;
|
int epsg = -1;
|
||||||
GCS gcs;
|
GCS gcs;
|
||||||
LinearUnits lu;
|
LinearUnits lu;
|
||||||
Projection::Method method;
|
Conversion::Method method;
|
||||||
Projection::Setup setup;
|
Conversion::Setup setup;
|
||||||
|
|
||||||
compare(ctx, PROJCS);
|
compare(ctx, PROJCS);
|
||||||
compare(ctx, LBRK);
|
compare(ctx, LBRK);
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#define PRJFILE_H
|
#define PRJFILE_H
|
||||||
|
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
#include "conversion.h"
|
||||||
#include "projection.h"
|
#include "projection.h"
|
||||||
|
|
||||||
class Datum;
|
class Datum;
|
||||||
@ -57,8 +58,8 @@ private:
|
|||||||
void geographicCS(CTX &ctx, GCS *gcs);
|
void geographicCS(CTX &ctx, GCS *gcs);
|
||||||
void projectedCS(CTX &ctx, PCS *pcs);
|
void projectedCS(CTX &ctx, PCS *pcs);
|
||||||
void compdCS(CTX &ctx);
|
void compdCS(CTX &ctx);
|
||||||
void projection(CTX &ctx, Projection::Method *method);
|
void projection(CTX &ctx, Conversion::Method *method);
|
||||||
void parameter(CTX &ctx, Projection::Setup *setup);
|
void parameter(CTX &ctx, Conversion::Setup *setup);
|
||||||
void datum(CTX &ctx, Datum *dtm, int *epsg);
|
void datum(CTX &ctx, Datum *dtm, int *epsg);
|
||||||
void verticalDatum(CTX &ctx);
|
void verticalDatum(CTX &ctx);
|
||||||
void unit(CTX &ctx, double *val, int *epsg);
|
void unit(CTX &ctx, double *val, int *epsg);
|
||||||
|
@ -9,40 +9,16 @@
|
|||||||
#include "proj/obliquestereographic.h"
|
#include "proj/obliquestereographic.h"
|
||||||
#include "proj/polyconic.h"
|
#include "proj/polyconic.h"
|
||||||
#include "datum.h"
|
#include "datum.h"
|
||||||
#include "gcs.h"
|
|
||||||
#include "pcs.h"
|
#include "pcs.h"
|
||||||
#include "projection.h"
|
#include "projection.h"
|
||||||
|
|
||||||
|
|
||||||
Projection::Method::Method(int id)
|
|
||||||
{
|
|
||||||
switch (id) {
|
|
||||||
case 1024:
|
|
||||||
case 1041:
|
|
||||||
case 9801:
|
|
||||||
case 9802:
|
|
||||||
case 9804:
|
|
||||||
case 9807:
|
|
||||||
case 9809:
|
|
||||||
case 9815:
|
|
||||||
case 9818:
|
|
||||||
case 9819:
|
|
||||||
case 9820:
|
|
||||||
case 9822:
|
|
||||||
case 9829:
|
|
||||||
_id = id;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
_id = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Projection::Projection(const PCS &pcs)
|
Projection::Projection(const PCS &pcs)
|
||||||
: _gcs(pcs.gcs()), _ct(0), _units(pcs.conversion().units()),
|
: _gcs(pcs.gcs()), _ct(0), _units(pcs.conversion().units()),
|
||||||
_cs(pcs.conversion().cs())
|
_cs(pcs.conversion().cs())
|
||||||
{
|
{
|
||||||
const Ellipsoid &ellipsoid = _gcs.datum().ellipsoid();
|
const Ellipsoid &ellipsoid = _gcs.datum().ellipsoid();
|
||||||
const Projection::Setup &setup = pcs.conversion().setup();
|
const Conversion::Setup &setup = pcs.conversion().setup();
|
||||||
|
|
||||||
switch (pcs.conversion().method().id()) {
|
switch (pcs.conversion().method().id()) {
|
||||||
case 1024:
|
case 1024:
|
||||||
@ -154,32 +130,3 @@ bool Projection::operator==(const Projection &p) const
|
|||||||
return (*_ct == *p._ct && _gcs == p._gcs && _units == p._units
|
return (*_ct == *p._ct && _gcs == p._gcs && _units == p._units
|
||||||
&& _cs == p._cs);
|
&& _cs == p._cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
PointD Projection::ll2xy(const Coordinates &c) const
|
|
||||||
{
|
|
||||||
Q_ASSERT(isValid());
|
|
||||||
return _units.fromMeters(_ct->ll2xy(_gcs.fromWGS84(c)));
|
|
||||||
}
|
|
||||||
|
|
||||||
Coordinates Projection::xy2ll(const PointD &p) const
|
|
||||||
{
|
|
||||||
Q_ASSERT(isValid());
|
|
||||||
return _gcs.toWGS84(_ct->xy2ll(_units.toMeters(p)));
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef QT_NO_DEBUG
|
|
||||||
QDebug operator<<(QDebug dbg, const Projection::Setup &setup)
|
|
||||||
{
|
|
||||||
dbg.nospace() << "Setup(" << setup.latitudeOrigin() << ", "
|
|
||||||
<< setup.longitudeOrigin() << ", " << setup.scale() << ", "
|
|
||||||
<< setup.falseEasting() << ", " << setup.falseNorthing() << ", "
|
|
||||||
<< setup.standardParallel1() << ", " << setup.standardParallel2() << ")";
|
|
||||||
return dbg.space();
|
|
||||||
}
|
|
||||||
|
|
||||||
QDebug operator<<(QDebug dbg, const Projection::Method &method)
|
|
||||||
{
|
|
||||||
dbg.nospace() << "Method(" << method.id() << ")";
|
|
||||||
return dbg.space();
|
|
||||||
}
|
|
||||||
#endif // QT_NO_DEBUG
|
|
||||||
|
@ -1,76 +1,19 @@
|
|||||||
#ifndef PROJECTION_H
|
#ifndef PROJECTION_H
|
||||||
#define PROJECTION_H
|
#define PROJECTION_H
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QtGlobal>
|
||||||
#include "common/coordinates.h"
|
#include "common/coordinates.h"
|
||||||
#include "pointd.h"
|
#include "pointd.h"
|
||||||
#include "linearunits.h"
|
#include "linearunits.h"
|
||||||
#include "coordinatesystem.h"
|
#include "coordinatesystem.h"
|
||||||
#include "gcs.h"
|
#include "gcs.h"
|
||||||
|
#include "ct.h"
|
||||||
#include "proj/latlon.h"
|
#include "proj/latlon.h"
|
||||||
|
|
||||||
class PCS;
|
class PCS;
|
||||||
class CT;
|
|
||||||
class AngularUnits;
|
|
||||||
|
|
||||||
class Projection {
|
class Projection {
|
||||||
public:
|
public:
|
||||||
class Setup {
|
|
||||||
public:
|
|
||||||
Setup() : _latitudeOrigin(NAN), _longitudeOrigin(NAN), _scale(NAN),
|
|
||||||
_falseEasting(NAN), _falseNorthing(NAN), _standardParallel1(NAN),
|
|
||||||
_standardParallel2(NAN) {}
|
|
||||||
Setup(double latitudeOrigin, double longitudeOrigin, double scale,
|
|
||||||
double falseEasting, double falseNorthing, double standardParallel1,
|
|
||||||
double standardParallel2) : _latitudeOrigin(latitudeOrigin),
|
|
||||||
_longitudeOrigin(longitudeOrigin), _scale(scale),
|
|
||||||
_falseEasting(falseEasting), _falseNorthing(falseNorthing),
|
|
||||||
_standardParallel1(standardParallel1),
|
|
||||||
_standardParallel2(standardParallel2) {}
|
|
||||||
|
|
||||||
double latitudeOrigin() const {return _latitudeOrigin;}
|
|
||||||
double longitudeOrigin() const {return _longitudeOrigin;}
|
|
||||||
double scale() const {return _scale;}
|
|
||||||
double falseEasting() const {return _falseEasting;}
|
|
||||||
double falseNorthing() const {return _falseNorthing;}
|
|
||||||
double standardParallel1() const {return _standardParallel1;}
|
|
||||||
double standardParallel2() const {return _standardParallel2;}
|
|
||||||
|
|
||||||
void setLatitudeOrigin(double val) {_latitudeOrigin = val;}
|
|
||||||
void setLongitudeOrigin(double val) {_longitudeOrigin = val;}
|
|
||||||
void setScale(double val) {_scale = val;}
|
|
||||||
void setFalseEasting(double val) {_falseEasting = val;}
|
|
||||||
void setFalseNorthing(double val) {_falseNorthing = val;}
|
|
||||||
void setStandardParallel1(double val) {_standardParallel1 = val;}
|
|
||||||
void setStandardParallel2(double val) {_standardParallel2 = val;}
|
|
||||||
|
|
||||||
bool isNull() const {return std::isnan(_latitudeOrigin)
|
|
||||||
&& std::isnan(_longitudeOrigin) && std::isnan(_scale)
|
|
||||||
&& std::isnan(_falseEasting) && std::isnan(_falseNorthing)
|
|
||||||
&& std::isnan(_standardParallel1) && std::isnan(_standardParallel2);}
|
|
||||||
|
|
||||||
private:
|
|
||||||
double _latitudeOrigin;
|
|
||||||
double _longitudeOrigin;
|
|
||||||
double _scale;
|
|
||||||
double _falseEasting;
|
|
||||||
double _falseNorthing;
|
|
||||||
double _standardParallel1;
|
|
||||||
double _standardParallel2;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Method {
|
|
||||||
public:
|
|
||||||
Method() : _id(0) {}
|
|
||||||
Method(int id);
|
|
||||||
|
|
||||||
int id() const {return _id;}
|
|
||||||
bool isNull() const {return (_id == 0);}
|
|
||||||
bool isValid() const {return !isNull();}
|
|
||||||
private:
|
|
||||||
int _id;
|
|
||||||
};
|
|
||||||
|
|
||||||
Projection() : _ct(0) {}
|
Projection() : _ct(0) {}
|
||||||
Projection(const Projection &p);
|
Projection(const Projection &p);
|
||||||
Projection(const PCS &pcs);
|
Projection(const PCS &pcs);
|
||||||
@ -87,8 +30,8 @@ public:
|
|||||||
}
|
}
|
||||||
bool isValid() const
|
bool isValid() const
|
||||||
{
|
{
|
||||||
// We do not check the CoordinateSystem here as it is not always defined
|
/* We do not check the CoordinateSystem here as it is not always defined
|
||||||
// and except of WMTS/WMS it is not needed.
|
and except of WMTS/WMS it is not needed. */
|
||||||
return (_gcs.isValid() && _ct != 0 && _units.isValid());
|
return (_gcs.isValid() && _ct != 0 && _units.isValid());
|
||||||
}
|
}
|
||||||
bool isGeographic() const
|
bool isGeographic() const
|
||||||
@ -96,8 +39,16 @@ public:
|
|||||||
return (dynamic_cast<const LatLon*>(_ct) != 0);
|
return (dynamic_cast<const LatLon*>(_ct) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
PointD ll2xy(const Coordinates &c) const;
|
PointD ll2xy(const Coordinates &c) const
|
||||||
Coordinates xy2ll(const PointD &p) const;
|
{
|
||||||
|
Q_ASSERT(isValid());
|
||||||
|
return _units.fromMeters(_ct->ll2xy(_gcs.fromWGS84(c)));
|
||||||
|
}
|
||||||
|
Coordinates xy2ll(const PointD &p) const
|
||||||
|
{
|
||||||
|
Q_ASSERT(isValid());
|
||||||
|
return _gcs.toWGS84(_ct->xy2ll(_units.toMeters(p)));
|
||||||
|
}
|
||||||
|
|
||||||
const LinearUnits &units() const {return _units;}
|
const LinearUnits &units() const {return _units;}
|
||||||
const CoordinateSystem &coordinateSystem() const {return _cs;}
|
const CoordinateSystem &coordinateSystem() const {return _cs;}
|
||||||
@ -109,9 +60,4 @@ private:
|
|||||||
CoordinateSystem _cs;
|
CoordinateSystem _cs;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef QT_NO_DEBUG
|
|
||||||
QDebug operator<<(QDebug dbg, const Projection::Setup &setup);
|
|
||||||
QDebug operator<<(QDebug dbg, const Projection::Method &method);
|
|
||||||
#endif // QT_NO_DEBUG
|
|
||||||
|
|
||||||
#endif // PROJECTION_H
|
#endif // PROJECTION_H
|
||||||
|
@ -58,37 +58,37 @@ static Projection parseProjection(const QString &str, const GCS &gcs)
|
|||||||
case 1: // LatLon
|
case 1: // LatLon
|
||||||
return Projection(gcs);
|
return Projection(gcs);
|
||||||
case 2: // Mercator
|
case 2: // Mercator
|
||||||
return Projection(PCS(gcs, Conversion(1024, Projection::Setup(),
|
return Projection(PCS(gcs, Conversion(1024, Conversion::Setup(),
|
||||||
9001)));
|
9001)));
|
||||||
case 3: // Transversal Mercator
|
case 3: // Transversal Mercator
|
||||||
if (fields.size() < 7)
|
if (fields.size() < 7)
|
||||||
return Projection();
|
return Projection();
|
||||||
return Projection(PCS(gcs, Conversion(9807, Projection::Setup(
|
return Projection(PCS(gcs, Conversion(9807, Conversion::Setup(
|
||||||
fields.at(3).toDouble(), fields.at(2).toDouble(),
|
fields.at(3).toDouble(), fields.at(2).toDouble(),
|
||||||
fields.at(6).toDouble(), fields.at(5).toDouble(),
|
fields.at(6).toDouble(), fields.at(5).toDouble(),
|
||||||
fields.at(4).toDouble(), NAN, NAN), 9001)));
|
fields.at(4).toDouble(), NAN, NAN), 9001)));
|
||||||
case 4: // Lambert 2SP
|
case 4: // Lambert 2SP
|
||||||
if (fields.size() < 8)
|
if (fields.size() < 8)
|
||||||
return Projection();
|
return Projection();
|
||||||
return Projection(PCS(gcs, Conversion(9802, Projection::Setup(
|
return Projection(PCS(gcs, Conversion(9802, Conversion::Setup(
|
||||||
fields.at(4).toDouble(), fields.at(5).toDouble(), NAN,
|
fields.at(4).toDouble(), fields.at(5).toDouble(), NAN,
|
||||||
fields.at(6).toDouble(), fields.at(7).toDouble(),
|
fields.at(6).toDouble(), fields.at(7).toDouble(),
|
||||||
fields.at(3).toDouble(), fields.at(2).toDouble()), 9001)));
|
fields.at(3).toDouble(), fields.at(2).toDouble()), 9001)));
|
||||||
case 6: // BGN (British National Grid)
|
case 6: // BGN (British National Grid)
|
||||||
return Projection(PCS(gcs, Conversion(9807, Projection::Setup(49,
|
return Projection(PCS(gcs, Conversion(9807, Conversion::Setup(49,
|
||||||
-2, 0.999601, 400000, -100000, NAN, NAN), 9001)));
|
-2, 0.999601, 400000, -100000, NAN, NAN), 9001)));
|
||||||
case 12: // France Lambert II etendu
|
case 12: // France Lambert II etendu
|
||||||
return Projection(PCS(gcs, Conversion(9801, Projection::Setup(52, 0,
|
return Projection(PCS(gcs, Conversion(9801, Conversion::Setup(52, 0,
|
||||||
0.99987742, 600000, 2200000, NAN, NAN), 9001)));
|
0.99987742, 600000, 2200000, NAN, NAN), 9001)));
|
||||||
case 14: // Swiss Grid
|
case 14: // Swiss Grid
|
||||||
return Projection(PCS(gcs, Conversion(9815, Projection::Setup(
|
return Projection(PCS(gcs, Conversion(9815, Conversion::Setup(
|
||||||
46.570866, 7.26225, 1.0, 600000, 200000, 90.0, 90.0), 9001)));
|
46.570866, 7.26225, 1.0, 600000, 200000, 90.0, 90.0), 9001)));
|
||||||
case 108: // Dutch RD grid
|
case 108: // Dutch RD grid
|
||||||
return Projection(PCS(gcs, Conversion(9809, Projection::Setup(
|
return Projection(PCS(gcs, Conversion(9809, Conversion::Setup(
|
||||||
52.15616055555555, 5.38763888888889, 0.9999079, 155000, 463000,
|
52.15616055555555, 5.38763888888889, 0.9999079, 155000, 463000,
|
||||||
NAN, NAN), 9001)));
|
NAN, NAN), 9001)));
|
||||||
case 184: // Swedish Grid
|
case 184: // Swedish Grid
|
||||||
return Projection(PCS(gcs, Conversion(9807, Projection::Setup(0,
|
return Projection(PCS(gcs, Conversion(9807, Conversion::Setup(0,
|
||||||
15.808278, 1, 1500000, 0, NAN, NAN), 9001)));
|
15.808278, 1, 1500000, 0, NAN, NAN), 9001)));
|
||||||
default:
|
default:
|
||||||
return Projection();
|
return Projection();
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
|
#include "common/coordinates.h"
|
||||||
#include "ellipsoid.h"
|
#include "ellipsoid.h"
|
||||||
#include "utm.h"
|
#include "utm.h"
|
||||||
|
|
||||||
Projection::Setup UTM::setup(int zone)
|
Conversion::Setup UTM::setup(int zone)
|
||||||
{
|
{
|
||||||
return Projection::Setup(0, (qAbs(zone) - 1)*6 - 180 + 3, 0.9996, 500000,
|
return Conversion::Setup(0, (qAbs(zone) - 1)*6 - 180 + 3, 0.9996, 500000,
|
||||||
zone < 0 ? 10000000 : 0, 0, 0);
|
zone < 0 ? 10000000 : 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
#ifndef UTM_H
|
#ifndef UTM_H
|
||||||
#define UTM_H
|
#define UTM_H
|
||||||
|
|
||||||
#include "projection.h"
|
#include "conversion.h"
|
||||||
|
|
||||||
|
class Coordinates;
|
||||||
|
|
||||||
namespace UTM
|
namespace UTM
|
||||||
{
|
{
|
||||||
int zone(const Coordinates &c);
|
int zone(const Coordinates &c);
|
||||||
Projection::Setup setup(int zone);
|
Conversion::Setup setup(int zone);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // UTM_H
|
#endif // UTM_H
|
||||||
|
Loading…
Reference in New Issue
Block a user