Хочу получить полный путь к тайлу по указанному [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) или что то другое что мне следует знать, исправить?
Помогите решить эту проблему пожалуйста.