Координаты под указателем мышки

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Координаты под указателем мышки

Сообщение Dopect » 01 фев 2018, 20:14

Добрый день

Хочу получить полный путь к тайлу по указанному [lon, lat], но все опробованные методы дают либо близкий
результат либо очень далекий от желаемого(Эллиптик Меркатор):

Правильный : C:\Users\...\Desktop\SAS.Planet.Release.160707\cache\map\z19\173\x177383\97\y100095.png
Получается : C:\Users\...\Desktop\SAS.Planet.Release.160707\cache\map\z19\173\x177206\97\y100134.png

Иначе говоря не получается осуществить [lon, lat] => [х, y, z]. Опробовал разные формулы, все дают одинаковый результат.
В кеше Google Карта EPSG=3785. Сама программа разумеется затруднений с этим не имеет, показыевает "правильные" [x,y] при включении "Отоброжать границы изображений".

Использовал формулу(с входными N39°05'46,36" и E63°35'58,34" координаты метки):
Код: Выделить всё
int scale = 1 << zoom;
double siny = Math.Sin(latLon.Y * Math.PI / 180);

siny = Math.Min(Math.Max(siny, -0.9999), 0.9999);

Point worldCoordinate = new Point(256 * (0.5 + latLon.X / 360),
                256 * (0.5 - Math.Log((1 + siny) / (1 - siny)) / (4 * Math.PI)));

Tile tileCoordinate = new Tile( (int)Math.Floor(worldCoordinate.X * scale / 256),
                (int)Math.Floor(worldCoordinate.Y * scale / 256));

return tileCoordinate;


Может программа выполняет некие другие операции отсутствующие здесь?
Может есть некий "сдвиг" в окне самой программы(MapControl) или что то другое что мне следует знать, исправить?
Помогите решить эту проблему пожалуйста.
Dopect
Новичок
 
Сообщения: 5
Зарегистрирован: 01 фев 2018, 19:35
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron