Аналитика
http://www.geosystema.net/forum/

Получение адреса из Яндекс.карты (обратное геокодирование)
http://www.geosystema.net/forum/viewtopic.php?f=1&t=19634
Страница 1 из 1

Автор:  fendak [ 29 апр 2016 11:39 ]
Заголовок сообщения:  Получение адреса из Яндекс.карты (обратное геокодирование)

Цікава функція, але видає незрозумілу помилку

Вложения:
2016-04-29_124236.jpg
2016-04-29_124236.jpg [ 14.17 Кб | Просмотров: 12497 ]

Автор:  Dmitry_Zolotar [ 29 апр 2016 12:34 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

До повідомлення додав бібліотеки, їх в корінь Digitals потрібно вкинути.

Автор:  fendak [ 29 апр 2016 18:28 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

Все одно щось не працює дана функція. Весь час повертає 0.
Я вже пробував по різних населених пунктах в різних регіонах України. По кожному задавав датуми у властивостях карти. Все одно результат 0.

От, для прикладу, по Київській області прикріпив файл, по якому пробував формувати.

І, за одно, інше питання. Чи планується в майбутньому аналогічна функція по інших картах, крім Яндекса? Зокрема, цікавить OpenStreetMap та Google,

Вложения:
Noname4.dmf [18.76 Кб]
Скачиваний: 673

Автор:  Dmitry_Zolotar [ 04 май 2016 15:30 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

Скоріш за все скрипт "роздільникозалежний".
Спробуйте цей. Має бути файл Digitals\Library\ReplaceComma.dsf

$Datum=@Map.Datum
@if $Datum= then @Break Задайте датум карты
$SelL=@Map.Selected.List
@Text[1].Text $SelL
$LC=@Text[1].Count
@if $LC=0 then @Break Нет помеченных объектов
$I=0
@Progress.Start $LC Загрузка
%Loop
$I=$I+1
$MON=@Text[1].Line[$I]
$XYZ=@Map.Object[$MON].Centroid
$X=@StringPart 1 $XYZ
$Y=@StringPart 2 $XYZ
$X=%Library.ReplaceComma $X
$Y=%Library.ReplaceComma $Y

$S=@Map.GetYandexMapInfo $X $Y
$S=@UTF8ToString $S
@if $S=0 then @Goto %Next
@Text[2].Text $S
$LC2=@Text[2].Count
$J=1
%Loop2
$J=$J+1
$S=@Text[2].Line[$J]
$ParamName=@StringPart 1=$S
$ParamVal=@StringPart 2=$S
$LID=@Map.Object[$MON].Layer
$P=@Map.Parameters.FindByName $ParamName
@if $P<>0 then @Goto %Continue
$P=@Map.Parameters.Add 757500$J 5 $ParamName
%Continue
$VP=@Map.Layers.GetValidParameters $LID
@Map.Layers.SetValidParameters $LID $VP $P
@Map.Object[$MON].Parameter[$P] $ParamVal
@if $J<$LC2 then @goto %Loop2
%Next
$Canceled=@Progress.Canceled
@if $Canceled=1 then @Break
@Progress.StepBy
@if $I<$LC then @Goto %Loop
@Progress.Stop
@Window.Refresh

Изображение

Автор:  fendak [ 05 май 2016 11:59 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

і все одно не працює, повертає завжди значення 0 :) і параметри не створюються

Відгукніться, в когось ще дана функція не працює/працює?

Хоча, я пробував вже на різних комп'ютерах

Автор:  voha [ 05 май 2016 13:26 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

fendak писал(а):
...Відгукніться, в когось ще дана функція не працює/працює?
На Windows 10, лише коли libeay32.dll і libssl32.dll закинув у System32 отримав повідомлення Ordinal Not Found:
Вложение:
Message.jpg
Message.jpg [ 9.22 Кб | Просмотров: 12439 ]
Думаю ще вказану бібліотеку треба. Попередні дві працюють без реєстрації в системі?

P.s. Бібліотеку ssleay32.dll скачав - помилка Ordinal Not Found пропала, але функція повертає 0.

Автор:  Dmitry_Zolotar [ 05 май 2016 14:22 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

fendak писал(а):
і все одно не працює, повертає завжди значення 0 :) і параметри не створюються

Відгукніться, в когось ще дана функція не працює/працює?

Хоча, я пробував вже на різних комп'ютерах

Додайте в скрипт: першу строку @OpenLog, останню строку @CloseLog c:\log.txt
Запустіть скрипт.
Надішліть c:\log.txt на help@vingeo.com або викладіть цей файл тут.

Автор:  voha [ 05 май 2016 14:33 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

Dmitry_Zolotar писал(а):
...Надішліть c:\log.txt на help@vingeo.com або викладіть цей файл тут.
Щоправда розділювач дробової частини приводиться до системного, а не до крапки.
Але ж скрипт:
$S=@MAP.GETYANDEXMAPINFO 5581295.854 3371425.560
@Break $S
також видає 0.

P.s. Після зміни системного розділювача в налаштуванні системи з коми на крапку - запрацювали і скрипт, і вказана команда. Правда заповнюються лише параметри province і country, хоча об'єкт з центром на будівлі з номером в карті Yandex.

Функція повертає:
7
province=Київ
province=Київська область
country=Україна

Вложения:
Log.txt [3.21 Кб]
Скачиваний: 745

Автор:  Dmitry_Zolotar [ 05 май 2016 16:30 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

voha писал(а):
.
Функція повертає:
7
province=Київ
province=Київська область
country=Україна


Так, щось в Києві адреса не така як потрібно, немає SubAdministrativeArea. Як ви там без нього живете? :D

Автор:  voha [ 05 май 2016 16:35 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

Але, виходить причина в системному десятковому розділювачі?

Автор:  klaid [ 05 май 2016 17:57 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

Вложение:
.jpg
.jpg [ 15.49 Кб | Просмотров: 12425 ]


Вложения:
.jpg
.jpg [ 15.49 Кб | Просмотров: 12425 ]

Автор:  fendak [ 05 май 2016 21:21 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

дійсно, змінив системний розділювач з коми на крапку і запрацювало. Видно, крапка потрібна десь ще, окрім власне скрипту, для тих же бібліотек, можливо?

П.С. Прикольна функція , тепер навіть вулицю і номер будинку не треба вводити, все автоматично :D

Автор:  voha [ 05 май 2016 22:17 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

Не думаю, що розробники залишать обов'язковою умовою роботи функції: системний розділювач - крапка. Ймовірно справа у перерахунку координат у тілі скриптової функції (обов'язково крапка), але далі Yandex оперує з системним розділювачем. Скоріш за все бібліотекам всеодно: крапка чи кома, а якщо не всеодно - то використовують вони системний розділювач.

Автор:  Dmitry_Zolotar [ 06 май 2016 11:05 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

В новій версії позбавляємось від "роздільникозалежності". Також корректно відпрацьовується м. Київ.
Можливі проблеми зі з'єднанням через проксі поки не відтворені, тому і не виправлені. Через пряме з'єднання має працювати.

Автор:  klaid [ 06 май 2016 15:38 ]
Заголовок сообщения:  Re: Получение адреса из Яндекс.карты (обратное геокодирование)

Жалко що змінили назви вулиць, а в яндексі старі назви(((

Страница 1 из 1 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/