Имя: Пароль:
1C
 
Присвоение кода близлежащим точкам
, ,
0 ИС-2
 
naïve
12.08.14
16:32
Торговым точками клиентов будет присваиваться определенный код. При сортировке их должно получиться, что рядом будут точки которые находятся рядом с друг другом.

Вот один из вариантов.
Состав координаты = Префикс (номер зоны) + Регион + Номер нас.пункта + Номер улицы + номер дома + номер буквы

Что можно использовать как номер улицы и номер нас. пункта? Код из кладра? Что еще?
1 _fvadim
 
12.08.14
16:35
индексы почтовые
2 ironkrab
 
12.08.14
16:40
А если не улицы а широта и долгота из навигатора?
Ведь иногда улицы весьма закручены и сходу не поймешь что ближе
3 Chum
 
12.08.14
16:45
(1) +1 все гениальное просто
4 ИС-2
 
naïve
12.08.14
17:02
(2) думал. Но почему-то вариант отклонили
5 _fvadim
 
12.08.14
17:05
Вообще задача поставлена некорректно.
Решение "Префикс (номер зоны) + Регион + Номер нас.пункта + Номер улицы + номер дома + номер буквы" некорректно тоже.
6 _fvadim
 
12.08.14
17:08
Точки находятся в соседних домах, а улицы разные (скажем перекрёсток).
В твоём решении точка на этой же улице но на другом конце города ближе, чем в соседнем доме.
7 _fvadim
 
12.08.14
17:09
Ну и вообще списком отсортировать корректно не получится, потому как надо от чего-то плясать.
8 ptiz
 
12.08.14
17:11
Порядок точек должен выстраивать ответственный, если это так важно.
9 МихаилМ
 
12.08.14
17:16
10 Garykom
 
гуру
12.08.14
17:22
(0) берем координаты точек, на них накладываем сетку и получаем... кадастровые номера ))
11 Garykom
 
гуру
12.08.14
17:25
(10)+ но не катит, вообщем надо иначе как то задачу решать если обход/объезд нужен ))
12 _fvadim
 
12.08.14
17:25
(10) не-а, там не по координатам разбиение
13 _fvadim
 
12.08.14
17:26
АА:ВВ:ССРРLL:КК
АА — кадастровый округ.
ВВ — кадастровый район.
ССРРLL — кадастровый квартал.
КК — номер земельного участка.
14 _fvadim
 
12.08.14
17:27
(0) а для чего вообще такая сортировка?
15 Garykom
 
гуру
12.08.14
17:28
(13) дык рядом же соседние )) при сортировке...

исключая случай когда в разные округа попали соседние точки, поэтому и сказал что не катит
16 _fvadim
 
12.08.14
17:30
(15) собственно тот же итог, что и в (0)
надо координатную сетку накладывать и делать как в (9).

только, сдаётся мне, решение проблемы лежит в другой плоскости.
17 Ndochp
 
12.08.14
17:35
(0) Не взлетит. Ты на плоскости, а не на прямой посмотри например на (13)
Точки стоящие рядом друг с другом в соседних округах не отсортируются.
Если координаты брать, то представь себе квадрат ABCD
Рассмотрим А для нее сортировка должна быть
ABDC или ADBC
Для B будет
BACD или BCAD
Теперь выкинем А из рассмотрения:
сортировки из первого пункта (BDC и DBC) резко становятся неправильными.
И это справедливо для любого упорядочения справочника в целом - подмножества, отсортированные по алфавиту могут не удовлетворять требованию.
Так что задача строгого решения не имеет.
18 Garykom
 
гуру
12.08.14
17:53
О придумал задачка то легко решается )) только нужно точное определение что такое

"точки которые находятся рядом с друг другом"?
19 _fvadim
 
12.08.14
17:56
(18) чёт я подозреваю, что там оптимальный маршрут надо построить, только ТС вбросил и молчит.
20 Ndochp
 
12.08.14
18:07
(18) Например рядом это когда некая функция от двух точек (расстояние) не больше, чем в среднем по справочнику для двух произвольных точек.
Для квадрата из (17) твое решение точно подойдет?
21 Ndochp
 
12.08.14
18:08
(19) Да, там как бы не задачу коммивояжера на сортировке кодов решают.
22 _fvadim
 
12.08.14
18:11
(21) я просто не придумал для чего ещё нужна подобная сортировка.
23 ИС-2
 
naïve
13.08.14
11:56
(6) для этого существует ПрефиксЗоны. Город в основном поделен на зоны по улицам
(14) при погрузке товара в машину, рядом стараются класть груз для точек в порядке следования (но в каком порядке куда ехать решает водитель).
24 Garykom
 
гуру
13.08.14
13:45
Срэднее бэри срэднее

В смысле как одну из составляющих можно взять среднее расстояние от точки до всех остальных ))

Тогда у точек рядом эти средние расстояния будут похожи

Но проблема что в эти похожие влезет еще куча левых далеких точек ))
25 Garykom
 
гуру
13.08.14
13:47
(24)+ т.е. это по сути некая хеш-функция
26 ИС-2
 
naïve
13.08.14
14:06
(24) можно растояния поместить в массив и по индексу массива присвоить номер
27 Garykom
 
гуру
13.08.14
14:12
(26) а это уже детали

тут по сути выходит преобразование n мерных координат в (n-1) мерные

в данном случае из двумерных получаем одномерные

понятно что идет потеря информации и нужна точка, точнее линия отсчета - ось на которую и будем проецировать все точки...

да это не обязательно прямая может быть и различная кривая
28 Ndochp
 
13.08.14
15:53
(27) Да не детали это. Вот у тебя точка отсчета - северный полюс. Область проверки - северное полушарие. Определяемые точки - координатная сетка с неким шагом. Тогда у тебя Тайланд будет ближе к Мали, чем к Китаю.
29 Garykom
 
гуру
13.08.14
16:43
(28) угу, зато требования в (0) выполняется " При сортировке их должно получиться, что рядом будут точки которые находятся рядом с друг другом"
30 Garykom
 
гуру
13.08.14
16:44
(29)+ про то что также рядом не должны находиться точки которые далеко друг от друга ничего не сказано ))
31 Ndochp
 
13.08.14
17:35
(30)Зато у тебя сортировка должна получиться "Китай тайланд Ливия Чад", а будет "Китай Ливия Чад Тайланд"
32 lodger
 
13.08.14
17:49
графы с весовыми ребрами не предлагать?
классическая задача курьера же...
33 Ndochp
 
13.08.14
17:51
(32) Не предлагать. В (0) сказано, что нужен статический код для каждой точки. я с (17) пытаюсь доказать, что  на плоскости решения не существует.
34 Фокусник
 
13.08.14
18:03
(0) Лет 8 назад для одного заказчика делал так:
На карту города наносится сетка (достаточно крупная, скажем 1 квадрат = 1 км). Нумеруются квадраты по порядку или по схеме: Х-У. Каждый клиент замеряется: в каком квадрате расположен.
Далее дело техники: зная размеры карты (ширина/высота), зная номер квадрата определить ближайшие квадраты (все 8, вокруг текущего квадрата) и соответственно определить ближайшие "точки" :)

Сейчас, вооружившись GPS, проще координаты замерить. И вычислять расстояния по координатам :)
35 Garykom
 
гуру
13.08.14
18:24
(33) решение предложено, оно работает: хеш-функция (например среднее расстояние до остальных точек)

для квадрата из (17) результат будет у всех один код, т.е. они все рядом

если добавить еще одну точку в стороне (чтобы убрать симметрию) то также можно убедиться что работает
36 Garykom
 
гуру
13.08.14
18:26
(35)+ да есть недостаток, что "неправильно" добавляет в ближайшие точки точки далекие друг от друга

например к тому же квадрату если добавить 2 точки симметрично слева и справа то в результате выйдет что они рядом друг с другом хотя они наоборот максимально далеки...
37 ИС-2
 
naïve
14.08.14
10:24
(28) Обрабатываться будет Удмуртия + ближайщие регионы
(32) нет. Слишком сложно
(33) а бизнесу надо - значит надо делать
38 Ndochp
 
14.08.14
10:33
(37) Я Удмуртию с регионами не знаю, но проблема будет та же. Только в качестве северого полюса будет выступать столица. А в качестве равноудаленных от нее точек, лежащих на одном диаметре выбирай что удобнее.
Я же в (17) привел пример для 4 точек, что как ни нумеруй будет плохо.
39 ИС-2
 
naïve
14.08.14
11:01
(38) поэтому вся удмуртия поделена на зоны
40 Garykom
 
гуру
14.08.14
11:24
(37) Если бизнесу надо то надо узнать скоко он готов заплатить за нормальный вариант

Может оно дешевле будет

ЗЫ
не дубль тема случаем? Сортировка списка на основе неполных данных

там в конце ссылки заюзать это и будет счастье

да можно по адресу автоматом через api яндекса координаты получить, человек только проверит что правильно и все    
http://api.yandex.ru/maps/tools/getlonglat/
http://api.yandex.ru/maps/features/?p=geocode
41 ИС-2
 
naïve
14.08.14
14:40
(40) нет. Разные все же вещи
42 Ndochp
 
14.08.14
15:32
(39) Поэтому расположенные через дорогу точки, находящиеся в соседних зонах будут "дальше" чем диаметр одной зоны.
43 Garykom
 
гуру
14.08.14
15:50
(41) разные но смысл один, оптимизация загрузки машины и(или) поездок по точкам доставки...
44 Garykom
 
гуру
14.08.14
15:53
(43)+ кстати это да можно оттуда ценную мысль использовать

взять в статистике поездок частоту встречаемости пар точек

если например ехали А Б В то наверно рядом (А и Б), (Б и В), а вот (А и В) далеко...
45 ИС-2
 
naïve
15.08.14
09:23
(44) можно, но машина едет не просто так, а если есть заказ у клиента