Андрей Кутырев
1 сентября 2010

Добрый день!

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

Основной проблемой стал ввод спецсимволов вроде знака градуса и пр. для пользователя. Родилось не очень удобное решение (на рисунке), которое вроде бы и работает, но очень перегружено элементами и не очень понятно.

Часть ТЗ:
«Контрол должен понимать следующие форматы координат:
36°14'12.25''
36°14'12'‘
45°14.1234’
45°14'
56.124567°

Вводить можно не более 8-9 цифр. При вставке из буфера обмена автоматически определять формат. При вставке из буфера контрол должен понимать все форматы, описанные выше (включая пару координат широта-долгота), плюс координаты в виде N65°15'56.36'' E61°57'58.5''. При нажатии на кнопку Найти на карте” перемещаться в указанное место.»

Вопрос. Как сделать ввод более удобным и понятым для пользователя? Заранее благодарен



Андрей!

Я предлагаю сделать одно-единственное поле и автоматически разбирать то, что в него вводит пользователь, независимо от формата. Чтобы облегчить ввод с клавиатуры, кроме знаков ˚ ’ ˝ можно разрешить альтернативные обозначения, скажем, d m s.

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

Координаты

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

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

P. S.

Я проведу практический курс «Пользовательский интерфейс и представление информации» 22, 23, 24 и 26 апреля в Москве

 

Запись открыта до ВС 16 апр


Поделиться

Комментарии

Рома Шавня
1 сентября 2010

Зачем эти фишечки с одной строкой? Так очень просто запутаться и сделать опечатку. Нужно сделать эти элементы просто выпадающими списками.

Дмитрий Зимин
1 сентября 2010

«Вводить можно не более 8-9 цифр»
Так не больше 8 или не больше 9?

Александр Цебро
1 сентября 2010

Илья, даже набор некоторых знаков препинания, например, двоеточия или запятой, часто требует от меня нескольких попыток. Вы предлагаете вводить градус ˚, который вообще не представлен на обычной раскладке (и я, наверное, догадываюсь почему :-)

Я бы упростил предложенный вариант, убрав формат ввода. В этом случае интерфейс станет еще гибче: хочу ввожу только градус, хочу — только минуты и секунды. При этом «210 градусов восточной долготы» должны автоматически пересчитываться в «30 градусов западной долготы», а навигация между полями осуществляться Табом и ← стрелками →. Кнопку предложил бы заменить на автоматическую подгрузку.

Николай Новик
15 сентября 2010

Координаты человек обычно откуда-нибудь копирует, поэтому одно поле ввода понимающее все форматы однозначно удобнее.

Поскольку человек может всё-таки найти где-нибудь в справочной или художественной литературе координаты в «классической» записи (т. е. 36°14'12"), то ему можно предоставить многополевой ввод по нажатию кнопки Advanced.

Карту, конечно, желательно показывать сразу, особенно если она не кушает трафик ваших серверов.

Константин Дёмин
29 октября 2010

Автоматически ставить разделители и нули:
1253416 → 125˚34'16"
1452 → 142˚02'
01452 → 14˚52'
001452 → 1˚45'02"
19836 → 19˚08'36"
99999 → 99˚09'09.9"

Можно переходить в следующий разряд нажатием запятой:
12,11,11 → 12˚11'11"

В такой системе удобно набирать координаты с цифрового блока клавиатуры.

Женя Бакст
2 ноября 2010

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

Михаил Тучин
31 мая 2013

Всегда ненавидел подобные поля, где знаки препинания расставляют за меня, и где одну величину нужно вводить в несколько полей. Сделать адекватный ввод одной величины в три поля порой сделать сложнее, чем сделать ввод одной строкой с последующим распарсиванием или автозаменой. Мне нравятся варианты с разделителями d-m-s и запятыми. Несложно сделать, чтобы работали все варианты.


Цель рубрики — обсуждение вопросов дизайна всех видов, текста в дизайне и взаимоотношений дизайнеров с клиентами.

Мы публикуем комментарии, которые добавляют к уже сказанному новые мысли и хорошие примеры. Мы ожидаем, что такие комментарии составят около 20% от общего числа.

Решение о публикации принимается один раз; мы не имеем возможности комментировать или пересматривать свое решение, хотя оно может быть ошибочно. Уже опубликованные комментарии могут быть удалены через некоторое время, если без них обсуждение не становится менее ценным или интересным.

Вот такой веб 2.0.

Недавно всплыло

Расскажите об обратной связи в интерфейсе 1 Как создавался новый сайт бюро. Часть вторая 2 1 Как написать заказчику, что я установлю модуль на его сайт после окончательной оплаты, и при этом не обидеть его? 2