Прошивки –  Каталог навигаторов –  Восстановление навигатора

Вернуться   Мир Автомобильных навигаторов > Навигационное ПО > SAS4WinCE > [Android] SAS4Android
Регистрация ФайлыПравила форумаБан-лист Справка Календарь Поиск Сообщения за день Все разделы прочитаны

Важная информация


     
Ответ
 
Опции темы
Старый 14.04.2015, 12:19   #1
v_max
Модератор
 
Аватар для v_max
Доп. информация
По умолчанию SAS4Android - загрузочные скрипты

Начиная с версии 3.0 в SAS4Android реализована подгрузка недостающих тайлов с помощью внешних скриптов.

1. подгрузка делается только в непакованый кэш. Так что если у вас кэш пакованый то для подгрузки надо создать директорию для непакованого кэша с таким-же именем.
2. для того чтобы подгрузка работала надо написать javascript файлик с функцией возвращающей урл для тайла данного источника.
Как это делать подробно описано ниже.
3. Этот файл нужно положить в директорию непакованого источника.
4. Есстественно, что бы загрузка работала нужен доступ в интернет.
5. что не маловажно директория кэша должна быть доступна на запись приложению. (что вобщем проблематично на андроиде 4.4+ где запись на СД карту отгрызена)
Выкачивается ТОЛЬКО те тайлы которые нужны в данный момент на экране.
Если в кэше (любом пакованом или непакованом) тайл есть то он не будет перегружаться.
Тайл по каким-то причинам не загрузившийся (ошибки сервера ошибки связи и т п ) повторно будет пытаться грузить не ранее чем через 5 минут.
Выкачивания областей по заданным зумам НЕТ (и не планируется).

Для примера вы создали функцию для гугловского спутника и сохранили ее в файл sat.js.
Этот файл sat.js скопировать ВНУТРЬ директории <где-то-там-у вас>/CACHE/SAT
(название файла может быть любым... ищет по расширению первый попавшийся .js файл внутри директории источника )
Потом зайти в настройки и включить подгрузку из тырнета. Ну и переключиться на Google спутник.
После этого селектор карт начнет показывать на окошке карты в верхнем правом углу строчку - индикатор
rwx - (read write execute) для каждого из источников...
Индикатор этот показывается только если разрешена подгрузка в настройках
r-- означает что директория источника НЕ доступна на запись (подгрузки не будет)
rw- означает что директория доступна на запись но скрипт в ней НЕ обнаружено (подгрузки не будет)
rwx означает что директория доступна на запись и скрипт в ней есть и он будет использоваться для подгрузки. (подгрузка будет)

Как писать скрипты

Скрипты пишутся в виде функции на Javascript которая по x/y/z искомого файла
должна сформировать и вернуть url для загрузки этого тайла.

Тренироваться можно здесь.
[[Ссылки могут видеть только зарегистрированные пользователи. ]]> там сейчас в качестве примера реализация для формирования урла яндексспутника
Сигнатура функции и должна оставаться неизменной.
Функция возвращает вычисленный URL тайла

Образец функции

Fillde:[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
PHP код:
function computeUrl(mapName,x,y,z) {
        var 
url // вот в эту переменную надо сформировать урл из переданных параметров
        
return url;
}; 


Фидлы сделаны для того чтобы отладить функцию загрузки.
идем сюда. [[Ссылки могут видеть только зарегистрированные пользователи. ]]>
жмем кнопку fork - создаем свою новую копию фидла
пишем функцию в окошке javascript ... (по образцу и подобию скрипта в zmp-шке большого саса)
жмем кнопку run

В большой планете на нужном источнике находим приметный тайл...
смотрим его z/x/y их вводишь в поля в правом нижнем окошке фидла
жмем кнопку test. Если все правильно то в нем же увидим загрузившийся после нажатия тайл и сформированый урл.
Проверяем тот ли тайлик загрузился...

Когда все проверим и отладим... жмем кнопку update (сохранение на сервере) при этои урла фидла поменяется...
Новую урлу копируем и выкладываем сюда с указанием имени источника (базовое имя из map.properties)... для которого этот скрипт написан.

4 Созданную вами функцию надо скопировать и сохранить в виде отдельного your_map.js файла
(не используйте русских букв и спецсимволов в т.ч. пробелов в именах файлов)
Этот файл надо положить в директорию того источника для которого предназначена функция т.е внутрь CACHE/your_map


Скрипты закачки перехали на GitHub
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
__________________
JJ-Connect 2100wide, CE6, 2GB, + Альт меню.
Huawei MediaPad 7" Android 4.0.3
Xiaomi Redmi Note 3 Pro MIUI8 Android 5.1.1
Navitel - иногда, OZI - в топку, SAS4WinCE - форева, SAS4Android - осуществляются мечты
v_max вне форума  
Старый 15.05.2017, 14:08   #166
ing78meh
Долгожитель
Доп. информация
По умолчанию

v_max, в том то и закавыка, что от проги идет запрос в z/x/y, а кадастровые границы отдает картинки слоя только по запросу пиксельных координат углов тайла a,b,c,d. То есть x и y как бы высчитать можно (переводя пиксели в данные тайла, в тырнете советуют делить на 256), а z как вымутить...
__________________
HTC Desire A8181, Android 2.2.2,
Sony Xperia Z3 compact, Android 5.1.1.(без root)
Don’t panic - прорвемся !
ing78meh вне форума  
Старый 15.05.2017, 14:47   #167
hectop
Старичок
 
Аватар для hectop
Доп. информация
По умолчанию

Цитата:
Сообщение от ing78meh Посмотреть сообщение
а z как вымутить...

Попробуй 0. Может выйдет.
__________________
Explay PN 445 WinCE 6
Samsung SPH-L720T Galaxy S4 android 5.0.1
hectop вне форума  
Пользователь сказал cпасибо:
Старый 15.05.2017, 19:09   #168
v_max
Модератор
 
Аватар для v_max
Доп. информация
По умолчанию

Цитата:
Сообщение от ing78meh Посмотреть сообщение
в тырнете советуют делить на 256)

Цитата:
Сообщение от hectop Посмотреть сообщение
Попробуй 0. Может выйдет.

пальцем в небо... Ответ неверный ..
Как устроена распиловка глобуса на тайлы по зумам не секрет. (гугл в помощь) да можно и в кэш заглянуть что бы понять как они нумеруются
Дальше надо с учетом нужной проекции пересчитать из xyz
географические координаты углов квадрата тайла
а потом перевести их в метры (опять таки с учетом проекции) от точки с географическими координатами 0, 0
Кому росреестр нужен может поупражняться в геометрии

вот вам пара функций для расчета lon/lat
из номера тайла в Сферической проекции Меркатора.
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
Осталось понять как их перевести в координаты в метрах..
А для этого надо понять что эти метры означают... например левая граница в метрах .. до гринвича
считается по текущей парралели точки или от ее проекции на экватор .. а не знаю..

Для решения второй половины - перевода в метровую систему координат можно
порыться в этой либе...
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
__________________
JJ-Connect 2100wide, CE6, 2GB, + Альт меню.
Huawei MediaPad 7" Android 4.0.3
Xiaomi Redmi Note 3 Pro MIUI8 Android 5.1.1
Navitel - иногда, OZI - в топку, SAS4WinCE - форева, SAS4Android - осуществляются мечты
v_max вне форума  
2 пользователя(ей) сказали cпасибо:
Старый 28.05.2017, 13:18   #169
ing78meh
Долгожитель
Доп. информация
По умолчанию

На Here сменили URL, вот исправленные:
here.com.satellite
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
PHP код:
function computeUrl(mapName,x,y,z) {
    var 
url 'http://'+Math.floor(Math.random()*3+1)+'.aerial.maps.api.here.com/maptile/2.1/maptile/4754d717c3/satellite.day/'+(z-1)+'/'+x+'/'+y+'/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynKsbTjIUDOBcHZ2g';
    return 
url;        
}; 

here.com.hybrid
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
PHP код:
function computeUrl(mapName,x,y,z) {
    var 
url 'http://'+Math.floor(Math.random()*3+1)+'.aerial.maps.api.here.com/maptile/2.1/maptile/4754d717c3/hybrid.day/'+(z-1)+'/'+x+'/'+y+'/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynKsbTjIUDOBcHZ2g&lg=rus&ppi=72&pview=RUS';
    return 
url;        
}; 
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
в английской локации и готовый скрипт
PHP код:
function computeUrl(mapName,x,y,z) {
    var 
url 'http://'+Math.floor(Math.random()*3+1)+'.aerial.maps.api.here.com/maptile/2.1/maptile/4754d717c3/hybrid.day/'+(z-1)+'/'+x+'/'+y+'/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynKsbTjIUDOBcHZ2g';
    return 
url;        
}; 

here.com.map (в Репозитории отсутствует)

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
PHP код:
function computeUrl(mapName,x,y,z) {
    var 
url 'http://'+Math.floor(Math.random()*3+1)+'.base.maps.api.here.com/maptile/2.1/maptile/4754d717c3/normal.day/'+(z-1)+'/'+x+'/'+y+'/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynKsbTjIUDOBcHZ2g&lg=rus&ppi=72&pview=RUS';
    return 
url;        
}; 

А заодно и слой yanarodmap2015, а то в Репозитории под таким именем уложен скрипт реально загружающий гибрид непрозрачной карты и народного слоя.
слой yanarodmap2015 исправленный
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
PHP код:
function computeUrl(mapName,x,y,z) {
  var 
url "https://01.rdr.um.maps.yandex.net/?l=mpskl&sl=104,210316,210342,210370,210416,211777,211818,211939,211977,211993,212015,212017,212019,212026,212032,212053,212081,212094,212216,300024,300026,300170,300198,300207,300231,300292,300330,300337,300344,300351,300358,300365,300372,300379,300386,300393,300400,300406,300407,300468,300472,300523,300641,300651,300661,300671,300931,300939,300954,300969,300993,301050,301084,301125,301135,301142,301338,301352,301360,301596,302053,302080,302089,302090,302107,302526,5300026,5400046,5400051,5400060,5400076,70300160,70300190,70300482&token=1478288583:53135460:core.1478288583:31217270:trunk&x=";
   
url url.replace(/vec(\d+)\./, 
                               
'vec0'+Math.floor(Math.random()*3)+ '.')
                        +
x
                
+'&y='+y
                
+'&z='+(z-1)
                +
"&g="+("Gagarin".charAt(Math.floor(Math.random()*7)))
  return 
url;        
}; 


UPD: от 21.07.2017
Here продолжает прикалываться - сначала 11.06.2017, затем 28.06.2017 ещё раз сменили URL, на оба раза изменилась только ключевая группа, в настоящее время достаточно вручную в скриптах прямо на девайсе заменить выделенную группу в урле:

var url = 'http://'+Math.floor(Math.random()*3+1)+'.aerial.maps.api. here.com/maptile/2.1/maptile/4754d717c3/satellite.day/'+(z-1)+'/'+x+'/'+y+'/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynK sbTjIUDOBcHZ2g';

на a8a7df844e, чтобы получилось так:

var url = 'http://'+Math.floor(Math.random()*3+1)+'.aerial.maps.api. here.com/maptile/2.1/maptile/a8a7df844e/satellite.day/'+(z-1)+'/'+x+'/'+y+'/256/png8?app_id=xWVIueSv6JL0aJ5xqTxb&app_code=djPZyynK sbTjIUDOBcHZ2g';

UPD2:
с 01.08.2017 г. - ещё одно изменение ключевой группы на afd6f70912
__________________
HTC Desire A8181, Android 2.2.2,
Sony Xperia Z3 compact, Android 5.1.1.(без root)
Don’t panic - прорвемся !
ing78meh вне форума  
2 пользователя(ей) сказали cпасибо:
Старый 16.08.2017, 09:32   #170
Madmanmilk
Вникающий
Доп. информация
По умолчанию

Добрейшего дня!
Подскажите где ошибка:
function computeUrl(mapName,x,y,z) {
var url = 'http://91.237.82.95:8088/genshtab/1km/'+(z-1)+'/'+x+'/'+y+'.jpg';
return url;
};

?
Madmanmilk вне форума  
Старый 16.08.2017, 12:26   #171
v_max
Модератор
 
Аватар для v_max
Доп. информация
По умолчанию

Madmanmilk... a где http://{сервер:порт} ?
URL должен быть полным адресом.
__________________
JJ-Connect 2100wide, CE6, 2GB, + Альт меню.
Huawei MediaPad 7" Android 4.0.3
Xiaomi Redmi Note 3 Pro MIUI8 Android 5.1.1
Navitel - иногда, OZI - в топку, SAS4WinCE - форева, SAS4Android - осуществляются мечты
v_max вне форума  
Старый 16.08.2017, 13:43   #172
Madmanmilk
Вникающий
Доп. информация
По умолчанию

Этот образец 250метровки из реп "был взят за основу":
function computeUrl(mapName,x,y,z) {
var url = 'http://91.237.82.95:808'+Math.floor(Math.random()*4+2)+'/genshtab250m/'+(z-1)+'/'+x+'/'+y+'.jpg';
return url;
};

Из большой SAS взял актуальный/рабочий адрес ([[Ссылки могут видеть только зарегистрированные пользователи. ]]>
Это : "http://91.237.82.95:8088" и есть сервер и порт...Я так думаю ... но так не работает(
Madmanmilk вне форума  
Старый 16.08.2017, 21:02   #173
v_max
Модератор
 
Аватар для v_max
Доп. информация
По умолчанию

Madmanmilk, где он в вашем URL?
Цитата:
url ='/genshtab/1km/'+(z-1)+'/'+x+'/'+y+'.jpg';

Лови
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
__________________
JJ-Connect 2100wide, CE6, 2GB, + Альт меню.
Huawei MediaPad 7" Android 4.0.3
Xiaomi Redmi Note 3 Pro MIUI8 Android 5.1.1
Navitel - иногда, OZI - в топку, SAS4WinCE - форева, SAS4Android - осуществляются мечты
v_max вне форума  
Пользователь сказал cпасибо:
Старый 01.09.2017, 10:32   #174
AlexArGC
Новичок
 
Аватар для AlexArGC
Доп. информация
По умолчанию

Android 7.0 почему тайлы не подгружаются на SD карту? Если переносишь в память телефона то сразу работать начинает. Разрешения в системе на запись в SD даны.
AlexArGC вне форума  
Старый 01.09.2017, 13:58   #175
ing78meh
Долгожитель
Доп. информация
По умолчанию

Цитата:
Сообщение от AlexArGC Посмотреть сообщение
...Разрешения в системе на запись в SD даны.

Даны...только для системных и некоторых Маркетовых приложений. Эта беда началась ещё с Андроида 4.4. В зависимости от предпочтений(пароноидальности) производителя тела(кстати какого) и заложенной прошивки может быть разрешен доступ на запись всем приложениям(тогда повезло) или хотя бы заложена возможность в Настройках девайса прописать разрешение для конкретных сторонних прог. Если этого не предусмотрено - остается рутовать тело.
Либо ставить само приложение и подгрузку на внутреннюю память, а на SD-карте держать дубль SAS4 а в нём залитый с компа упакованный кэш, и по необходимости переключаться между этими директориями. В теме этот и другие варианты организации подгрузки тайлов уже обсуждались, используйте Поиск, и в "Инструкции в гуглодоке" тоже прописан один из способов.
Здесь 7-ка вообще малоизучена, если чего накопаете для решения проблемы - просьба сообщить.
__________________
HTC Desire A8181, Android 2.2.2,
Sony Xperia Z3 compact, Android 5.1.1.(без root)
Don’t panic - прорвемся !
ing78meh вне форума  
2 пользователя(ей) сказали cпасибо:
Старый 01.09.2017, 14:13   #176
AlexArGC
Новичок
 
Аватар для AlexArGC
Доп. информация
По умолчанию

Цитата:
Сообщение от ing78meh Посмотреть сообщение
Даны...только для системных и некоторых Маркетовых приложений. Эта беда началась ещё с Андроида 4.4. В зависимости от предпочтений(пароноидальности) производителя тела может быть разрешен доступ на запись всем приложениям(тогда повезло) или хотя бы заложена возможность в Настройках девайса прописать разрешение для сторонних прог. Если этого нет - остается рутовать тело.
Либо ставить приложение и подгрузку на внутреннюю память, а на SD-карте держать дубль SAS4 а в нём залитый с компа упакованный кэш. В теме этот и другие варианты организации подгрузки тайлов уже обсуждались и в "Инструкции в гуглодоке" тоже прописано.

Китайцы параноидлальностью не отличаются аппарат BV8000Pro, тот же X-Plore без проблем работают с картой как и MyPhoneExplorer...
AlexArGC вне форума  
Старый 19.09.2017, 16:57   #177
arxey
Вникающий
Доп. информация
По умолчанию

Доброго времени суток.
Поправьте если не так - в репозитории присутствуют только карты с простой адресацией тайлов (x/y/z) и напрочь отсутствуют WMS (EPSG:900913, EPSG:3785, EPSG:3857...) - т.е. разного рода RoundEx(GetL-B-R-TMetr,8) и RoundEx(GetL-B-R-TLat/Lon,8) - "стандартные" для Sas.Планет.
И хотя вопрос подымался здесь еще 08.06.2015 и повторно - 07.05.2017, воз и ныне там?
Не уж то даже великим гуру не по силам данная проблема - дающая доступ к доброй половине картсевисов?
В ссылках предложенных v_max [[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]> Можно объяснить на пальцах - на любом примере - кадастровые границы, sentinel( [[Ссылки могут видеть только зарегистрированные пользователи. ]]> - как будет выглядеть Javascript?
Заранее безмерно благодарен, и спасибо за столь замечательную программу.
arxey вне форума  
Старый 20.09.2017, 15:24   #178
ing78meh
Долгожитель
Доп. информация
По умолчанию

arxey, пока затык в том, что для решения данного вопроса требуется спец по Java, который cмог бы запросто склеить скрипт для перевода тайловых координат в пиксельные с строке запроса... Такового пока не обнаружено...
__________________
HTC Desire A8181, Android 2.2.2,
Sony Xperia Z3 compact, Android 5.1.1.(без root)
Don’t panic - прорвемся !
ing78meh вне форума  
Пользователь сказал cпасибо:
Старый 21.09.2017, 18:08   #179
v_max
Модератор
 
Аватар для v_max
Доп. информация
По умолчанию

arxey, затык в том что нужно знать АЛГОРИТМ
перевода x/y/z тайла в эти самые GetL/B/R/TMetr и другие значения которые используются в сасовских zmp...
Найдете алгоритм - реализовать не вопрос...
Сходу мне не удалось его найти.
Да и большой нужды у меня лично нет...
Как и в подгрузке как таковой тоже нет
Когда я ее прикручивал подгрузку по просьбам трудящихся, сразу предупреждал - я не собираюсь заниматься писанием и поддержкой скриптов в актуальном состоянии.
Так что если кому надо сами осваивайте...
__________________
JJ-Connect 2100wide, CE6, 2GB, + Альт меню.
Huawei MediaPad 7" Android 4.0.3
Xiaomi Redmi Note 3 Pro MIUI8 Android 5.1.1
Navitel - иногда, OZI - в топку, SAS4WinCE - форева, SAS4Android - осуществляются мечты
v_max вне форума  
2 пользователя(ей) сказали cпасибо:
Старый 09.10.2017, 17:27   #180
ing78meh
Долгожитель
Доп. информация
По умолчанию

Ох, чего-то скрипт yasat похоже накрылся, после летних изменений формата тайлов ContentType=image/jpeg,image/pjpeg
не хочет грузить свежие снимки....
Но при этом в штатном фидле срабатывает без проблем...

UPD: 11.10.2017
...ну не хватает мне знания Java, не получается запинать скрипт под изменения в Яндексе... требуется спец.
__________________
HTC Desire A8181, Android 2.2.2,
Sony Xperia Z3 compact, Android 5.1.1.(без root)
Don’t panic - прорвемся !
ing78meh вне форума  
Пользователь сказал cпасибо:
Ответ

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Android SAS4Android - Спутниковые снимки на Android устройствах v_max [Android] SAS4Android 314 Вчера 13:08
SAS4Android - архив устаревшего и оффтоп v_max [Android] SAS4Android 7590 01.11.2017 07:15
SAS4Android на eeePC Fullpath [Android] SAS4Android 2 24.02.2013 10:56


Текущее время: 02:33. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot

Копирайты
Время генерации страницы 0.14795 секунды с 13 запросами