Скрипты для On-Line сервисов

Полноценный картографический редактор, предназначенный для создания векторных карт и картографических планов местности в открытом картографическом формате (*.PFM - Map Polish Format) с последующей компиляцией в различные (обменные, закрытые) картографические форматы, для использования в различных навигационных программах и приложениях.

Модераторы: Fencer_Silver, Admin, Alex

DarkDiver
Бета тестер
Бета тестер
Сообщения: 363
Зарегистрирован: 06 мар 2012, 04:31
Контактная информация:
Россия

Re: Скрипты для On-Line сервисов

Сообщение DarkDiver »

Fencer_Silver писал(а):
Вот этот сервис можно через скрипты прикрутить: http://www.topomapper.com/
Если да, то как?
Можно. Надо в скрипт допилить процедуры. По мере добавления, будут и WMS.
P.S. Я так думаю, пора документацию на скрипт оформлять?
Да, документация нужна. Ну и рабочий пример скрипта для какой-нибудь из существующих WMS карт хотелось бы...
http://john.bdk.com.ru
Аватара пользователя
Fencer_Silver
Разработчик
Разработчик
Сообщения: 922
Зарегистрирован: 06 фев 2012, 16:00
Откуда: Украина
Настроение:
Контактная информация:
Украина

Re: Скрипты для On-Line сервисов

Сообщение Fencer_Silver »

Документация и пример создания скриптов для On-Line сервисов
Вложения
WebMaps.rar
(222.67 КБ) 4094 скачивания
DarkDiver
Бета тестер
Бета тестер
Сообщения: 363
Зарегистрирован: 06 мар 2012, 04:31
Контактная информация:
Россия

Re: Скрипты для On-Line сервисов

Сообщение DarkDiver »

Fencer_Silver писал(а):Документация и пример создания скриптов для On-Line сервисов
Спасибо, будем разбираться.

Добавлено спустя 1 минуту 17 секунд:
Добавил скрипт еще для одного сервиса: map.vl.ru.
Вложения
MGE-WebMaps-by-DarkDiver-20130401.rar
(10.01 КБ) 3649 скачиваний
http://john.bdk.com.ru
Аватара пользователя
Fencer_Silver
Разработчик
Разработчик
Сообщения: 922
Зарегистрирован: 06 фев 2012, 16:00
Откуда: Украина
Настроение:
Контактная информация:
Украина

Re: Скрипты для On-Line сервисов

Сообщение Fencer_Silver »

Yahoo спутник и карта
Вложения
Yahoo.rar
(1.29 КБ) 3670 скачиваний
Аватара пользователя
Fencer_Silver
Разработчик
Разработчик
Сообщения: 922
Зарегистрирован: 06 фев 2012, 16:00
Откуда: Украина
Настроение:
Контактная информация:
Украина

Re: Скрипты для On-Line сервисов

Сообщение Fencer_Silver »

Кадастровые границы Украины (кадастр карта)
Вложения
CadasterOfUkraineMap.rar
(1.15 КБ) 3344 скачивания
DarkDiver
Бета тестер
Бета тестер
Сообщения: 363
Зарегистрирован: 06 мар 2012, 04:31
Контактная информация:
Россия

Re: Скрипты для On-Line сервисов

Сообщение DarkDiver »

А вот этот сервис прикрутить возможно?
http://www.navionics.com/en/webapp
Здесь похоже координаты тайлов зашифрованы...
http://john.bdk.com.ru
dr.b
Бета тестер
Бета тестер
Сообщения: 145
Зарегистрирован: 16 дек 2012, 19:17
Россия

Re: Скрипты для On-Line сервисов

Сообщение dr.b »

Обновление гуглоспутника до 126 версии . Зоны обновлений:
http://mw1.gstatic.com/mw-earth-vectord ... Update.kmz
WinXP SP3
User_tester
Бета тестер
Бета тестер
Сообщения: 1149
Зарегистрирован: 23 апр 2012, 11:23
Беларусь

Re: Скрипты для On-Line сервисов

Сообщение User_tester »

Изменения в 126-ой версии гугла от 21 марта 2013 г. можно посмотреть онлайн. ;)
Аватара пользователя
Fencer_Silver
Разработчик
Разработчик
Сообщения: 922
Зарегистрирован: 06 фев 2012, 16:00
Откуда: Украина
Настроение:
Контактная информация:
Украина

Re: Скрипты для On-Line сервисов

Сообщение Fencer_Silver »

DarkDiver писал(а):А вот этот сервис прикрутить возможно?
http://www.navionics.com/en/webapp
Здесь похоже координаты тайлов зашифрованы...
Проверил все... Сейчас, наверное, умер. Еще в феврале для него работал адрес
http://ec2-54-234-79-86.compute-1.amazo ... =256&BBOX=
Сейчас он не отвечает (по крайней мере сегодня)...

А вот запрос из самого сервиса
http://webviewer-api.navionics.com/getm ... 1234567890

Он шифруется.
DarkDiver
Бета тестер
Бета тестер
Сообщения: 363
Зарегистрирован: 06 мар 2012, 04:31
Контактная информация:
Россия

Re: Скрипты для On-Line сервисов

Сообщение DarkDiver »

Добавил топокарты с веб-сервиса marshruty.ru

Добавлено спустя 7 минут 46 секунд:
Fencer_Silver писал(а): Проверил все... Сейчас, наверное, умер. Еще в феврале для него работал адрес
http://ec2-54-234-79-86.compute-1.amazo ... =256&BBOX=
Сейчас он не отвечает (по крайней мере сегодня)...
А вот запрос из самого сервиса
http://webviewer-api.navionics.com/getm ... 1234567890
Он шифруется.
Ну, значит не судьба.
Вложения
MGE-WebMaps-by-DarkDiver-21030402.rar
(11.47 КБ) 3838 скачиваний
http://john.bdk.com.ru
DarkDiver
Бета тестер
Бета тестер
Сообщения: 363
Зарегистрирован: 06 мар 2012, 04:31
Контактная информация:
Россия

Re: Скрипты для On-Line сервисов

Сообщение DarkDiver »

Добавил три веб-карты:
- карты mail.ru
- карты rambler.ru
- карты Геоцентр-Консалтинг
Вложения
MGE-WebMaps-by-DarkDiver-21030412.rar
(9.95 КБ) 3581 скачивание
http://john.bdk.com.ru
DarkDiver
Бета тестер
Бета тестер
Сообщения: 363
Зарегистрирован: 06 мар 2012, 04:31
Контактная информация:
Россия

Re: Скрипты для On-Line сервисов

Сообщение DarkDiver »

В GPSMаpЕdit используется скрипт для снимков гугл более сложной структуры чем в MGE:

Код: Выделить всё

.web_map          1

.name             @r8800
.image            GoogleMaps.ico
.class            google-maps-sat
.cache_subfolder  "sat"
.cache2_subfolder ""
.hotkey           Shift+G

.def_version      126
.tile_referer     https://maps.google.com/
.tile_size        256
.tile_ext         .jpg
.tile_header      "Accept: */*"
;.tile_header      "Accept-Language: en"
.tile_header      "Accept-Encoding: gzip, deflate"

; Max bitrate, in kbits/s. 0 means no limit.
.limit_rate       500

; Period of authorization, in munutes.
.auth_period      30

.include_script   StdLib.js
.include_script   ProjGoogle.js
.script           JScript
////////////////////////////////////////////

function OnStart () {
        WebMap.Browse ("root", "https://maps.google.com/", true);
}

var m_cMirrorServers = 2;
var m_strCookieKH = "";

function OnPageComplete (_strBrowser, _strURL, _pHTMLDocument2, _RawData) {
        if (_strBrowser == "root" && _strURL == "https://maps.google.com/") {
                var strScripts = _ExtractScripts (_pHTMLDocument2);
                strScripts = strScripts.replace (/\s/, "");
                strScripts = strScripts.replace (/'/,  "\"");

                var matchRequestPattern = strScripts.match (/"https:\/\/khms0.google.com\/kh/);
                if (matchRequestPattern != null) {
                        //
                        // Determine version.
                        //
                        var strPostRequestPattern = strScripts.substr (matchRequestPattern.lastIndex, 256);
                        strPostRequestPattern = unescape (strPostRequestPattern);
                        strPostRequestPattern = WebMap.UndecorateCStringLiteral (strPostRequestPattern);
                        var matchVer = strPostRequestPattern.match (/v=[^&"]*/);
                        if (matchVer != null) {
                                var strVer = strPostRequestPattern.substr (matchVer.index + 2, matchVer.lastIndex - matchVer.index - 2);
                                WebMap.SetVersion (strVer);
                        } else {
                                WebMap.Log ("Failed to determine version!");
                        }

                        //
                        // Determine the number of mirror servers.
                        //
                        if      (strScripts.search (/"https:\/\/khms3.google.com\/kh/) != -1) m_cMirrorServers = 4;
                        else if (strScripts.search (/"https:\/\/khms2.google.com\/kh/) != -1) m_cMirrorServers = 3;
                        else if (strScripts.search (/"https:\/\/khms1.google.com\/kh/) != -1) m_cMirrorServers = 2;
                        else if (strScripts.search (/"https:\/\/khms0.google.com\/kh/) != -1) m_cMirrorServers = 1;
                        else
                                WebMap.Log ("Failed to determine number of mirror servers!");

                        WebMap.Log ("Mirror servers = " + m_cMirrorServers);
                }

                //
                // Determine cookies (not used now).
                //
                var matchCookieKH = strScripts.match (/"fzwq[^"]*/);
                if (matchCookieKH != null) {
                        m_strCookieKH = strScripts.substr (matchCookieKH.index + 1, matchCookieKH.lastIndex - matchCookieKH.index - 1);
                        WebMap.Log ("CookieKH = " + m_strCookieKH);
                }

                var strCookiePID = WebMap.GetCookie ("http://maps.google.com/", "");
                WebMap.Log ("CookiePID = " + strCookiePID);

                WebMap.SetReady ();
        }
}

function GetMaxLevel () {return 21;}
function GetMinLevel () {return 0;}

function MakeTileURL (_x, _y, _level, _version) {
        var cMirror = ((_x + _y*2) % m_cMirrorServers);
        var strSecureWord = "Galileo";
        var strSpecial = (_y >= 10000 && _y < 100000) ? "&s=" : "";
        return "https://khms" + cMirror + ".google.com/kh/v=" + _version + "&src=app&x=" + _x + strSpecial + "&y=" + _y + "&z=" + _level + "&s=" + strSecureWord.substr (0, (3*_x + _y) & 0x7);
}
Bо многих местах этот скрипт грузит более детальные снимки чем тот, который используется в MGE.
К сожалению моих знаний не хватает, чтобы адаптировать этот скрипт для MGE. Поэтому прошу помочь.
http://john.bdk.com.ru
Аватара пользователя
Fencer_Silver
Разработчик
Разработчик
Сообщения: 922
Зарегистрирован: 06 фев 2012, 16:00
Откуда: Украина
Настроение:
Контактная информация:
Украина

Re: Скрипты для On-Line сервисов

Сообщение Fencer_Silver »

DarkDiver писал(а):В GPSMаpЕdit используется скрипт для снимков гугл более сложной структуры чем в MGE:

Bо многих местах этот скрипт грузит более детальные снимки чем тот, который используется в MGE.
К сожалению моих знаний не хватает, чтобы адаптировать этот скрипт для MGE. Поэтому прошу помочь.
Ответ:
dr.b писал(а):Обновление гуглоспутника до 126 версии . Зоны обновлений:
http://mw1.gstatic.com/mw-earth-vectord ... Update.kmz
В этом скрипте используется версия - 126.
В нашем, DAT файле используется 123

http://khm1.google.com.ua/kh/v=123

Замените на http://khm1.google.com.ua/kh/v=126

Следим!

Не забываем после замены - удалить или заархивировать старый кеш.
DarkDiver
Бета тестер
Бета тестер
Сообщения: 363
Зарегистрирован: 06 мар 2012, 04:31
Контактная информация:
Россия

Re: Скрипты для On-Line сервисов

Сообщение DarkDiver »

Версию я разумеется поменял, кэш почистил.
Специально сделал для ГМЕ дополнительный скрипт как в МГЕ (с базовым url "http://khm1.google.com.ua/kh/v=126").

Код: Выделить всё

.web_map         1

.name            "Google Sat 126"
.image           GoogleSat2.ico
.class           GoogleSat2
.cache_subfolder GoogleSat2
.hotkey          Shift+S

.def_version     ""
.tile_referer    https://maps.google.com/
.tile_size       256
.tile_ext        .jpg

.include_script  ProjGoogle.js
.script          JScript
////////////////////////////////////////////

function OnStart () {WebMap.SetReady ();}
function OnPageComplete (_strBrowser, _strURL, _pHTMLDocument2, _RawData) {}

function GetMaxLevel () {return 18;}
function GetMinLevel () {return 0;}

function MakeTileURL (_x, _y, _level, _version) {
        var rn;
        var substr;
        var zoom;
        var strSecureWord = "Galileo";
        rn=Math.floor(Math.random() * 4);
        substr=strSecureWord.substr (0, (3*_x + _y) & 0x7)
        zoom=_level;
        return "http://khm1.google.com.ua/kh/v=126"+"&x="+_x+"&y="+_y+"&z="+zoom+"&s="+substr
}
И этот скрипт грузит разные снимки по сравнению со встроенным скриптом из ГМЕ. Судя по всему в ГМЕ скрипт анализирует несколько кешей гугл, в том числе кеш с зимними снимками и когда нет детальных летних снимков, то подгружаются более детальные зимние - как то так...

Если надо, могу скриншоты сделать для примера.
http://john.bdk.com.ru
Аватара пользователя
Fencer_Silver
Разработчик
Разработчик
Сообщения: 922
Зарегистрирован: 06 фев 2012, 16:00
Откуда: Украина
Настроение:
Контактная информация:
Украина

Re: Скрипты для On-Line сервисов

Сообщение Fencer_Silver »

Для того, что бы написать именно такой скрипт, надо добавить (зарегистрировать) новые функции в наш Pascal Script.
Ответить