Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

добавить кадастровую карту Украины #3

Open
spatialhast opened this issue Sep 10, 2014 · 13 comments
Open
Assignees

Comments

@spatialhast
Copy link
Contributor

Добавьте пожалуйста кадастровую карту Украины (http://212.26.144.110/kadastrova-karta) с возможностью поиска по кадастровому номеру (geocoders), отображением информации о кадастровом участке (interactive layers and identifiers). Спасибо!

@olegsmetanin
Copy link
Owner

Добавлен как базовый слой

@olegsmetanin
Copy link
Owner

Добавлен инструмент геокодирования.
Выяснилось что метод /kadastrova-karta/find-Parcel использует EPSG:4284, то есть систему координат Пулково-1942, которая на эллипсоиде Красовского. Ее надо приводить к WGS-84, поэтому пришлось подключать proj4js.
здесь самое интересное https://github.com/olegsmith/leaflet.geomanager/blob/master/components/leaflet.geomanager/providers/uacadastre.js#L34
Все вроде ложится на свои места.

@olegsmetanin
Copy link
Owner

Добавил идентификацию. Вроде все.

@olegsmetanin
Copy link
Owner

Неделю на замечания, потом закрою задачу

@olegsmetanin
Copy link
Owner

Обнаружил что под хром какая-то проблема с парсингом xml.

@spatialhast
Copy link
Contributor Author

Спасибо за добавление кадастровой карты Украины!
При клике на кадастровом участке 6310138800:02:009:0016 возникает ошибка "Error: Invalid LatLng object: (NaN, 36.24709307067783) // throw new Error('Invalid LatLng object: (' + lat + ', ' + lng + ')');". Причина ошибки - полигон с дыркой. Примеры участков с дырками: 6310138800:05:042:0036 / 2320984400:05:018:0006 - на них также возникает подобная ошибка.
Пожелания:

  • при клике на пустом месте карты (где нет кадастровых участков) выводить информацию о названии области, района, КОАТУУ, зона, квартал как реализовано на сайте http://www.map.land.gov.ua/kadastrova-karta.
  • сделать проверку ввода кадастрового номера: если не найден или ошибочно написан - вывод сообщения, автозаполнение символом ':' при вводе кадастрового номера.

@olegsmetanin
Copy link
Owner

Судя по GML там присутствуют мультиполигоны. Скажите, в кадастре Украины тоже есть такое недоразумение как многоконтурные земельные участки?

Чтобы с дырками решить вопрос нужно делать нормальный парсер такого gml.
<MultiPolygon srsName="http://www.opengis.net/gml/srs/epsg.xml#900913">
<polygonMember>
<Polygon>
<outerBoundaryIs>
<LinearRing>
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">4035007.94336425,6443172.52549845 4035010.17926039,6443172.76770904 4035008.46241424,6443178.98261968 ...</gml:coordinates>
</LinearRing>
</outerBoundaryIs>
<innerBoundaryIs>
<LinearRing>
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">4035040.35351646,6443272.01414586 4035039.67607384,6443268.98117872 4035037.45795989,6443260.08492618 ...</gml:coordinates>
</LinearRing>
</innerBoundaryIs>
</Polygon>
</polygonMember>
</MultiPolygon>

готовых решений я не нашел, так что это не быстро.

@spatialhast
Copy link
Contributor Author

'в кадастре Украины тоже есть такое недоразумение как многоконтурные земельные участки?' - да, также как и накладывающиеся друг на друга участки.

@spatialhast
Copy link
Contributor Author

"Обнаружил что под хром какая-то проблема с парсингом xml." - в 49й строке uacadastre.js изменил на $xml.find('gml:coordinates, coordinates').text().split(' '), но по-прежнему ошибка с формированием полигона L.Polygon(coords)

@ashromov
Copy link
Contributor

Устранил ошибку в хроме, такой же заменой
, original_coords = $xml.find('gml:coordinates, coordinates').text().split(' ')
, koatuu = $xml.find('dzk:koatuu, koatuu').text()
, zone = $xml.find('dzk:zona, zona').text()
, quartal = $xml.find('dzk:kvartal, kvartal').text()
, parcel = $xml.find('dzk:parcel, parcel').text()
Устранил ошибку при выделение полигона в вырезанной областью
при запросе к такому полигону возвращается 2 массива координат, я разбил координаты на 2 массива

@hordii-ztoe
Copy link

hordii-ztoe commented Mar 13, 2018

Здравствуйте. Можно как-то поиск по кадастру Украины, отдельно прикрутить к leaflet? Какие точно файлы отвечают за это?

@olegsmetanin
Copy link
Owner

@mhordii
Copy link

mhordii commented Mar 28, 2018

Здравствуйте,

Просто добавлю информацию. Нужно использовать последнюю библиотеку proj4(2.4.4 на 28.03), так как в текущей версии (в проекте) в библиотеке, есть баг конвертирования широты.

Код который нужно будет изменить:
var res = data.data[0] , epsg900913 = '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +over +no_defs' , epsg4326 = '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs' , point1 = proj4(epsg900913, epsg4326, [Number(res.st_xmin), Number(res.st_ymin)]) , point2 = proj4(epsg900913, epsg4326, [Number(res.st_xmax), Number(res.st_ymax)]) , bounds = new L.LatLngBounds([point1[1], point1[0]], [point2[1], point2[0]]) , cadnumparts = cadnum.split(':') , koatuu = cadnumparts[0] , zone = cadnumparts[1] , quartal = cadnumparts[2] , parcel = cadnumparts[3];

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants