More flexible coordinates parsing / Более гибкий разбор координат в поле ввода
yuriy-zhilovets2 opened this issue · 13 comments
Сейчас поле ввода координат принимает только ввод по шаблону типа 45.99, 33.99, то есть градусы и их доли, разделенные запятой.
Но в других источниках координаты могут храниться и в других форматах
- быть разделены пробелом или другим символом
- градусы, минуты, секунды, с возможным указанием вида широты и долготы
- градусы, минуты и десятичные доли минут.
Примеры:
Википедия: 45°11′45″ с. ш. 33°22′38″ в. д.
shukach.com: N 47° 4.077' E 32° 11.673'
Разбор и конвертация таких координат не представляет особого труда, но облегчил бы жизнь пользователей.
Секунды и минуты могут заменять апострофом и американскими кавычками, может быть два апострофа как секунды. Названия сторон света разные в разных локалях, на PasVu попадались fr, de, uk, it источники с координатами.
Разбор сидит где-то тут
pastvu/public/js/module/map/map.js
Line 78 in 963294d
Regex для поля координат https://gist.github.com/pjobson/8f44ea79d1852900457bc257a4c9fcd5
Regex для поля координат https://gist.github.com/pjobson/8f44ea79d1852900457bc257a4c9fcd5
Отличная находка, @kabalin ! Это, видимо, сюда
Line 1027 in 3fe4536
Буквы логично разбавить до буквосочетаний на нескольких языках при отсутствии пересечений.
https://www.npmjs.com/package/geo-coordinates-parser
Предлагаю не изобретать велосипед, а воспользоваться готовой библиотекой , которая включает в себя не только упомянутые выше Русланом регулярные выражения, но и еще кучу вариантов, до которых и додуматься-то невозможно.
Если мейнтейнеры дадут добро на использование дополнительной библиотеки, я попробую прикрутить.
Отлично, добавляйте конечно.
Там отличный базовый набор, но библиотека сугубо не международная. Не увидел с.ш.
сш
в.д
вд
не говоря об oc.lon.
or.lon.
или Ost
West
.
Расширил шаблоны сторон света и угловых мер https://github.com/mkgrgis/geo-coordinates-parser.
Я бы все-таки оставил библиотеку, как есть, но перед проверкой заменял бы выражения типа с.ш. на N
Список выражений держал бы в файле локализации. Тогда можно было бы пользоваться на всех поддерживаемых языках.
но перед проверкой заменял бы выражения типа с.ш. на N
Да можно пока и не заменять.
@yuriy-zhilovets2 , спасибо! Неплохая реализация, не вижу только верхнего регистра всего при входе. Просмотрел? Тогда уж В. Д.
и С. Ш.
должны быть заглавными. Попозже поднакидаю шаблонов сокращений сторон света и др., если примут #558
Так и не увидел есть ли безразличие к регистру слов. Странно смотрятся верхние регистры ключевых слогов из оригинального кода и с. ш.
строго в нижнем регистре. Проверялось ли это?
Так и не увидел есть ли безразличие к регистру слов. Странно смотрятся верхние регистры ключевых слогов из оригинального кода и
с. ш.
строго в нижнем регистре. Проверялось ли это?
да, там флаг i
да, там флаг
i
Спасибо, почему-то упустил этот момент при осмотре.