Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.04.2012, 16:15
Новичок на форуме
Отправить личное сообщение для MaxyMax Посмотреть профиль Найти все сообщения от MaxyMax
 
Регистрация: 26.04.2012
Сообщений: 2

yandex maps+ видеокамеры с других сайтов?
Доброго дня! Сразу скажу что я ничего не понимаю в Javascript. Хочу создать на своем сайте (смотрю ТОЛЬКО я и члены семьи ТОЛЬКО из под FF 12+) карту с применением api yandex.maps и прикрутить к ней видеокамеры со сторонних сайтов.
Ок, стандартно прикрутил

function drawDrsuData(holder, name, text, lon, lan){
			var placemark = new YMaps.Placemark(new YMaps.GeoPoint(lon, lan), {style: "default#buildingsIcon"});
			placemark.setBalloonContent("<b>"+name+"</b><div><iframe height=\"420\" width=\"400\" scrolling=\"no\" frameborder=\"0\" src=\"http://simg.maps.yandex.net/"+text+" \"></iframe></div>");
			holder.addOverlay(placemark);
		}

drawDrsuData(map, 'Волгоградский проспект (в центр) [ms001] 11-я улица Текстильщиков, д.11', '88-v_centr.jpg',37.742,55.707776);

и так вызываем по всем точкам (точки тупо вытащены руками из исходника с probki.yandex.ru, я понимаю что это глупость несусветная-меня ПОКА устраивает).
Далее есть чУдный сайт http://centrdor.ru/info
И вот тут то все намного интереснее- список камер в исходнике отсутствует, но выдает некую строку в ответ на
http://www.centrdor.ru/info/portal_s....ashx?q=camera

{"camera":[{"road_name":"М2 \"Крым\" Москва - Белгород - гр. с Украиной (на Симферополь) через Тулу\, Орел\, Курск","pos_lat":"55.0437567958206","pos_lon":"37.5590343300976","pos":"82+000"},{"road_name":"М9 \"Балтия\" Москва - гр. с Латвией через Волоколамск (новое направление)","pos_lat":"55.7859091564547","pos_lon":"37.1090172297791","pos":"36+000"}]}



Далее если выполнить
function AddSightInVisual(holder, name, contact, lon, lan)
        {
            var placemark = new YMaps.Placemark(new YMaps.GeoPoint(lon, lan), {style: "default#hospitalIcon"});
            placemark.name = holder;
            placemark.description = name;
         		var obj = "http://www.centrdor.ru/info/portal_service/query.ashx?q=pos&lat="+lan+"&lon="+lon;
placemark.setBalloonContent("<b>"+name+"</b><div><iframe height=\"420\" width=\"400\" scrolling=\"yes\" frameborder=\"0\" src=\"http://www.centrdor.ru/info/portal_service/query.ashx?q=pos&lat="+lan+"&lon="+lon+" \"></iframe></div>");	    

            holder.addOverlay(placemark); 
	}

то есть в итоге запрос к
http://www.centrdor.ru/info/portal_s...11 5624612154

я получаю в iframe очередной список!

{"pos":"22+551","dist":"54","name":"М2 \"Крым\" Москва - Белгород - гр. с Украиной (на Симферополь) через Тулу\, Орел\, Курск","shifr":"М2","titul":"\"Крым\"","obsl_org":[{"name":"ФКУ \"Центравтомагистраль\"","phone":"(499) 251-27-32\, (499) 251-01-22","pos_beg":"21+800","pos_end":"108+000"}],"obsl_gibdd":[{"name":"8 СБ 2 СП ДПС «Южный» ГИБДД МО","phone":"8-496-753-07-61","address":"МО\, г. Подольск\, ул. Б. Серпуховская\, д. 199-в"}],"azs":[{"axis_name":"из Москвы","name":"Роснефть (Подсолнух)","pos":"25+100"},{"axis_name":"из Москвы","name":"Нефтьреммонтаж","pos":"26+770"},{"axis_name":"в Москву","name":"ЛУКОЙЛ","pos":"21+800"},{"axis_name":"в Москву","name":"Роснефть (Подсолнух)","pos":"24+900"},{"axis_name":"в Москву","name":"BP Connect","pos":"26+770"}],"camera":[{"name":"М2 \"Крым\" км 22+500 разд. (вид в Москву)","image_id":"2995523","load_time":"2012-04-26T15:30:00","pos":"22+500"},{"name":"М2 \"Крым\" км 25+150 разд. (вид в Москву)","image_id":"2995500","load_time":"2012-04-26T15:30:00","pos":"25+150"},{"name":"М2 \"Крым\" км 22+500 разд. (вид в Москву)","image_id":"2995458","load_time":"2012-04-26T15:12:00","pos":"22+500"},{"name":"М2 \"Крым\" км 25+150 разд. (вид в Москву)","image_id":"2995423","load_time":"2012-04-26T15:00:00","pos":"25+150"},{"name":"М2 \"Крым\" км 22+500 разд. (вид в Москву)","image_id":"2995365","load_time":"2012-04-26T14:30:00","pos":"22+500"},{"name":"М2 \"Крым\" км 25+150 разд. (вид в Москву)","image_id":"2992135","load_time":"2012-04-25T16:00:00","pos":"25+150"}],"sensor":[{"direction_r":"","direction_l":"в Москву","speed_r":"0","speed_l":"106","speed_avg_r":"0","speed_avg_l":"102","pos":"22+500"},{"direction_r":"из Москвы","direction_l":"","speed_r":"25","speed_l":"0","speed_avg_r":"91","speed_avg_l":"0","pos":"25+150"},{"direction_r":"","direction_l":"в Москву","speed_r":"0","speed_l":"105","speed_avg_r":"0","speed_avg_l":"97","pos":"25+150"}],"station":[{"direction_r":"От Москвы","direction_l":"К Москве","load_time":"2012-04-26T15:30:34","t":"24.1","rh":"26","ws":"4.6","wd":"0","wsmax":"7.8","ri":"0","rs_kod":"","rs_name":"","r_ts":"33.5","l_ts":"32.1","r_surf_name":"Сухо","l_surf_name":"Сухо","rain_code":"2","rain_name":"Ясно","wd_rumb":"С","pos":"25+150"}]}


то есть меня интересует ХОТЯ-бы самый первый в списке (он же последний по времени) image_id, который далее надо запросить (они меняются постоянно по приходе нового изображения).ЧТО где надо написать?
Буду чрезвычайно благодарен за потакание моим хотелкам Заранее Большое человеческое СПАСИБО!
(Идеально конечно было бы подтягивать из первого запроса (http://www.centrdor.ru/info/portal_s....ashx?q=camera) автоматом координаты меток в массив, по ним строить метки, после клика по метке передавать как сейчас lan и lon, и вот потом выбирать из полученного массива image_id и показывать изображение, но это уже потянет на денежные траты, я так понимаю....)
Ответить с цитированием
  #2 (permalink)  
Старый 16.05.2012, 11:02
Новичок на форуме
Отправить личное сообщение для MaxyMax Посмотреть профиль Найти все сообщения от MaxyMax
 
Регистрация: 26.04.2012
Сообщений: 2

Вроде сделал, но работает не так...
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js" type="text/javascript" charset="utf-8"></script>   
<script src="https://raw.github.com/jquery/jquery-tmpl/master/jquery.tmpl.min.js" type="text/javascript" charset="utf-8"></script>
<script src="jquery.crossdomain.js" type="text/javascript"></script>    
 
  <script type="text/javascript">
function drawCentrdorData(holder, name, id, lon, lan){
			var placemark = new YMaps.Placemark(new YMaps.GeoPoint(lon, lan), {style: "default#campingIcon"});
			//placemark.setBalloonOptions({});
			placemark.setBalloonContent("<b>"+name+"</b><div><iframe height=\"420\" width=\"400\" scrolling=\"no\" frameborder=\"0\" src=\"http://www.centrdor.ru/info/portal_service/image.ashx?id="+id+" \"></iframe></div>");
			//placemark.setBalloonOptions({maxWidth: 400, maxHeight: 3000});
			holder.addOverlay(placemark);
		}
// Создание обработчика для события window.onLoad
        window.onload = function () {
// Создание экземпляра карты и его привязка к созданному контейнеру
		var map = new YMaps.Map( document.getElementById("YMapsID") );
// Установка для карты ее центра и масштаба
		map.setCenter(new YMaps.GeoPoint(37.617671,55.755768), 4);
			map.addControl(new YMaps.SearchControl({geocodeOptions: {geocodeProvider: "yandex#pmap"}}));
			YMaps.MapType.PMAP.getName = function () { return "Народная"; }
			map.addControl(new YMaps.TypeControl([
            YMaps.MapType.MAP,
            YMaps.MapType.SATELLITE,
            YMaps.MapType.PHYBRID,
            YMaps.MapType.PMAP
        ], [0, 1, 2, 3]));
	map.addControl(new YMaps.ToolBar());
	map.addControl(new YMaps.Zoom());
//	map.addControl(new YMaps.MiniMap());
	map.addControl(new YMaps.ScaleLine());
	map.enableScrollZoom();
	map.addControl(new YMaps.SearchControl());	        
			var traffic = new YMaps.Traffic.Control();                                                             
			map.addControl(traffic);
function getCentrdorCam() {
    requestCrossDomainJSON(
 	'http://www.centrdor.ru/info/portal_service/query.ashx?q=camera',
        function(results) {
            var i, t = $('#camera');
            for (var t = 0; t < results.camera.length; t++) {
//		alert(results.camera[t].road_name);
	idimg=getid(results.camera[t].pos_lat,results.camera[t].pos_lon);
//	idimg=getid(55.0437567958206,37.5590343300976);
//		alert("idimg=",idimg);
drawCentrdorData(map,results.camera[t].road_name,idimg,results.camera[t].pos_lon, results.camera[t].pos_lat);

            }
        }
    );
    return false;
}

function getid(plat,plon) {
	urlj='http://www.centrdor.ru/info/portal_service/query.ashx?q=pos&lat='+plat+'&lon='+plon;
				//alert(urlj);
    requestCrossDomainJSON(
 	urlj,
        function(results) {
            var i, t = $('#camera');
return results.camera[0].image_id;
        }
    );
    return false;
}
getCentrdorCam();


Юзаем YQL, Первая функция отрабатывает прекрасно, яхуапис возвращает координаты точек, они ставятся на карту,но! idimg (в getid) не возвращается. При этом если просто запустить getid с закоменченными координатами-все прекрасно возвращается. Что я сделал не так?
ЗЫ Да, и может кто подскажет, можно ли избавиться от YQL в данном коНькретном случае кроссдоменного запроса к centrdor'у?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контент для других сайтов gfireghost Events/DOM/Window 2 26.08.2011 15:49
Проблема с подключаемыми js-файлами с других сайтов Александра Воробьева Общие вопросы Javascript 4 05.03.2011 19:48