Здравствуйте, уважаемые читатели Хабра.
В этой статье мы поговорим
- Об адресах и хранилищах данных с нечеткой схемой
- Об обработке геоданных в Java, а именно о Java Topology Suite
- О цене «простоты» для разработчика
- О базе данных документов nosql на чистом Java/системе полнотекстового поиска — Elasticsearch.
Для читателей Java Hub, незнакомых с OSM
OSM — это открытая геопространственная база данных с очень подробным глобальным охватом.Для пользователя это просто карта, которую можно просмотреть онлайн, загрузить в навигатор, телефон, отредактировать, распечатать и вообще использовать любым другим мыслимым способом, в том числе получать от этого коммерческую выгоду.
С точки зрения разработчика, это уникальная база данных.
- В OSM нет ни четкой схемы данных, ни привычного для ГИС разделения на слои.
Тип объекта, его свойства и, в некотором смысле, геометрия задаются посредством тегов — текстовых пар ключ-значение.
- Геометрия сохраняется только для точек.
Линия представляет собой массив идентификаторов точек.
Полигон — это набор ссылок на линии, указывающий, какой границе принадлежит линия — внутренней или внешней.
- Это позволяет сообществу на лету собирать новые типы данных.
Если вы хотите разметить тротуары, согласуйте комбинацию меток и вперед. Всё это без драмы (ну почти) с каким-то непонятным модератором, вырезающим дорогие сердцу данные с комментарием «вы засоряете карту, ваш труд никому не нужен».
Адреса
Большинство из нас проживают свою жизнь в 1-2 городах, и у нас просто нет времени обращать внимание на разнообразие схем почтовой адресации.Начинается с малого – с записи адреса: от большего к меньшему или от меньшего к большему.
Тогда оказывается, что в некоторых городах в адресе не используют улицу: дом 521, Котор, Черногория или Российская Федерация, поселок Энергетик дом 15. У одного дома может быть несколько адресов: Лучший город на земле, Прямая улица, 22, а еще в нем есть Лучший город на Земле, Перпендикулярная улица, 12. Что двойная адресация может быть не только для угловых домов и что 2 адреса – это далеко не предел.
Таллиннская улица Каштановая 13, 15, 17 Таллиннская Вишневая улица 1, 3 *Это пример из реальной жизни, я просто забыл оригинальные названия улиц.
Что можно заняться не только самими домами, но и подъездами, и даже частями дома, которые внешне не проявляются.
(Это как раз из примера с Таллинном - адреса на одной улице внутри одного дома - это внутренние участки, принадлежавшие когда-то разным владельцам).
И, наконец, всякая экзотика вроде Набережные Челны, 11/1 Это 11-й жилой комплекс, корпус 1. На самом деле дома в Северной Каролине тоже имеют привычные адреса типа House Street, но местные жители ими не пользуются.
Теперь умножьте это на: 4 принципиально разных способа указать Поселение в OSM 3-4 способа указать множественную адресацию 3 способа указать улицу для адреса Более того, если вы вводите данные, вам просто необходимо использовать пару схем из этого зоопарка.
Если вы хотите написать достойный геокодер, вам нужно не просто помнить, что этот зоопарк существует, его нужно «посчитать».
Например, давайте рассмотрим, что нужно сделать, чтобы дом соответствовал городу.
Начнем с родины проекта – Великобритании.
Вот, например, дом в Вестминстере.
www.openstreetmap.org/way/46138969
Теги: #java #JTS #Java Topology Suit #Point location #Deloney #osm #OpenStreetMap #геокодирование #elasticsearch #java #OpenStreetMap #Geoinformation Servicesaddr:housenumber
-
Приобретение Глобального Доменного Имени
19 Oct, 24 -
Как Найти Интернет-Предложения Xfinity
19 Oct, 24 -
Как Изучать Исходные Тексты
19 Oct, 24 -
Просмотр Изображений Высокого Качества
19 Oct, 24