Координаты по списку адресов - IT Новости
Microclimate.su

IT Новости
129 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Координаты по списку адресов

Сервис показа списка адресов на карте

Населенный пункт:
Только если населенный пункт был найден в адресе и он правильный
Привязывать, если населенный пункт отсутствует в адресе, потребовалось подставить населенный пункт по умолчанию (например, для карты СПб.ЛО таким населенный пункт является Санкт-Петербург).
Населенный пункт был найден в адресе, однако он оказался неправильным (т.е. остальная часть адреса ему не соответствовала), либо населенный пункт отсутствовал в адресе и подставленный вместо него нас.пункт по умолчанию тоже не подошел – потребовалось изменить населенный пункт на произвольный, но такой, чтобы нашлось соответствие.

Привязка к улице
Только если название улицы в адресе точно совпало с названием в адресной базе.
Привязывать, если название улицы совпало после перестановки слов в названии (например, вместо «Малая Конюшенная» было указано «Конюшенная Малая»).
Название совпало после того, как было подставлено слово слева (например, вместо «ул. Генерала Карбышева» было указано просто «ул. Карбышева»).
Название совпало после того, как было подставлено слово справа.
Если нет улицы, то есть поиск велся только по региону, без привязки к улице и дому

Привязка к корпусу
Только если корпус был найден в адресе и он правильный; либо корпус был не найден в адресе, и в адресной базе есть дом без корпуса
Привязывать, если указанного в адресе корпуса нет, была проведена замена.
Указанного в адресе дома нет, был найден ближайший по номеру дом той же четности (отличающийся не более чем на 10).
Нет дома, то есть поиск велся только по региону, без привязки к улице и дому

Введите в этом поле адреса, по одному адресу на строку, которые вы хотите привязать.

Здесь можно проложить маршрут, проложить несколько маршрутов, рассчитать расстояния, поставить объекты на карте.

Удобный инструмент для транспортной логистики.

Показать список адресов на карте

С 1 октября 2012г. мы ввели в эксплуатацию новейший уникальный сервис в Интернете – показ списка адресов на карте.

Это единственный известный нам удобный сервис, который позволяет большой список адресов (например — из файла EXCEL) легко показать на карте, и узнать географические координаты всех точек.

Воспользоваться этим сервисом исключительно просто.

Нужно сформировать файл с адресами следующим образом:

Адрес – адрес подряд в произвольной форме, например — Санкт-Петербург, Невский пр. д.155 корпус 3, или Невский 155/3

Адрес должен быть записан обязательно в первом столбце и обязательно в ОДНОМ столбце целиком. Если у вас адрес в нескольких столбцах – нужно просто слить их в один.

Название точки (имя точки) – если его не будет, то система ставит порядковый номер точки.

Описание – любой текст – описание точки, оно переносится в описание точки на карте.

Пример заполнения таблицы:

Невский пр. д.155 корпус 3,МагазинПросто любое описание
Тихвин, ул. Ленина, д. 15КулинарияСовершенно любое описание

Вся сила, мощь и преимущество нового сервиса состоит в том, что таких адресов может быть очень много. Система обрабатывает все адреса и показывает вам процесс привязки адресов к карте.

Совершенно очевидно, что объективно система не всегда сможет привязать адреса к карте. Иногда привязать адреса невозможно.

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

Читать еще:  Как поставить переадресацию на телефоне самсунг

Ну и конечно, программа не сможет правильно привязать адрес, если он указан неверно, например «от ларька налево за углом».

А результаты привязки программа выдает в виде статистики.

Также программа выдает результирующий EXCEL файл, куда она добавляет два столбца с координатами (широта и долгота).

Кроме того, в дополнительный столбец выводятся коды привязки адреса.

Эти коды привязки адреса – очень важный показатель. С помощью этих кодов вы можете выбрать только те адреса, которые наиболее правильно привязались с вашей точки зрения.

Например, если программа не нашла конкретный корпус, то она будет искать дом с таким же номером, но без корпуса. И если она найдет такой номер дома, то она выдаст соответствующий код привязки.

Выводы.

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

Механизм уникален, т.к. в Интернете нет подобного механизма по удобству и по возможностям обработки сразу больших массивов адресов из файла.

Механизм весьма востребован, т.к. мы неоднократно встречали в Интернете запросы на такой механизм – показать именно большой список адресов на карте.

Механизм имеет неоспоримое преимущество перед google и yandex – потому, что может сразу обрабатывать целые списки адресов, а google и yandex обрабатывают по одному адресу или требуют писать отдельную программу, с использованием своего интерфейса.

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

Этот сервис можно искать по различным ключевым словам, например:

все адреса на карте;

список адресов на карте;

интернет сервис размещения на карте большого количества адресов точек;

отметить много адресов точек на карте;

отметить адреса на карте;

Санкт-Петербург Москва карта импорт адресов Excel;

показать адреса из базы на карте;

показать адреса из файла на карте;

поиск с указанием нескольких адресов на карте;

поиск с указанием многих адресов на карте;

множественный поиск адресов на карте;

одновременный поиск нескольких адресов на карте;

привязать много адресов к карте;

показать много адресов на карте;

показать много адресов из файла на карте.

Код статуса – трехзначное число, где:
Первая цифра (сотни): статус привязки к населенному пункту
Вторая цифра (десятки): статус привязки к улице
Третья цифра (единицы): статус привязки к номеру корпуса.

Привязка к нас.пункту:
0 – норма, нас.пункт был найден в адресе и он правильный.
1 – населенный пункт отсутствует в адресе, потребовалось подставить нас.пункт по умолчанию (например, для карты спбло таким нас.пунктом является Санкт-Петербург).
2 – населенный пункт был найден в адресе, однако он оказался неправильным (т.е. остальная часть адреса ему не соответствовала), либо населенный пункт отсутствовал в адресе и подставленный вместо него нас.пункт по умолчанию тоже не подошел – потребовалось изменить населенный пункт на произвольный, но такой, чтобы нашлось соответствие.

Привязка к улице
0 – норма, название улицы в адресе точно совпало с названием в адресной базе.
1 – название совпало после перестановки слов в названии (например, вместо «Малая Конюшенная» было указано «Конюшенная Малая»).
2 – название совпало после того, как было подставлено слово слева (например, вместо «ул. Генерала Карбышева» было указано просто «ул. Карбышева»).
3 – название совпало после того, как было подставлено слово справа.
4-8 – зарезервировано
9 – нет улицы, то есть поиск велся только по региону, без привязки к улице и дому

Читать еще:  Переадресация на мобильный

Привязка к корпусу
0 – норма, корпус был найден в адресе и он правильный; либо корпус был не найден в адресе, и в адресной базе есть дом без корпуса
1 – указанного в адресе корпуса нет, была проведена замена.
2 – указанного в адресе дома нет, был найден ближайший по номеру дом той же четности (отличающийся не более чем на 10).
3-8 – зарезервировано
9 – нет дома, то есть поиск велся только по региону, без привязки к улице и дому

Ваш браузер устарел, пожалуйста обновите ваш браузер пройдя по ссылке www.microsoft.com/download

Класс-обработка “Работа с картами Яндекс”

Внимание! Перед использованием обработки следует ознакомиться с условиями использования сервиса Яндекс.Карты

Вступление

Предлагаем Вашему вниманию класс-обработку, для построения маршрутов и указания меток с использованием Яндекс карт.
Обработку можно использовать в любой конфигурации 1С.
Для использования обработки потребуются лишь базовые знания по программированию в 1С и креативная идея, где этот функционал можно использовать.
Просто добавьте обработку “РаботаСКартамиЯндекс” в состав своей конфигурации и вы сможете воспользоваться простыми методами работы с картами.

Всё это уже много раз было

Для чего публикуется очередной пример работы с Яндекс-картами? — спросите вы.

Дело в том, что аналогичные решения, представленные в Инфостарте, либо перестали работать, (в связи с переходом Яндекс Карт на API 2.0), либо работают, но не в тонком клиенте (например здесь почитайте комментарии), либо предлагают решение с получением ключа карт. Во многих публикациях для отображения карт используется «Поле HTML документа» на форме 1С. Этот объект уже давно устарел и не поддерживает возможности HTML 5. В итоге, чтобы отобразить страницу на форме 1С приходится долго «плясать с бубном».

Программист, которому впервые дали задание вывести на карту точку будет тратить лишнее время и СтартМани на поиски лучшего варианта, корректировать реестр Windows, как предложено здесь и в итоге столкнётся с тем, что стабильного рабочего варианта найти не удастся.

Мы предлагаем вариант решения, который будет работать везде и без специальных условий. Мы принципиально не используем объект WebBrowser Control, чтобы всё работало всегда и у всех.

Пример 1. Метка на карте

Для добавления метки на карте достаточно знать её координаты.

Результат нажатия на кнопку “Показать метку” будет таким:

Как это работает?

Для кнопки “Показать метку” назначена процедура:

Функция для получения текста HTML:

Все экспортные функции и процедуры обработки описаны вспомогательными комментариями, поэтому будет легко догадаться о назначении параметров.
Функция “ДобавитьМетку” добавляет на карту метку с описанием.
Если необходимо на одной карте показать сразу несколько меток, то функцию “ДобавитьМетку” нужно вызывать несколько раз.
Для отображения результата составленного текста HTML используется процедура “ПоказатьНаКартеНаКлиенте”.

При выполнении этой процедуры в первый раз — появится окно с выбором программы-браузера. После выбора — откроется окно с картой.

Пример 2: Маршрут на карте

Процедура кнопки “Показать маршрут”:

Пример 3: Получение координат из адреса (геокодирование)

Не всегда в типовой базе 1С имеются данные о координатах пункта назначения. Но зато есть адрес, представленный стройкой. Иногда даже заполненный по всем правилам КЛАДР (ФИАС).
Для таких случаев имеется возможность преобразовать строку почтового адреса в координаты: долготу и широту.

Читать еще:  Яндекс адресная книга

Функция “ПолучитьКоординатыПоАдресу” выполняет обращение к сервису геокодирования и разбирает ответ в структуру, содержащую координаты и адрес, для которого были определены координаты.

Пример 4. Расчет длины пути маршрута

Этот пример появился в версии 2.0 нашей обработки.

Эту задачу можно решить тремя способами.

Способ 1 — платный

В API Яндекс имеется такой раздел как Матрица расстояний
Как видно из документации, всё предельно просто. Используя представленную обработку её легко можно доработать с учетом документации.
Достоинства этого способа в том, что всё будет работать на сервере и достаточно быстро.
Недостаток один. Дорого.
Поэтому мы этот способ рассматривать не будем.

Способ 2 — бесплатный, но требовательный

В наборе функций Яндекс карт имеется функция getLength, которая возвращает длину маршрута из объекта Route. Подробнее можно почитать здесь.
Сложность задачи заключается в том, что нужно выполнить чтение страницы HTML средствами 1С после её полной загрузки в браузере и выполнения скрипта JavaScript на загруженной странице.

Это возможно сделать только на клиенте.
Здесь никак не обойтись без поля формы «Документ HTML», о недостатках которого было сказано во вступлении. Нам удалось отобразить карту на форме 1С, указав в заголовках HTML строку

и убрав директиву вначале текста страницы HTML

Длина маршрута записывается скриптом в отдельный тег

Отображение маршрута на карте не реализовано для повышения производительности. В этом примере карта вообще не нужна для отображения, поэтому в своих разработках вам придётся подумать как её скрыть. К сожалению, нерисовать карту нельзя. Длина не вычислится.

Если вынести операцию получения длины на отдельную базу и опубликовать на ней веб сервис, то можно реализовать псевдо вычисление на сервере. База пользователя будет обращаться к веб сервису, передавая в него точки маршрута. После этого каждые n секунд будет опрашивать веб сервис на появление в нем результата вычисления.
В базе, с опубликованным веб сервисом, должен быть всегда запущен клиент.

При получении точек маршрута web-сервис запишет их как входящее задание на вычисление, например, в свой регистр сведений. Клиент каждые m секунд будет опрашивать регистр сведений на получение новых заданий. При появлении таких — берет первое (самое старое) невыполненное задание и начинает рисовать карту на своей форме. После отрисовки — возвращает результат в регистр сведений.
Примерно так:

Способ 3 — возможно, лучше всех

В предыдущем способе формируется текст страницы HTML для выполнения расчёта длины маршрута на клиенте средствами браузера. Этот текст можно попробовать использовать на сервере, применив COM-объект «AltBrowser.Browser». Применив методы простого парсинга можно получить значение из контейнера div и использовать в 1С.

Этот способ в данной статье не рассматривается.

Заключение

Все сложные операции с формированием текста HTML страницы карты и методами взаимодействия с сервисом Яндекс.Карты в нашей обработке имеют открытый код, который всегда можно доработать под свои нужды.

Обработка находится в составе конфигурации. Выложена целая конфигурация, так как в ней находится общая форма с примером использования обработки.

Релиз платформы 1С, на котором тестировали обработку 8.3.10.2561

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector