Слой Яндекс.Пробки

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

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

Слой Яндекс.Пробки

Сообщение dsd_corp » 17 мар 2009, 18:04

Всем привет.
Недавно в ветке "Чего вы хотите?" было обсуждение сабжа.
По просьбам трудящихся создаю новую тему и скомпилирую результаты предыдущих обсуждений сюда.

Итак, вот что у нас уже есть. Первое сообщение данной ветки (этот пост) будет регулярно обновляться.

настройки для слоя пробок:
GetUrlScript.txt
Код: Выделить всё
function retrieve_ts(url: string; xstart: string; xend: string):integer; external 'ytrf_retrieve_ts@maps\YaTraf.dll stdcall';
function GetIntParam(key: string): Integer; external 'ytrf_GetIntParam@maps\YaTraf.dll stdcall';
function SetIntParam(key: string; val: Integer): integer; external 'ytrf_SetIntParam@maps\YaTraf.dll stdcall';
function GetUTS: Longint; external 'ytrf_GetUTS@maps\YaTraf.dll stdcall';

function ts_update_needed(delta: integer):integer;
var
  lts, ts : integer;
  lts_key: string;
begin
  result:=0;
  lts_key:='ytrf_lts';
  lts:=GetIntParam(lts_key);
  ts:=GetUTS;
  if (ts>lts+delta) then begin
    SetIntParam(lts_key, GetUTS);
    result:=1;
  end;
end;

function get_ts(delta: integer):integer;
var
  ts_key, url, data: string;
  pt : LongInt;
begin
result:=0;
ts_key:='ytrf_ts';
if (ts_update_needed(delta)>0) then begin
   url:='http://trf.maps.yandex.net/trf/stat.js';
   result:=retrieve_ts(url, 'timestamp:"', '"');
   SetIntParam(ts_key, result);
end else begin
   result:=GetIntParam(ts_key);
end;
end;

begin
ResultURL:='';
if (GetZ<>0) then ResultURL:=GetURLBase+inttostr(GetX)+'&y='+inttostr(GetY)+'&z='+inttostr(GetZ-1)+'&tm='+inttostr(get_ts(60));
end.


params.txt
Код: Выделить всё
[PARAMS]
GUID={C32B96AD-3AC5-4170-ADD7-47B2222AFC99}
asLayer=1
name=Пробки (Яндекс.Карты)
name_9=Traffic (Yandex.Maps)
NameInCache=yatraf
DefURLBase=http://trf.maps.yandex.net/tiles?l=trf&x=
ContentType=image/png
ParentSubMenu=
Ext=.png
projection=2
sradiusa=6378137
sradiusb=6356752
separator=0
UseDwn=1
Usestick=0
UseGenPrevious=0
Usedel=1
Usesave=0
UseAntiBan=0
Sleep=0
DefHotKey=54
BanIfLen=0
DelAfterShow=1

собственно готовый zmp-файл: http://cs.911.ru/traffic/YaTraf.zmp (GUID я ему сгенерил, а слизывал формат с яндекс-гибрида)
для работы слоя необходима внешняя библиотека дополнительных функций.
Скомпилированную библиотеку можно скачать тут: http://cs.911.ru/traffic/YaTraf.dll
Этот файл нужно бросить в папку maps, то есть туда же, где лежат zmp-файлы.

исходники библиотеки(для параноиков и просто интересующихся :D ):
Последний раз редактировалось dsd_corp 16 окт 2009, 10:15, всего редактировалось 3 раз(а).
dsd_corp
Новичок
 
Сообщения: 46
Зарегистрирован: 25 фев 2009, 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Слой Яндекс.Пробки

Сообщение dsd_corp » 31 мар 2009, 17:31

feya писал(а):А как эхто разрулить в плане интерфейса пользователя? Т.е. если просто указывать в параметрах всегда загружать - пользователь об этом ничего не будет знать а прога будет грузить, тут из-за статистики на 2 килобайта часто шум поднимают) не хочется чтоб прога грузила чтолибо до того пока пользователь не укажет явно. С другой стороны можно сделать указание отдельно для карт и слоев источника, но это будет не очень удобно. Такчто тут надо думать, предлагайте.

ну как бы с пробками-то понятно - они сами по себе ниоткуда не возьмутся...
а с другими картами это да... можно конечно в настройки вынести например время жизни тайла, но тогда тебе работы явно побольше будет - реализовывать механизм...

либо вот вариант: еще один параметр в params.txt: confirm_msg.
это будет строка, в которой находится текст вопроса к пользователю.

грубо говоря, если я(вот как сейчас) делаю карту, которая работает нестандартно(в данном случае требует постоянных подсосов из инета), я добавляю в params.txt этот параметр. Пишу в него буквально следующее:
Код: Выделить всё
confirm_msg=Слой Яндекс.Пробок требует постоянного подключения к интернету.\\Это будет расходовать Ваш траффик.\\Вы все еще хотите включить его отображение?

(ну значками \\ я для примера типа новую строку начинаю, это необязательно ) )

И в таком случае прога при переключении на данную карту(при включении данного слоя) выдает юзеру MsgBox с этим текстом и кнопками "Да" и "Нет".
ну это как вариант. первое что в голову пришло ))
dsd_corp
Новичок
 
Сообщения: 46
Зарегистрирован: 25 фев 2009, 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Слой Яндекс.Пробки

Сообщение dsd_corp » 22 май 2009, 17:59

Недавно Яндекс много чего поменял в работе сайта с пробками.
выкладываю обновленную карту и dll для слоя пробок:

файл карты: http://cs.911.ru/traffic/YaTraf.zmp (2,6 кб)
для работы нужно в каталог с SASPlanet.exe бросить эту DLL-ку: http://cs.911.ru/traffic/YaTraf.dll (18,4 кб)

исходники ложить пока не буду. там мусора много, сейчас убирать некогда. так что юзайте на свой страх и риск )

P.S. to feya: а что за параметр такой DelAfterShow=1 ? чето я не заметил, чтобы он действовал. мож его как-то по-особому применять нужно?
dsd_corp
Новичок
 
Сообщения: 46
Зарегистрирован: 25 фев 2009, 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Слой Яндекс.Пробки

Сообщение mikel » 04 июн 2009, 11:34

dsd_corp писал(а):Недавно Яндекс много чего поменял в работе сайта с пробками.
выкладываю обновленную карту и dll для слоя пробок:


Подключил, обнаружил неприятную особенность - если для тайтла карты у Яндекса данных нет - рисует "Такого изображения нет на сервере". Можно ли это как то погасить?
mikel
Новичок
 
Сообщения: 6
Зарегистрирован: 25 мар 2009, 09:35
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Слой Яндекс.Пробки

Сообщение AvRUS » 04 июн 2009, 12:58

mikel писал(а):..
Подключил, обнаружил неприятную особенность - если для тайтла карты у Яндекса данных нет - рисует "Такого изображения нет на сервере". Можно ли это как то погасить?

Если автор программы не будет против (SAS.Планета), я планирую заняться данным сообщением (вынести его отображение в настройки карт).
AvRUS
Новичок
 
Сообщения: 9
Зарегистрирован: 11 окт 2008, 01:20
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Слой Яндекс.Пробки

Сообщение dsd_corp » 16 июн 2009, 17:29

Обновляю пробки. С подчищенными исходниками.

файл карты: http://cs.911.ru/traffic/YaTraf.zmp (2,6 кб)
для работы нужно в каталог с SASPlanet.exe бросить эту DLL-ку: http://cs.911.ru/traffic/YaTraf.dll (17,9 кб)

сырцы:
исходники DLL-ки в zip: http://cs.911.ru/traffic/YaTraf_dll_src.zip (2,6 кб zip)
исходники модуля DLL-ки как html: http://cs.911.ru/traffic/uYaTraf.pas.html (34,2 кб)

==================================================

mikel писал(а):Подключил, обнаружил неприятную особенность - если для тайтла карты у Яндекса данных нет - рисует "Такого изображения нет на сервере". Можно ли это как то погасить?

Это не от меня зависит. Данный вопрос к feya. И данный вопрос уже вроде обсуждался. Когда у feya руки дойдут - что-нибудь сделает с этим. Хотя в принципе это сообщение не мешает особо. Когда включен слой пробок, по нему понятно, что в данном "квадрате" у тындекса нет данных о пробках(т.е. могут быть, могут не быть). В остальных случаях слой пробок можно просто выключать - все равно он мешает названия улиц видеть. У меня на хоткей повешены пробки(вкл/выкл) - удобно.



P.S. кстати, на день России ездили в Питер, программа на ноуте юзалась вовсю и постоянно. Вместе со слоем пробок. Инет от скайлинка с дешевым роумингом рулит однозначно. Все четко видно: где ты, где пробки, куда надо ехать. Супер. Соответственно видимо питерцам в Москве такая связка будет не менее полезной, чем москвичам в Питере )))
dsd_corp
Новичок
 
Сообщения: 46
Зарегистрирован: 25 фев 2009, 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Слой Яндекс.Пробки

Сообщение feya » 16 июн 2009, 21:17

dsd_corp
Лучше наверно dll кидать в папку maps а в скрипте поправить на 'ytrf_retrieve_map_ts@maps\YaTraf.dll stdcall'.

Про надпись отсутствия подключения - надо бы сделать выбор что писать и писать ли.
http://SASGIS.ru | SAS.Планета | SASPlanet
Аватара пользователя
feya
Администратор
 
Сообщения: 2035
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 30 раз.

Re: Слой Яндекс.Пробки

Сообщение dsd_corp » 16 июн 2009, 22:40

feya писал(а):Лучше наверно dll кидать в папку maps а в скрипте поправить на 'ytrf_retrieve_map_ts@maps\YaTraf.dll stdcall'.

переделано. ссылка на zmp-файл та же, что и на пару постов выше. DLL теперь кидать в maps.
dsd_corp
Новичок
 
Сообщения: 46
Зарегистрирован: 25 фев 2009, 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Слой Яндекс.Пробки

Сообщение dsd_corp » 30 июл 2009, 15:33

to feya: обновил zmp. с условием GetZ<>0. DLL-ка тоже обновилась. убрал там из списка экспорта неиспользуемые функции. вдруг поможет с антивирусниками...
обнови у себя.
качать по тем же ссылкам в первом посте этой ветки.

и еще. в последней версии(90730) у тебя параметр DelAfterShow опять лагает. тайл при скачке показывается и сразу исчезает(видимо параллельно с удалением файла)
dsd_corp
Новичок
 
Сообщения: 46
Зарегистрирован: 25 фев 2009, 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Слой Яндекс.Пробки

Сообщение feya » 30 июл 2009, 15:59

dsd_corp
Ок, обновил, DelAfterShow исправил.
http://SASGIS.ru | SAS.Планета | SASPlanet
Аватара пользователя
feya
Администратор
 
Сообщения: 2035
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 30 раз.

Re: Слой Яндекс.Пробки

Сообщение dsd_corp » 30 июл 2009, 18:01

feya писал(а):dsd_corp
Ок, обновил, DelAfterShow исправил.

Все ок, работает.
смотрю яндекс уже показывает пробки для Нижнего Новгорода и Ростова...
dsd_corp
Новичок
 
Сообщения: 46
Зарегистрирован: 25 фев 2009, 19:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Пред.След.

Вернуться в SAS.Планета

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

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

cron