Если вы посмотрите на первые 2 строки данных и вычтите широту
47.7044 - 47.7741 = -0.06972 degrees
Есть 60 морских миль на градус широты и 6076 футов на морскую милю.
-.06972 * 60 * 6076 = 25,415 ft
Вычитание двух значений Y:
260662 - 286031 = 25,409 ft
Так что это действительно доказывает, что значения X и Y указаны в футах.
Если вы берете любое из значений Y и конвертируете обратно в градусы, например
260622 ft / ( 6076 ft/nm ) / ( 60 nm/degree ) = .71
286031 ft / 6076 / 60 = .78
Таким образом, вычитая эти значения из широт (47,70 и 47,77), вы получите очень близко к точному 47 градусам, что должно быть вашей точкой y = 0.
Для долготы градус составляет 60 морских миль на экваторе и 0 миль на полюсах. Таким образом, число миль на градус должно быть умножено на косинус широты, то есть приблизительно cos (47 градусов) или 0,68. Таким образом, вместо 6076 нм на градус, это около 4145 нм.
Так что для значений X,
1268314 ft / ( 4145 ft/nm ) / ( 60 nm/degree ) = 5.10 degrees
1269649 ft / 4145 / 60 = 5.10 degrees
Эти числа X увеличиваются с увеличением широты (менее отрицательно), поэтому я считаю, что вы должны добавить 5,1 градуса, что означает, что базовая точка X составляет примерно
-122.3 + 5.1 = 117.2 West longitude for your x=0 point.
Это примерно позиция Спокана В.А.
Итак, учитывая X = 1280532, Y = 211374
Lat = 47 + ( 211374 / 6096 / 60 ) = 47.58
Lon = -117.2 - ( 1280532 / ( 6096 * cos(47.58)) / 60 ) = -122.35
Что примерно соответствует приведенным данным 47,57 и -122,29
Дисперсия может быть связана с разными проекциями - система X, Y может быть «сплющенной» проекцией, в отличие от широты / долготы, которые применяются к сферической проекции? Поэтому, чтобы быть точным, вам может понадобиться более сложная математика или библиотека с открытым исходным кодом:)
Этот вопрос также может быть полезен, он содержит код для расчета расстояний большого круга:
Рассчитать расстояние между двумя точками широты и долготы? (Формула Haversine)