SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0000163 | SAS.Планета | [All Projects] Хотелка | public | 16-10-2010 13:46 | 24-04-2011 18:24 |
|
Reporter | gpsMax | |
Assigned To | vdemidov | |
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | fixed | |
Platform | | OS | | OS Version | |
Product Version | 101014.Alfa | |
Target Version | 110311.Alfa | Fixed in Version | 110311.Alfa | |
|
Summary | 0000163: Доработка окна "Перейти к" (универсальный ввод координат) |
Description | Сейчас в SAS.Планете нет возможности перейти по координатам, отличным по формату от dd° mm' ss'', да и даже в этом случае придётся вместо ввода одной строчки вводить цифры в шесть полей.
Поиск в яндексе и в гугле проблему не решает, зачастую они выдают неточные/неверные точки даже для своего родного формата dd.dddddd°.
Хотелось бы вместо имеющихся шести полей вводить строку координат как единое целое, с возможностью полуавтоматического распознавания их формата. |
Steps To Reproduce | |
Additional Information | Форматов координат всего три:
dd.dddddd°
dd° mm.mmm'
dd° mm' ss''
Наброски по их распознаванию, последовательно:
1. Подготовка строки
- Все символы, отличные от [0-9'°, ], превращаем в пробелы
- Удаляем начальные и конечные пробелы строки
- Двойные пробелы превращаем в одинарные (возможно сделать небольшой рекурсией)
2. Распознавание
- Если в строке есть '', то это третий вариант. Выход.
- Если нет '', но есть ', то второй. Выход.
- Если нет ', но есть °, то первый. Выход.
- Если в строке только один пробел, то это первый вариант. Выход.
- Если три, то это второй вариант. Выход.
- Если пять, то третий. Выход.
- Если дошли до этого места, значит пользователь ввёл что-то непонятное. Выдаём окошко с некоторым ругательным текстом и ничего более не делаем. |
Tags | координаты, метки, перейти к |
Relationships | parent of | 0000466 | closed | Garl | Универсальный ввод координат - 2 | parent of | 0000532 | closed | vdemidov | Переход на точку | related to | 0000074 | closed | vdemidov | Формат представления координат | related to | 0000901 | closed | Garl | Определение места по URL из maps.google/yandex | related to | 0001126 | closed | vdemidov | Универсальный ввод координат - 3 |
|
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
16-10-2010 13:46 | gpsMax | New Issue | |
16-10-2010 14:54 | pasha_49 | Note Added: 0000359 | |
16-10-2010 16:00 | Ledmyc | Note Added: 0000360 | |
16-10-2010 18:48 | vdemidov | Note Added: 0000361 | |
16-10-2010 18:49 | vdemidov | Status | new => acknowledged |
16-10-2010 18:49 | vdemidov | Target Version | => 29xxxx |
17-10-2010 08:34 | gpsMax | Note Added: 0000362 | |
17-10-2010 08:37 | gpsMax | Note Edited: 0000362 | bug_revision_view_page.php?bugnote_id=362#r118 |
17-10-2010 12:42 | Ledmyc | Note Added: 0000363 | |
17-10-2010 16:54 | Ledmyc | Note Edited: 0000363 | bug_revision_view_page.php?bugnote_id=363#r120 |
17-10-2010 18:43 | gpsMax | Note Added: 0000364 | |
20-10-2010 19:56 | gpsMax | Note Added: 0000373 | |
07-11-2010 19:29 | gpsMax | Tag Attached: метки | |
07-11-2010 19:29 | gpsMax | Tag Attached: координаты | |
10-03-2011 09:32 | vdemidov | Status | acknowledged => resolved |
10-03-2011 09:32 | vdemidov | Fixed in Version | => 110311.Alfa |
10-03-2011 09:32 | vdemidov | Resolution | open => fixed |
10-03-2011 09:32 | vdemidov | Assigned To | => vdemidov |
10-03-2011 09:33 | vdemidov | Target Version | 29xxxx => 110311.Alfa |
06-04-2011 16:33 | gpsMax | Tag Attached: перейти к | |
06-04-2011 16:34 | gpsMax | Relationship added | related to 0000074 |
07-04-2011 02:57 | gpsMax | Relationship added | related to 0000466 |
09-04-2011 15:45 | gpsMax | Summary | Доработка окна "Перейти к" => Доработка окна "Перейти к" (универсальный ввод координат) |
09-04-2011 15:45 | gpsMax | Relationship added | parent of 0000532 |
09-04-2011 15:45 | gpsMax | Relationship replaced | parent of 0000466 |
24-04-2011 18:24 | Tolik | Status | resolved => closed |
10-08-2011 16:00 | gpsMax | Relationship added | related to 0000901 |
20-01-2012 12:49 | gpsMax | Relationship added | related to 0001126 |
Notes |
|
|
|
|
(0000360)
|
Ledmyc
|
16-10-2010 16:00
|
|
А если пользователь введёт что-то вроде 53° 32°16′30″?
И как опрнделить, что есть широта, а что — долгота?
Думаю, нужно ещё распознавать N/S, E/W и/или с/ю, в/з, ш и д, а также «-» (минус) в случае S и W. Нужно бы предусмотреть возможность отделения широты от долготы, напроимер, символами ,;/ и др. (символ минуса — и разделитель, и указатель на полушарие).
Если что-то невозможно определить, то предполагаем один из возможных вариантов, спрашиваем о нём пользователя посредством диалогового окна. Нажимает «Да» — хорошо, «Нет» — просим заполнить 6 полей в таком окне, как сейчас.
Но всё-таки надо бы подумать… |
|
|
|
Думайте и пишите парсер. Подробности на форуме http://sasgis.org/forum/viewtopic.php?f=47&t=1114 |
|
|
(0000362)
|
gpsMax
|
17-10-2010 08:34
(edited on: 17-10-2010 08:37) |
|
>И как определить, что есть широта, а что — долгота?
Если не указано иного, то первое широта, второе долгота. Практически везде традиционно так, начиная от чуть ли не средневековых форм записи координат, и до современных - "...северной широты, восточной долготы..."
Минус, да, упустил. Но он в эту схему отлично ложится, просто будет отрицательное число в координате. В первом шаге подготовки множество годных символов будет включать в себя и минус: [0-9'°, \-]
Пользователя лишними окнами доставать не надо. Если не распознали, то выдаем окошко с небольшой подсказкой по вариантам форматов, вот и всё. Старую форму с шестью полями ввода оставить никто ведь не мешает.
>Нужно бы предусмотреть возможность отделения широты от долготы
Уже. Как минимум, по смыслу там должен быть пробел. Или другой разделяющий символ - всякие запятые, слэши и прочая фигня будет преобразована в пробелы, из которых "выпарены" дубликаты, и останется, опять же, один пробел-разделитель. Такая общая схема позволит вставлять в строку поиска текст со всей словесной обвязкой, например:
... На острове с широтой XXX и долготой YYY градусов...
... http://wikimapia.org/#lat=55.8361928&lon=37.5437164 ...
... http://maps.google.ru/?ll=55.686875,37.471619...
То есть, копируем кусок текста и вставляем в форму, которая его сама очистит от лишнего. Лишь бы лишних цифр не было.
|
|
|
(0000363)
|
Ledmyc
|
17-10-2010 12:42
(edited on: 17-10-2010 16:54) |
|
Очень интересен второй пример (со ссылкой на карту Google) тем, как всё же должны отделяться целая и дробная части координат — точкой или запятой.
По-моему стоило бы предусмотреть оба варианта и уж на лету определять, какой из них в конкретной строке используется.
>Минус, да, упустил. Но он в эту схему отлично ложится, просто будет отрицательное число в координате.
С минусом поаккуратнее надо бы быть: минус-то ставится один, но относится он и к градусам, и к минутам, и к секундам…
|
|
|
(0000364)
|
gpsMax
|
17-10-2010 18:43
|
|
С таким стремлением учесть все-все-все варианты эта фича долго останется теоретической. Выше описан алгоритм из простых шагов, который на 95% входных данных будет давать стабильно хороший результат. Да, он в некоторых случаях спотыкается и не понимает, чего бы от него хотел пользователь, ну так это ж и не волшебная палочка, а просто чуть расширенная обработка. В SAS нужно хотя бы минимально улучшить функционал по переходу к координатам. А то эта проблема обсуждается более года, и всё это время в программе остаётся старая неудобная для ввода форма. |
|
|
(0000373)
|
gpsMax
|
20-10-2010 19:56
|
|
Кусочек по поводу вбивания координат в поиск гугла
http://sasgis.org/forum/viewtopic.php?f=2&t=13&p=13038#p12962 |
|