На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Октытие карты YandexSat

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Октытие карты YandexSat
 
Приветствую!

ГИС Конструктор для Qt Designer x64 (версия 12.5.2), ОС Astra Linux

Пытаюсь открыть спутниковую карту Yandex при помощи mapOpenAnyData. В wmslist_ru.xml прописал параметры прокси и при открытии карты
Код
WMTS#IP=http://sat01.maps.yandex.net/tiles?l=sat&v=1.40.0&ID1=YandexSat&Name1=Yandex Спутник&Projection=EPSG:3395
вижу в wireshark, что запрос до yandex доходит и он возвращает ошибку.
Попробовал добавить слой в ГИС Оператор (в 11 и 12 версии), он долго думает, потом добавляет слой, но ничего не рисует. В параметрах подключенных данных увидел, что в имени добавлен параметр Type=UTMS.
Теперь при попытке открытия карты
Код
WMTS#Type=UTMS&IP=http://sat01.maps.yandex.net/tiles?l=sat&v=1.40.0&ID1=YandexSat&Name1=Yandex Спутник&Projection=EPSG:3395
возвращается ошибка 60006

Что мне надо сделать чтобы открыть карту?


С уважением,
Матвеев П.В.
 
Добрый день. У вас некорректно указана строка подключения, добавлены экранирующие символы языка xml.
Вот корректная строка подключения
WMTS#Type=UTMS&IP=http://sat01.maps.yandex.net/tiles?l=sat&v=1.40.0&ID1=YandexSat&Name1=Yandex Спутник&Projection=EPSG:3395
 
Приветствую!

Да, опечатался в строке подключения (она у меня в xml хранится). Конечно, я пытаюсь открыть именно

Код
WMTS#Type=UTMS&IP=http://sat01.maps.yandex.net/tiles?l=sat&v=1.40.0&ID1=YandexSat&Name1=Yandex Спутник&Projection=EPSG:3395
но не получается.
в wmslist_ru.xml прописано:
Код
<?xml version="1.0" encoding="UTF-8"?>
<Geoportal xmlns:ows="http://www.opengis.net/ows/1.1">
   <InternetConnect>
                <Url1><![CDATA[https://ya.ru/]]></Url1>
        </InternetConnect>
<Defines>
   <!--Тип алгоритма поиска данных на сервере-->
   <Algorithm>
      <UTMSType Name="GOOGLE" Value="0"/>
      <UTMSType Name="YAHOO" Value="1"/>
      <UTMSType Name="OPENSTREETMAP" Value="2"/>
      <UTMSType Name="VIRTEARTH" Value="3"/>
      <UTMSType Name="YANDEX" Value="4"/>
      <UTMSType Name="KOSMOSNIMKI" Value="5"/>
      <UTMSType Name="PROTECTEDPLANET" Value="6"/>
      <UTMSType Name="ROSREESTR" Value="7"/>
      <UTMSType Name="ESRI" Value="8"/>
      <UTMSType Name="OSM" Value="9"/>
      <UTMSType Name="GOOGLEHYBRYD" Value="10"/>
      <UTMSType Name="WIKIMAPIA" Value="11"/>
      <UTMSType Name="MAPSFORFREE" Value="12"/>
      <UTMSType Name="YANDEXTRAFF" Value="13"/>
      <UTMSType Name="YANDEXNAROD" Value="14"/>
      <UTMSType Name="NAVITEL" Value="15"/>
      <UTMSType Name="MAIL" Value="16"/>
      <UTMSType Name="MAILSAT" Value="17"/>
      <UTMSType Name="NOKIANAVTEQ" Value="18"/>
      <UTMSType Name="NOKIA" Value="19"/>
      <UTMSType Name="ROSKOSMOS" Value="20"/>
      <UTMSType Name="GENSHTAB" Value="21"/>
      <UTMSType Name="UKORTHO" Value="22"/>
      <UTMSType Name="VEGA" Value="23"/>
      <UTMSType Name="VEGAFIRE" Value="24"/>
      <UTMSType Name="YR" Value="25"/>
      <UTMSType Name="NEWUK" Value="26"/>
      <UTMSType Name="NEWUKRAZGR" Value="27"/>
      <UTMSType Name="ROSREESTRCADASTR" Value="28"/>
      <UTMSType Name="VISICOM" Value="29"/>
      <UTMSType Name="EATLAS" Value="30"/>
      <UTMSType Name="EATLASHIBR" Value="31"/>
      <UTMSType Name="UKOBZOR" Value="32"/>
      <UTMSType Name="FLIGHTRADAR" Value="33"/>
   </Algorithm>
   <!--Стандарт доступа к данным-->
   <PortalStadndart>
      <Type>WMS</Type>
      <Type>WMTS</Type>
      <Type>WFS</Type>
      <!--Стандарт доступа к любому геопорталу-->
      <Type>UTMS</Type>
      <!--Подтип доступа к геопорталу-->
      <SubType>TMS</SubType>
      <SubType>TMSGEO</SubType>
      <SubType>NOCAP</SubType>
   </PortalStadndart>      
</Defines>
 <Cache>
    <Path><![CDATA[/home/user/maps-cache/]]></Path>
 </Cache>
<RepeatDegree>180</RepeatDegree>
<Portal>
        <Params>
            <!--Файл обновления>
            <UpdateFile>
                <![CDATA[http://www.gisinfo.net/geoportal/wmslist.xml]]>
            </UpdateFile-->
            <!--Использовать ли прокси? 0 - нет 1 - да-->
            <UseProxy>1</UseProxy>
            <!--Адрес прокси сервера-->
            <Proxyserver Url="http://proxy.***.ru"/>
            <!--Порт-->
            <Port>port</Port>
            <!--Имя пользователя-->
            <User>PMatveev</User>
            <!--Пароль-->
            <Password>*****</Password>
            <!--Максимальное время ожидания соединения с сервером в милисекундах-->
            <ConnectTimeout>2000</ConnectTimeout>
            <!--Максимальное время ожидания загрузки 1 тайла в милисекундах-->
            <ReadTimeout>20000</ReadTimeout>
            <UpdateFlag>0</UpdateFlag>
            <FeatureCount>0</FeatureCount>     
        </Params>
</Portal>
</Geoportal>
при запуске на 13ой версии ГИС Конструктор в логах:
Код
18:31:13    131033114152768 2020-07-02 18:31:13
     18:31:13    131033114152768 Open log - mapopen.log
     18:31:13    131033114152768 Encoding = "UTF-8"
     18:31:13    131033114152768 Mapaccess library version: 20200229
>>>> 18:31:13    131033114152768 InitLibrary  CurlConnect  lpfn_curl_global_init SSL ENABLED
     18:31:13    131033114152768 CurlConnect  SetParametersToCurlHandler  lpfn_curl_easy_setopt SUCCES CURLOPT_MAXREDIRS 30
     18:31:13    131033114152768 CurlConnect  SetParametersToCurlHandler  lpfn_curl_easy_setopt SUCCES CURLOPT_CONNECTTIMEOUT_MS 2000
     18:31:13    131033114152768 CurlConnect  SetParametersToCurlHandler  lpfn_curl_easy_setopt SUCCES CURLOPT_TIMEOUT_MS 20000
     18:31:13    131033114152768 CurlConnect  SetParametersToCurlHandler  lpfn_curl_easy_setopt SUCCES CURLOPT_PROXY
     18:31:13    131033114152768 CurlConnect  Get  lpfn_curl_easy_perform https://ya.ru/
И все.
Собственно, код, которым я пытаюсь открыть карту:
Код
int main(int argc, char **argv) {
    if (argc < 2) {
        qDebug() << "no map spec";
    }

    QApplication app(argc, argv);
    QStringList args = app.arguments();

    qDebug() << args[1];
    QString mapName(args[1]);

    QString workDir("/tmp/conf");
    mapSetPathShellUn((const WCHAR*) workDir.constData());
    QString log("/tmp/mapopen.log");
    mapOpenDiagnostics((const WCHAR*) log.constData());
    HMAP hmap = mapOpenAnyData((const WCHAR*) mapName.constData());
    if (hmap != 0) {
        qDebug() << "opened";
        mapCloseData(hmap);
    } else {
        qDebug() << "mapOpenAnyData error";
    }
}
Может я лишнего из wmslist.xml удалил? или прокси не правильно указал? но если в строке подключения нет Type=UTMS, то до яндекса доходит, значит с прокси все хорошо.


С уважением,
Матвеев П.В.
 
Есть предположение, что из за маленького таймаута подключения - 2сек соединения просто обрывается. Увеличте время до 30 сек.
Диагностику о прерывании соединения добавим.
 
Приветствую!

Увеличил таймаут - результат не изменился. И программа очень быстро возвращает ошибку открытия. wireshark не показывает никаких обращений. Есть ощущение, что ошибка связана не с timeout, а с обработкой Type=UTMS или разбором строки подключения.

С уважением,
Матвеев П.В.
 
Здравствуйте.

Попробуйте выполнить запрос фрагмента через прокси с помощью утилиты curl. Привожу пример команды для выполнения запроса:
Код
curl -o /tmp/1.png --proxy-anyauth PROXY_IP:PROXY_PORT "http://sat04.maps.yandex.net/tiles?l=sat&v=1.40.0&y=620&x=320&z=10"
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности