Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 16.04.2010, 15:53
Аспирант
Отправить личное сообщение для Leax Посмотреть профиль Найти все сообщения от Leax
 
Регистрация: 03.06.2009
Сообщений: 67

Jurasmi,
широта и долгота- только одни бывают, можете не сомневаться )
Ответить с цитированием
  #12 (permalink)  
Старый 19.04.2010, 10:01
Кандидат Javascript-наук
Отправить личное сообщение для Jurasmi Посмотреть профиль Найти все сообщения от Jurasmi
 
Регистрация: 25.11.2008
Сообщений: 115

Охотно верю )
Ответить с цитированием
  #13 (permalink)  
Старый 19.04.2010, 11:14
Аспирант
Отправить личное сообщение для Leax Посмотреть профиль Найти все сообщения от Leax
 
Регистрация: 03.06.2009
Сообщений: 67

Jurasmi,
так получилось сделать по указанной мной ссылке? Там же формулы пересчета были, вроде
Ответить с цитированием
  #14 (permalink)  
Старый 22.04.2010, 10:57
Кандидат Javascript-наук
Отправить личное сообщение для Jurasmi Посмотреть профиль Найти все сообщения от Jurasmi
 
Регистрация: 25.11.2008
Сообщений: 115

Пока сделал перевод географических координат для "Московских объектов" - в рамках города. Формулы по вашей ссылки пока не использовал.
Ответить с цитированием
  #15 (permalink)  
Старый 28.04.2010, 16:23
Новичок на форуме
Отправить личное сообщение для valikb Посмотреть профиль Найти все сообщения от valikb
 
Регистрация: 28.04.2010
Сообщений: 4

У меня та же проблема. Нужно города по миру расставить. По формулам, о которых шла речь в этом обсуждении, не ясно что за переменные ro, a, e2, da _, de2/2 _ и т.д.
Короче, формулы вроде:
dB = ro / (M + H) * (N / a * e2 * Sin(B) * Cos(B) * da _ + (N ^ 2 / a ^ 2 + 1) * N * Sin(B) * Cos(B) * de2 / 2 _ - (dx * Cos(L) + dy * Sin(L)) * Sin(B) + dz * Cos(B)) _ - wx * Sin(L) * (1 + e2 * Cos(2 * B)) _ + wy * Cos(L) * (1 + e2 * Cos(2 * B)) _ - ro * ms * e2 * Sin(B) * Cos(B)
не рабочие.

Кто-нибудь знает выход?

Сообщение от Jurasmi Посмотреть сообщение
Пока сделал перевод географических координат для "Московских объектов" - в рамках города. Формулы по вашей ссылки пока не использовал.
Каким образом? Какая точность?
Ответить с цитированием
  #16 (permalink)  
Старый 28.04.2010, 16:27
Кандидат Javascript-наук
Отправить личное сообщение для Jurasmi Посмотреть профиль Найти все сообщения от Jurasmi
 
Регистрация: 25.11.2008
Сообщений: 115

Честно - точность никак не мерил.
На глаз - вроде ничего. Для нашего проекта этого хватает.
Сейчас выпишу код.
Ответить с цитированием
  #17 (permalink)  
Старый 28.04.2010, 16:38
Кандидат Javascript-наук
Отправить личное сообщение для Jurasmi Посмотреть профиль Найти все сообщения от Jurasmi
 
Регистрация: 25.11.2008
Сообщений: 115

moscowMapAtYandex({
	//id блока с картой в качестве фона
	mapId:'map', 
	//точки, координаты, которых известны (не менее двух)
	//это "характерные" точки (например точки на МКАДе)
	pointArr:[
		{
			pixel:[102, 292], //в пикселях на картинке (от левого-нижнего угла) (ОХ, OY)
			coord:[37.589093, 55.909067] //(Longitude/Latitude) - географические координаты из yandex maps
		},
		{
			pixel:[24, 158], 
			coord:[37.386533, 55.713611]
		}
	]
});


function moscowMapAtYandex(setup){
	var map = document.getElementById(setup.mapId),
		OX1 = setup.pointArr[0].pixel[0],
		OX2 = setup.pointArr[1].pixel[0],
		OY1 = setup.pointArr[0].pixel[1],
		OY2 = setup.pointArr[1].pixel[1],
		lon1 = setup.pointArr[0].coord[0],
		lon2 = setup.pointArr[1].coord[0],
		lat1 = setup.pointArr[0].coord[1],
		lat2 = setup.pointArr[1].coord[1],
		deltaOX = Math.abs(OX1 - OX2),
		deltaOY = Math.abs(OY1 - OY2),
		deltaLat = Math.abs(lat1 - lat2),
		deltaLon = Math.abs(lon1 - lon2),
		oxPixPrice = deltaLon/deltaOX,//"цена" одного пикселя по OX
		oyPixPrice = deltaLat/deltaOY,//"цена" одного пикселя по OY
		Olon = lon1-OX1*oxPixPrice,//долгота левого-нижнего угла картинки
		Olat = lat1-OY1*oyPixPrice;//широта левого-нижнего угла картинки
	
	var pointList = map.getElementsByTagName('a'); //точки на карте
	for(i=0; i<=pointList.length-1; i++){
		var curPoint = pointList[i],
			curPointLon = curPoint.getElementsByTagName('span')[0].innerHTML,//здесь записана долгота из Яндекса
			curPointLat = curPoint.getElementsByTagName('span')[1].innerHTML,//здесь записана широта из Яндекса
			curPointOX = Math.round((curPointLon-Olon)/oxPixPrice),
			curPointOY = Math.round((curPointLat-Olat)/oyPixPrice);
			
		curPoint.style.left = curPointOX+'px';
		curPoint.style.bottom = curPointOY+'px';
	}
}


Если нужны пояснения - пиши, может помогу.
Мне тут ссылок надавали, но они на английском, я пока не во всех разобрался.
http://stackoverflow.com/questions/2...a-given-picure
Ответить с цитированием
  #18 (permalink)  
Старый 29.04.2010, 18:16
Новичок на форуме
Отправить личное сообщение для valikb Посмотреть профиль Найти все сообщения от valikb
 
Регистрация: 28.04.2010
Сообщений: 4

спасибо за ответ
Но эти формулы работают если принять, что широта и долгота - прямые линии. Это применимо на маленьких картах вроде карты города. Но мне нужен мир. Я даже готов дать $100 тому, кто напишет мне как вывести с точностью до 1 километра города на карте вроде этой: http://en.wikipedia.org/wiki/File:BlankMap-World6.svg
Ответить с цитированием
  #19 (permalink)  
Старый 30.04.2010, 08:49
Аспирант
Отправить личное сообщение для Leax Посмотреть профиль Найти все сообщения от Leax
 
Регистрация: 03.06.2009
Сообщений: 67

valikb,
Если получится перевести широту и долготу в условные X, Y которые можно будет потом смасштабировать в X, Y вашей прямоугольной карты- так устроит?
Ответить с цитированием
  #20 (permalink)  
Старый 30.04.2010, 09:32
Кандидат Javascript-наук
Отправить личное сообщение для Jurasmi Посмотреть профиль Найти все сообщения от Jurasmi
 
Регистрация: 25.11.2008
Сообщений: 115

Меня, к стати, тоже устроит
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск