gifts2017

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

Опубликовал Ars (ars) в раздел Программирование - Практика программирования

Работа с картами яндекса и определение попадания точки в контур на плоскости.

Обработка приводит пример работы с картами яндекса.

Можно постоить свои области на карте и в последующем использовать их для определения попадания адреса в определенный район.

Расчет попадания точки в область использован из http://habrahabr.ru/post/125356/

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Пример работы с областями на яндексе
.epf 10,31Kb
17.12.12
48
.epf 10,31Kb 48 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Яков Коган (Yashazz) 18.12.12 19:15
Где-то я фрагменты этой обработки уже видел. И "ДекодироватьURL", и особенно функцию "hex"... Автор, не забывай указывать первоисточник, которым пользовался, плиз. :)

А так - интересно своей работой с YMapsML.
2. Ars (ars) 18.12.12 20:32
(1) Yashazz, это не основные особенности и если бы я помнил где их взял :)) я бы конечно указал. Основа создавалась давно, последние изменения - это комплексный анализ. Изначально определение координат было основано на географических схемах 1С, но как показала практика в 1С попадание в область рассчитывается не так как у всех :)). Там область - это окружность в центре фигуры. И если фигуры сложные, то точка оказывается сразу в нескольких областях.
3. Дмитрий (gosizo) 16.09.13 09:11
Яндекс карта. допустим я поставил несколько меток, можно ли как-то смасштабировать карту (не руками, а программно), что бы масштаб был максимально увеличен и в тоже время все метки были видны (в границах карты)?
4. Ars (ars) 16.09.13 16:56
(3) gosizo
Яндекс карта. допустим я поставил несколько меток, можно ли как-то смасштабировать карту (не руками, а программно), что бы масштаб был максимально увеличен и в тоже время все метки были видны (в границах карты)?

Мне кажется, это у же на java нужно писать + yandex maps api.
Вот пример создания карты
http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/Map.xml
+
Установка размеров карты
http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/Map.xml#setBounds

По сути тебе нужно координаты (левый верх, правый низ) свои найти и передать в setBounds
5. Дмитрий (gosizo) 17.09.13 11:33
спасибо за информацию! Не могу сообразить как мне получить: "нужно координаты (левый верх, правый низ)" - у меня только список адресов в текстовом виде (например Москва Шаболовка 38 и т.д) Существует ли функция которая вернет адрес в виде координат ?
6. Ars (ars) 17.09.13 11:56
спасибо за информацию! Не могу сообразить как мне получить: "нужно координаты (левый верх, правый низ)" - у меня только список адресов в текстовом виде (например Москва Шаболовка 38 и т.д) Существует ли функция которая вернет адрес в виде координат ?

В этой обработке же все есть, в поле адрес - набираем адрес, жмем получить координаты.
Другой вариант через java api yandex-а - http://api.yandex.ru/maps/doc/geocoder/desc/concepts/About.xml
PS:хотя в обработке как раз это и используется.
7. Дмитрий (gosizo) 27.09.13 09:51
(6) спасибо! Буду пробовать
8. Дмитрий (gosizo) 27.09.13 12:56
(6) получить координаты точек получилось, пытаюсь масштабировать - выдает ошибку "Объект не поддерживает свойство или метод getCenter". Пробовал делать так: в скрипт добавил функцию :
  function Mashtab(d1,s1,d2,s2)  	{
     map.setBounds([[d1,s1], [d2,s2]], {
        checkZoomRange: true,
     callback: function(err) {
         if (err) {
             // Не удалось показать заданный регион
             // ...
         }
     }
           });    
     }   
...Показать Скрыть


в уже сформированную карту с метками передаю параметры масштабирования:
&НаКлиенте
Процедура Маштабировать(Команда)
	Широта1 = "62,26389300";
	Долгота1 = "74,48290400";
	Широта2 = "55,80956500";
	Долгота2 = "37,71481500";
	
		Элементы.ТекстHTML.Документ.parentWindow.eval(
		"Mashtab(""" + Широта1 + """, """ + Долгота1 + """, """ + Широта2 + """," + Долгота2 + ")");
КонецПроцедуры
...Показать Скрыть


что я делаю не правильно?
9. Ars (ars) 27.09.13 18:01
(8) gosizo,
Широта1 = "62,26389300";
Долгота1 = "74,48290400";
Широта2 = "55,80956500";
Долгота2 = "37,71481500";

В значениях точно должны быть запятые?

НУ и это не ко мне уже, я чесно говоря в java слабо разбираюсь.
Но нужно во первых посмотреть тип объекта - методами которого пользуешься. Может тебе яндекс другой какой то объект возвращает.
10. Fred (Aspirant) 30.10.13 15:46
Можно ли выделить несколько флажков и передать в 1С их координаты (лучше адрес дома)?
Вышлите пожалуйста на magefred@mail.ru обработку, очень хочется ее потестить
11. Андрей Титов (gfoods) 02.06.15 09:56
Здравствуйте. По какой-то причине обработка выдает ошибку.
Использую файл file://C:/Users/user1/AppData/Local/Temp/v8_A065_6e.xml
Пока Чтение.Прочитать() Цикл
по причине:
Ошибка разбора XML: - [6,3]
Фатальная ошибка:
Expected end of tag 'hr' SystemId: file://C:/Users/user1/AppData/Local/Temp/v8_A065_6e.xml
[/1C-CODE]


В временном файле XML оказалось вот что:
<ht ml>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.6.2</center>
</body>
</html>
...Показать Скрыть
12. Андрей Титов (gfoods) 02.06.15 13:56
Спасение утопающих, дело рук самих утопающих.
Все дело в том, что Яндекс перешел на защищенное HTTPS соединение.
Для того чтоб обработка корректно сработала необходимо создавать защищенное соединение:

	ssl = Новый ЗащищенноеСоединениеOpenSSL(
                Новый СертификатКлиентаWindows(
                                СпособВыбораСертификатаWindows.Выбирать),
                Новый СертификатыУдостоверяющихЦентровWindows()); 


	НТТР = Новый HTTPСоединение(АдресСервера,443,,,ПроксиСервер,3,ssl);
13. Dima Komar (kalevra67) 29.06.15 03:41
(12) gfoods, Большое спасибо, сам долго мучился, пока не наткнулся на ваш комментарий.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа