Привязка тайлов Яндекс карт к координатам
- Старик
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 13 фев 2010, 16:11
- Репутация: 0
- Контактная информация:
Привязка тайлов Яндекс карт к координатам
Здравтвуйте уважаемые геодезисты.
Мне понадобилась карта местности.Для водного туризма. На бумаге.
Скачал тайлы с яндекс карт склеил распечатал, все очень здорово.
Единствено что хотелось нарисовать координатную сетку. Долготу нашел без проблем
размер общей карты известен 256*(2^z) пикселов где z - увеличение.
Делю на 360 градусов получаю количество пикселов на градус. Гринвич по серидине. Верхний левый угол моей карты тоже знаю.Все остальное труда не составило.
А вот с широтой начались проблемы.
Гуглавская формула есть, но она не подходит.Там кажется думают что земля имеет форму шара.
Помогите кто знает. Так как в школе был двоишником хорошо бы с формулой какой нибудь примерчик.
Плиз.
п.с. Убедительная просьба не предлагайте готовые программы или решения. Я хочу только формулу.
Мне понадобилась карта местности.Для водного туризма. На бумаге.
Скачал тайлы с яндекс карт склеил распечатал, все очень здорово.
Единствено что хотелось нарисовать координатную сетку. Долготу нашел без проблем
размер общей карты известен 256*(2^z) пикселов где z - увеличение.
Делю на 360 градусов получаю количество пикселов на градус. Гринвич по серидине. Верхний левый угол моей карты тоже знаю.Все остальное труда не составило.
А вот с широтой начались проблемы.
Гуглавская формула есть, но она не подходит.Там кажется думают что земля имеет форму шара.
Помогите кто знает. Так как в школе был двоишником хорошо бы с формулой какой нибудь примерчик.
Плиз.
п.с. Убедительная просьба не предлагайте готовые программы или решения. Я хочу только формулу.
Последний раз редактировалось Старик 16 фев 2010, 23:27, всего редактировалось 2 раза.
- Komяpa
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 13 сен 2009, 11:24
- Репутация: 0
- Откуда: Minsk
- Контактная информация:
Re: Кто может привязать координаты в Яндекс картах.помогите.
Если немножко погуглить, можно найти такую формулу в maemo-mapper-shmuma (приведена на питоне):
Ну и вообще, см.
http://code.google.com/p/twms/source/br ... dex.py#364
Код: Выделить всё
M_PI_4 = 0.78539816339744830962
YANDEX_Rn = 6378137.0
YANDEX_E = 0.0818191908426
YANDEX_A = 20037508.342789
YANDEX_F = 53.5865938
YANDEX_AB = 0.00335655146887969400
YANDEX_BB = 0.00000657187271079536
YANDEX_CB = 0.00000001764564338702
YANDEX_DB = 0.00000000005328478445
tmp=math.tan(M_PI_4+(lat*math.pi/180.)/2.0);
pow_tmp = math.pow(math.tan(M_PI_4+math.asin(YANDEX_E*math.sin(lat*math.pi/180.))/2.0),YANDEX_E);
x = (YANDEX_Rn*(lon*math.pi/180.) + YANDEX_A) * YANDEX_F;
y = (YANDEX_A - (YANDEX_Rn * math.log (tmp / pow_tmp))) * YANDEX_F;
http://code.google.com/p/twms/source/br ... dex.py#364
Последний раз редактировалось Komяpa 13 фев 2010, 22:35, всего редактировалось 1 раз.
- Старик
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 13 фев 2010, 16:11
- Репутация: 0
- Контактная информация:
Re: Кто может привязать координаты в Яндекс картах.помогите.
Здарова Котяра
Спасибо за беспокойство но в формуле чтото не так
вобще не используются
YANDEX_AB = 0.00335655146887969400
YANDEX_BB = 0.00000657187271079536
YANDEX_CB = 0.00000001764564338702
YANDEX_DB = 0.00000000005328478445
и отсутсвует увеличение, то есть общий размер карты в пикселах.
Спасибо за беспокойство но в формуле чтото не так
вобще не используются
YANDEX_AB = 0.00335655146887969400
YANDEX_BB = 0.00000657187271079536
YANDEX_CB = 0.00000001764564338702
YANDEX_DB = 0.00000000005328478445
и отсутсвует увеличение, то есть общий размер карты в пикселах.
-
- Активный участник
- Сообщения: 178
- Зарегистрирован: 16 июл 2008, 09:56
- Репутация: 1
- Откуда: Москва
Re: Кто может привязать координаты в Яндекс картах.помогите.
Внутри JS файла яндексового API есть функции преобразования.
-
- Гуру
- Сообщения: 977
- Зарегистрирован: 27 янв 2009, 22:57
- Репутация: 258
- Старик
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 13 фев 2010, 16:11
- Репутация: 0
- Контактная информация:
Re: Кто может привязать координаты в Яндекс картах.помогите.
Выражаю особую благодарнрость bim2010 -му
Сылки очень помогли, все заработало
Блин как мало оказывается нужно для счастья.
Всем кто принял учатие большое спасибо. я пошел радоваться.
Сылки очень помогли, все заработало

Блин как мало оказывается нужно для счастья.
Всем кто принял учатие большое спасибо. я пошел радоваться.
- Старик
- Новоприбывший
- Сообщения: 11
- Зарегистрирован: 13 фев 2010, 16:11
- Репутация: 0
- Контактная информация:
Re: Кто может привязать координаты в Яндекс картах.помогите.
Пора возвращать долги
Я пишу на C# от майкрософта
Сравнивал с API яндекс карт полностью совпадает.
правда переводил X,Y в Lat Lon а потом обратно
Х совпал полность
а в Y расхождение на 1 пиксел на любом увеличении. На глаз все равно не видно.
Так что пользуйтесь.
Я пишу на C# от майкрософта
Сравнивал с API яндекс карт полностью совпадает.
правда переводил X,Y в Lat Lon а потом обратно
Х совпал полность
а в Y расхождение на 1 пиксел на любом увеличении. На глаз все равно не видно.
Так что пользуйтесь.

Код: Выделить всё
class wgs84
{ // C# клас для конвертации яндекс карт в координаты и обратно
// координаты в формате DD.DDDDD
// положение на карте x,y в пикселах от верхнего левого угла на глобальной карте
// то есть чтобы вычислить координаты в конкретном тайле нужно знать его смещение на глобальной карте
// z - zoom увеличение
static public double YtoLat(long y, int z) //перевод пиксела ось Y в широту Lat
{
double a = 6378137.0;
double c1 = 0.00335655146887969;
double c2 = 0.00000657187271079536;
double c3 = 0.00000001764564338702;
double c4 = 0.00000000005328478445;
double mercY = 20037508.342789 - (y * Math.Pow(2,23 - z)) / 53.5865938;
double g = Math.PI / 2 - 2 * Math.Atan(1 / Math.Exp(mercY / a));
double zz = g + c1 * Math.Sin(2 * g) + c2 * Math.Sin(4 * g) + c3 * Math.Sin(6 * g) + c4 * Math.Sin(8 * g);
return (zz * 180 / Math.PI);
}
static public long LatToY(double lat, int z) // перевод широты Lat в координаты пиксела ось Y
{
double rLat = lat * Math.PI / 180;
double a = 6378137.0;
double k = 0.0818191908426;
double zz = Math.Tan(Math.PI / 4 + rLat / 2) / Math.Pow((Math.Tan(Math.PI / 4 + Math.Asin(k * Math.Sin(rLat)) / 2)), k);
double y = (20037508.342789 - a * Math.Log(zz)) * 53.5865938 / Math.Pow( 2 ,23 - z);
return ((long)y );
}
static public double XtoLon(long x, int z) //перевод пиксела ось X в долготу Lon
{
double lon = 360.0 * (double)x / (double)(256 * Math.Pow(2, z)) - 180.0;
if (lon > 180) lon -= 360;//вычисление долготы по пикселу
return (lon);
}
static public long LonToX(double lon, int z) // перевод долготы Lon в координаты пиксела ось X
{
double l = (lon + 180.0)/360.0*(256 * Math.Pow(2, z));
return((long)l);
}
}
-
- Новоприбывший
- Сообщения: 4
- Зарегистрирован: 04 авг 2010, 13:57
- Репутация: 0
Re: Привязка тайлов Яндекс карт к координатам
Старик -СПАСБО!!!!
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 14 окт 2010, 13:08
- Репутация: 0
Re: Привязка тайлов Яндекс карт к координатам
Мужики, подскажите, плиз:
- константа 53.5865938 - она откуда взялась (как её получили)?
- Я правильно понял, что это - масштабный множитель 53.58.../2^23-z ? Из-за того, что не понимаю откуда взялась константа, не ясно, почему множитель такой
- Откуда взялось ограничение на максимальный масштаб = 23? Яндекс тоже о нем пишет (что мол макс 23, но реально - 17).
- Почему в знаменателе масштабного множителя 2 в степени не z, а 23-z ? (тут похоже я прсото туплю, но не въезжаю).
- Это преобразование как соотноситься с тем, что на http://ru.wikipedia.org/wiki/%D0%9F%D1% ... 1%80%D0%B0 ? Там неизвестная мне функция ath, о которой я ничего найти не смог.
Подскажите?
- константа 53.5865938 - она откуда взялась (как её получили)?
- Я правильно понял, что это - масштабный множитель 53.58.../2^23-z ? Из-за того, что не понимаю откуда взялась константа, не ясно, почему множитель такой
- Откуда взялось ограничение на максимальный масштаб = 23? Яндекс тоже о нем пишет (что мол макс 23, но реально - 17).
- Почему в знаменателе масштабного множителя 2 в степени не z, а 23-z ? (тут похоже я прсото туплю, но не въезжаю).
- Это преобразование как соотноситься с тем, что на http://ru.wikipedia.org/wiki/%D0%9F%D1% ... 1%80%D0%B0 ? Там неизвестная мне функция ath, о которой я ничего найти не смог.
Подскажите?
- Mavka
- Гуру
- Сообщения: 2060
- Зарегистрирован: 14 мар 2008, 17:36
- Репутация: 9
Re: Привязка тайлов Яндекс карт к координатам
ath - гиперболический арктангенс
лангольеры под окном жрали время ом-ном-ном
-
- Новоприбывший
- Сообщения: 2
- Зарегистрирован: 14 окт 2010, 13:08
- Репутация: 0
Re: Привязка тайлов Яндекс карт к координатам
Блин, h заставил подозревать, что оно гиперболическое...но на arcth показалось непохоже.
Спасибо большое.
Спасибо большое.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей