Главная Партнеры Контакты  
Юридическая компания — «Основной закон», консультации и помощь в возвращении депозитов, защита по кредиту

ЮК
"ОСНОВНОЙ ЗАКОН"  

г. Киев, бул. Пушкина, 2а                
тел.: (044) 334-99-77                               
         (095) 407-407-3
         (096) 703-11-82

график работы: пн.- пт. с 9:00 до 18:00
          
                           

 












Рассматривается вопрос о предоставление нотариусам права выдачи извлечения из Реестра прав на недвижимое имущество.
Министерством юстиции был разработан проект Закона «О внесении изменений в некоторые Законы Украины относительно предоставления информации о государст...


Держреєстрація речових прав на нерухоме майно та їх обтяжень у 2014 році буде здійснюватись за новою - удосконаленою та спрощеною - процедурою.
Постанова Кабінету Міністрів "Про затвердження порядку державної реєстрації прав на нерухоме майно та їх обтяжень і Порядку надання інформації з Держа...




Система Orphus


МЕХАНІЗМИ ВИРІШЕННЯ ПРОБЛЕМ ВИКОРИСТАННЯ ДАНИХ ГЕОІНФОРМАЦІЙНИХ СЕРВІСІВ

Останнім часом у зв'язку з широким розповсюдженням у світі мобільних пристроїв, що володіють можливістю геопозиционирования, спостерігається стрімке зростання ринку додатків, що використовують цю функцію для надання інформації про послуги з географічною прив'язкою. Для функціонування таких додатків критичне значення мають геопросторові дані.

На сьогоднішній день існує величезна кількість геоінформаційних сервісів (ГІС), що надають розробникам відкриті API для роботи з геопросторовими даними. При роботі з ГІС часто виникають проблеми, пов'язані з обробкою наданих цими сервісами даних, які не відповідають вимогам використовують їх додатків. Такі проблеми доводиться вирішувати самим розробникам вручну, стандартних алгоритмів рішення поки не існує.

Розглянемо деякі практичні завдання, що виникають при розробці сервісу, що надає дані з геопросторової прив'язкою.

Завдання коригування даних результату геокодування

Однією з найбільш затребуваних операцій при роботі з геопросторовими даними є геокодування. геокодування - це перетворення адреси у вигляді набору атрибутивних просторових даних (назва країни, області, міста, вулиці і т. Д.) В точку з геопросторової прив'язкою (географічні координати), яку можна було б відобразити на карті.

Сервіс Google Geocoding API надає можливість геокодування за допомогою HTTP-запиту. В офіційній документації до Google Geocoding API [Google Geocoding API: https: // developers. google. com / maps / documentation / geocoding / ] Зазначено, що сервіс в запиті приймає всі відомі компоненти адреси, включаючи назву країни, міста, і т. Д. І у відповідь повертає дані про точку: географічні координати, точність координат і тип точності результату. Серед визначених типів точності результату тип найбільшої точності має значення ROOFTOP [5], який означає, що сервіс має інформацію про Вашій місцевості з точністю аж до адреси будинку.

Однак, як і інші ГІС, сервіс Google Geocoding володіє істотними недоліками. Якщо він спочатку некоректно інтерпретував запит, в результаті може бути отримана точка з геопросторової прив'язкою в іншому населеному пункті навіть при вказівці точної адреси в запиті. Також в статті [ Improved Geocoding, Or: How I Learned to Stop Worrying and Love the Map http: // blog. redfin. com / devblog / 2009/01 / improved _ geocoding _ or _ how _ i _ learned _ to _ stop _ worrying _ and _ love _ the _ map. html ] З ообщается про те, що якщо сервіс не може знайти адресу, він може самостійно змінити його, не попереджаючи про це користувача, і повернути точку з високим типом точності результату за новою адресою.

В процесі розробки сервісу виникла подібна проблема: в результаті запиту до Google Geocoding API була отримана точка з тими ж назвою вулиці і номером будинку, зазначеними в запиті, але в сусідньому місті. При цьому виникла задача коригування невірних результатів геокодування.

Проблема вибору точного результату геокодування була вирішена з використанням типу точності результату запиту і з застосуванням власних обчислень для виділення найкращої доступної точку з безлічі точок.

Google Geocoding API може повертати різні результати на один і той же запит. Це дозволяє провести відбір результатів на основі даних, що містяться у відповідях на запити до Google Geocoder. Спочатку з декількох результатів вибираються тільки ті, які мають тип точності 'ROOF_TOP' при їх наявності, інші відкидаються. Для точного рішення задачі необхідна наявність тільки одного такого результату, але іноді в підсумку існує більше одного результату. У тому випадку, коли залишається кілька результатів з типом точності 'ROOF_TOP' потрібно застосувати алгоритм коригування:

1. Отримати координати центру цільового міста за допомогою запиту до Google Geocoder.

2. Обчислити відстані між точками, що повертаються в результаті геокодування і точкою, отриманої на кроці 1.

3. Вибрати з усіх точок єдину, що має найменшу відстань до точки центру міста.

Коригування результату потрібно виконуватися методом визначення геометричного попадання точки в область. Якщо сервіс некоректно інтерпретував адреса в запиті, то точка в результаті не влучає у цільову область. Тільки одна з розглянутих точок є точним результатом. Таким чином, в залежності від відстані від будь-якої точки з результату запиту до центральної точки, можна точно визначити цільову точку.

Завдання перетворення географічних координат в лінійне відстань між точками

Друга проблема, що виникла при розробці сервісу, була пов'язана з використанням ГІСOpenStreetMap, скорочено OSM. OSM надає API для отримання сирих геопросторових даних зі своєї бази даних [OpenStreetMap - Вікіпедія: http: // ru. wikipedia. org / wiki / OpenStreetMap]. Один із сервісів API, пропонованих цієї ГІС для розробників - Nominatim. Nominatim являє собою інструмент для пошуку даних по імені і адресою.

Відповідно до офіційної документації [Nominatim - OpenStreetMap Wiki: http: // wiki. openstreetmap. org / wiki / Nominatim ] В Nominatim API включений запит, який повертає дані про всі об'єкти, що знаходяться в межах прямокутної географічної області. Цей запит в якості параметрів приймає значення координат всіх точок, що утворюють прямокутну область. Такі запити зручні при необхідності пошуку об'єктів в даному радіусі навколо даної точки, однак для побудови таких запитів необхідно явно вказувати межі області.

Таким чином, виникла задача визначення координат меж прямокутної області навколо заданої точки. Проблема полягає в тому, щоб для даної точки на поверхні планети визначити значення координат для чотирьох точок, що утворюють навколо неї прямокутну область в заданому радіусі. Для визначення координат точок на відстані від заданої точки нам необхідно здійснити переказ лінійних відстаней між точками на поверхні планети в кутові.

Перетворення лінійного відстані в градуси широти досить проста операція. Один градус широти є одиницею постійною. Довжина меридіана 40007,86 км. Тому в одному градусі широти завжди постійна кількість кілометрів: 40007,86 км / 360 ° = 111,1329 км.

Перетворення лінійного відстані в градуси довготи складніше, ніж в градуси широти. Як показано в статті [Про GPS -коордінатах замовте слово: http: // autodela. ru / main / top / review / GPS _ koord ], Оскільки поверхня планети представляє собою полярну систему координат - в полюсах все довготи сходяться, то для виконання завдання необхідні розрахунки потрібно проводити в рамках цієї системи координат. У випадку з нашою планетою кількість кілометрів в одному градусі довготи залежить від широти. Для того щоб розрахувати кількість кілометрів в одному градусі довготи на конкретній широті, потрібно це число помножити на косинус широти.

Розрахунок відстані між двома географічними точками

Також при використанні ГІС OSM виникла інша проблема: результати запитів містили надлишкові дані, так як запит до Nominatim повертав точки в межах прямокутної рамки, в той час як потрібні точки в межах окружності заданого радіуса.

Тут виникла задача фільтрації вибірки. У зв'язку з тим, що точки повинні потрапити в межі кола, фільтрувати потрібно на основі відстаней від точок до центру кола. Таким чином, виникла проблема розрахунку відстаней між двома точками на поверхні планети.

Розрахунок відстаней між точками на поверхні планети складніше, ніж на площині, оскільки поверхня планети є сферичної.

Як повідомляється в статті [GIS - Lab: Обчислення відстані і початкового азимуту між двома точками на сфері: http://gis-lab.info/qa/great-circles.html ], Найкоротшим відстанню між двома точками на поверхні планети є довжина меншою з двох дуг, проведених між точками на поверхні планети, а для обчислення найкоротшої відстані між точками на її поверхні необхідно використовувати рівняння для обчислення відстаней на великому колі.

Була застосована наступна формула розрахунку сферичного відстані великого кола, звана модифікацією формули гаверсінусов:

, ,

де: де:   ,   ;   ,   - широта і довгота двох точок в радіанах , ; , - широта і довгота двох точок в радіанах

- різниця координат по довготі - різниця координат по довготі

- кутова різниця - кутова різниця

Ця формула є найбільш точною серед формул розрахунку сферичного відстані, а також дозволяє уникнути проблеми з невеликими відстанями і проблему точок-антиподів.

висновки:

1. Завдяки специфічності геопросторових даних робота з такими даними представляє досить нетривіальний процес, що вимагає знань не тільки в традиційній геометрії Евкліда, але і в сферичної геометрії.

2. Для отримання точних результатів в задачах, пов'язаних з геопросторовими даними, потрібно ретельно проводити пошук оптимального алгоритму, оскільки можливі помилки обчислень.

3. Чи існують проблеми, пов'язані з геопросторовими даними, коли дані не відповідають ситуації, що розглядається, наприклад, невідповідність географічних координат об'єкту цільової географічної області. У таких ситуаціях перевірку коректності рішення доводиться виконувати вручну, наприклад, щоб перевірити точну відповідність координат об'єкту цільової області, потрібно проводити візуальну перевірку результату на мапі.

В результаті були розглянуті практичні завдання, що виникають при використанні геоінформаційних даних і проведено пошук механізмів вирішення цих проблем при розробці сервісу, що надає дані з геопросторової прив'язкою.

Список літератури:

1. Google Geocoding API, 2013 - [Електронний ресурс] - Режим доступу. URL: https: // developers. google. com / maps / documentation / geocoding / .

2. GIS-Lab: Обчислення відстані і початкового азимуту між двома точками на сфері, Максим Дубінін, 2011 - [Електронний ресурс] - URL: http://gis-lab.info/qa/great-circles.html .

3. Improved Geocoding, Or: How I Learned to Stop Worrying and Love the Map - [Електронний ресурс] - Режим доступу. URL: http://blog.redfin.com/devblog/2009/01/improved_geocoding_or_how_i_learned_to_stop_worrying_and_love_the_map.html.

4. Nominatim Wiki, 2013 - [Електронний ресурс] - Режим доступу. URL: http://wiki.openstreetmap.org/wiki/Nominatim .

5. Про GPS-координатах замовте слово, 2011 - [Електронний ресурс] - Режим доступу. URL: http: // autodela. ru / main / top / review / GPS _ koord .

6. OpenStreetMap - Вікіпедія, Вікіпедія - вільна енциклопедія, 2013 - [Електронний ресурс] - Режим доступу. URL: http: // ru. wikipedia. org / wiki / OpenStreetMap.

Главная Партнеры Контакты    
Cистема управления сайта от студии «АртДизайн»