Ariki писал(а):Два раза присваиваете разные значения longitude, вот что.
Да, я переводил с Java в математический вид и просто ошибся.
Вот мой исходный код:
Код: Выделить всё
//координаты в полярной системе
double lat = 47;
double lon = 37;
//переводим в радианы
double lat_radian = Math.toRadians(lat);
double lon_radian = Math.toRadians(lon);
final double r = 6371.; // Радиус Земли
//получаем декартовы координаты
double x = r * cos(lat_radian) * cos(lon_radian);
double y = r * cos(lat_radian) * sin(lon_radian);
double z = r * sin(lat_radian);
Перевод в радианы верный. Проверял.
Ariki писал(а):
Только если пишете "возвращает неверный результат", пожалуйста, указывайте, что именно возвращает и что, по вашему мнению, является верным результатом.
Вот тут получаю заведомо верный результат преобразования:
http://keisan.casio.com/exec/system/1223527679
LatLng(47,37) возвращает в декартовых:
x=37.5359
y=28.2853
Тот-же результат выдает и на другом web-ресурсе.
У меня же по формуле получается:
x=3437.3313957
y=2642.7014421
P.S. Читал документацию, что дал trip. Различий в формулах не нашел.