<div dir="ltr"><div><div><div><div><div><br></div>Wszystko jest kwestią tuningu i postgresa i zapytań do bazy - ja spędziłem wiele godzin nad profilerem postgresowym, żeby to śmigało - czasami drobna zmiana sprawia że zamiast 30 sekund czekasz 0.5 ;). Wrzuć sobie do osobnej tabeli granice państw i jakiś ważnych admin_level - mocno Ci to przyśpieszy działanie, chociażby przez fakt zbuforowania takiej małej ilości danych w RAM-ie. Nie robiłem stricte benchmarków, ale przypisanie punktu do kraju (Europa) na domowym laptopie to nieco mniej niż 100 milisekund (tyle pokazuje konsola SQL).<br><br></div>Dlaczego akurat Norwegia tak boli? :D<br><br></div>Co do wyszukiwania nazw - wszystko się rozbija o masę zagadnień związanych z wyszukiwaniem danych nieustrukturalizowanych (bo user może wpisać wszystko - niekoniecznie oddzielając miasto i ulicę przecinkiem), scoringiem wyszukiwań, itp. Jeżeli user wpisze samą nazwę Osiek bez ulicy to sam się prosi o problem - bo dostanie 100 wyników :). Aplikacja (i API) może to uwzględnić przesyłając razem z wyszukiwaniem przybliżoną lokalizację użytkownika - wtedy wyżej w wynikach wyszukiwania znajdą się miejscowości znajdujące się geograficznie bliżej. Nie mówię już o banałach typu scoring na podstawie populacji czy rozgraniczenia wieś/miasto. <br><br></div>Z tego co wiem i Nominatim i Google dają możliwość podania bounding boxa - choć osobiście uważam że to głupota, żeby developerów aplikacji którzy zazwyczaj niewiele mają wspólnego z GIS-em zmuszać do wyliczania box-a, wystarczą najprostsze koordynaty latlon.<br><br></div>MR<br><div><div><div><div><br><br></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">W dniu 27 listopada 2014 19:17 użytkownik Tom <span dir="ltr"><<a href="mailto:tomeks@spoko.eu.org" target="_blank">tomeks@spoko.eu.org</a>></span> napisał:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> Dzięki za te screeny - nie rozumiem tylko test2 - chodzi o brak nazwy<br>
> miejscowości? Na co Ci klienci głównie narzekają? :)<br>
</span>Masz tam nazwę ulicy w miejscowości Ołdrzychowice, a jest "gmina<br>
Kłodzko".<br>
<br>
Klienci? niektórzy na wszystko :) drobiazgi.<br>
We wspomnianych Ołdrzychowicach ja jeden adres dekodowałem jako<br>
Trzebieszowice, bo do POI village Trzebieszowice było ciut bliżej, a<br>
granica administracyjna jest 100m obok mojego punktu.<br>
Z mojego punktu widzenia serce mi się cieszy na każdy email o nowych<br>
punktach adresowych.<br>
Kwestia nazywania landuse=residential .... jest przeróżnie...czasami<br>
jest tam nazwa dzielnicy, najczęściej nie ma nic.<br>
<br>
Weź pozycje GPS ładowania śmietników z jakiejś śmieciarki, zobacz<br>
poprawność dekodowania adresów, a potem porozmawiaj z klientem o jego<br>
oczekiwaniach...że numeru 42 nie powinno być na raporcie, bo tam nie<br>
odbierali :)<br>
<span class=""><br>
> Zasadniczo przypisanie punktu do kraju to nie jest problem - ja od zera<br>
> zaprojektowałem sobie struktury danych pod kątem poszczególnych usług (nie<br>
> korzystam z planet_osm_*) - sprawdzenie kraju w którym jesteś to są<br>
> milisekundy (możesz sprawdzić co się stanie, jak klikniesz na mapie demo<br>
> poza obszarem Polski).<br>
</span>Sprawdzenie czy jesteś w Polsce, czy dowolnego kraju w Europie?<br>
milisekundy - wiadomo - ale ile tych milisekund :)<br>
<br>
Ja używam tej samej bazy co do renderowania, ale do krajów muszę użyć<br>
shapefile...i to mnie boli...jak mam sprawdzić Norwegię :)<br>
<span class=""><br>
<br>
> Zasadniczo problem jest taki, że co klient to inne wymagania (tak samo jak<br>
> z POI o których piszesz) - mam to tak zrobione tak, że do każdego klucza<br>
> API mogę przypisać osobny, pisany pod konkretne zastosowanie algorytm. Do<br>
> tego dochodzi jeszcze osobna warstwa normalizacji danych odpalanych w<br>
> zależności od kraju w którym "jesteś" żeby pokryć różne regionalne<br>
> udziwnienia.<br>
</span>O kurcze, to jest naprawdę indywidualne podejście.<br>
<span class=""><br>
> W drugą stronę też mam bardzo fajną technologię - łącznie z wychwytywaniem<br>
> literówek, niespójnych adresów, itp. Mam cichą nadzieję, że uda się tego<br>
> użyć np. na potrzeby <a href="http://osmapa.pl" target="_blank">osmapa.pl</a> bo teraz jak w Nominatimie wpiszesz<br>
> "wrocław, rynek" to dostajesz wioskę Rynek w gminie Pakosław :P<br>
<br>
</span>No właśnie...czekam aż pokażesz :)<br>
Ja po wstępnym rozpoznaniu zawiesiłem pracę nad tym aż będę miał<br>
więcej czasu, bo oprócz API robię też UI.<br>
Np. masz problem identycznych nazw i wyświetlania ich w jakiejś<br>
kolejności (np. malejącej populacji).<br>
np...taki Osiek:<br>
<a href="http://pl.wikipedia.org/wiki/Osiek" target="_blank">http://pl.wikipedia.org/wiki/Osiek</a><br>
<br>
<br>
Tomek<br>
<div class="HOEnZb"><div class="h5"><br>
> Michał<br>
<br>
> W dniu 27 listopada 2014 17:59 użytkownik Tom <<a href="mailto:tomeks@spoko.eu.org">tomeks@spoko.eu.org</a>> napisał:<br>
<br>
>> MR> Na chwile obecną udostępniamy usługę odwróconego geokodowania,<br>
>> wyszukiwanie<br>
>> MR> adresów uruchomimy produkcyjnie w ciągu kilku tygodni. Do zastosowań<br>
>> MR> niekomercyjnych usługa jest za darmo.<br>
>> MR> Wszystko opiera się na własnym kodzie i rozwiązaniach, nie ma tam ani<br>
>> grama<br>
>> MR> Nominatima.<br>
>><br>
>> Reverse zrobiłem jakiś czas temu na własne (komercyjne) potrzeby.<br>
>> Nominatim - masz rację - to niestety porażka.<br>
>><br>
>> Najtrudniejsza rzecz to radzenie sobie z niespójnymi danymi w OSM.<br>
>><br>
>> Fajnie widać błędy gdy się ma dziesiątki pozycji z GPS i ich adresy<br>
>> obok...<br>
>><br>
>> Mam za sobą takie doświadczenia (i skargi klientów :) ) więc<br>
>> szybciutko udało mi się wygenerować problematyczne adresy u Ciebie<br>
>> (załącznik). Żeby nie było, to w niektórych miejscach gdzie ja mam problem<br>
>> Tobie działa<br>
>> lepiej :)<br>
>><br>
>> No i trochę przydługie są np.<br>
>> "województwo dolnośląskie, Legnica, Świętego Maksymiliana Kolbe 8"<br>
>><br>
>> Do tego jeszcze jest kwestia kraju. W adresach w OSM nie ma kraju.<br>
>> Zamiast szukać najbliższego punktu (co jest indeksowane i szybkie)<br>
>> to trzeba to robić w oparciu o sprawdzenie obecności punktu w<br>
>> obszarze...a to już trwa.. w przypadku takiej Norwegii dość długo :)<br>
>><br>
>> Ogólnie bardzo kłopotliwa usługa.<br>
>><br>
>> W drugą stronę chyba nawet bardziej kłopotliwa, bo musi zakładać błędy w<br>
>> pisowni<br>
>> miejscowości.<br>
>><br>
>> Jeśli już jesteśmy<br>
>> >w różnych zastosowaniach, np. przy monitoringu pojazdów<br>
>><br>
>> to fajnie byłoby dekodować miejsca związane z obsługą pojazdów - w<br>
>> szczególności - stacje benzynowe.<br>
>> Brakuje POI z pełnym opisem -operatorem, godzinami otwarcia itd.<br>
>><br>
>> Może udałoby się nam dogadać i z pomoca stowarzyszenia zrobić konkurs<br>
>> na dodawanie tych POI?<br>
>><br>
>> Pozdrawiam<br>
>><br>
>> Tomasz Salwach<br>
>><br>
>><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Pozdrowienia,<br>
 Tom<br>
<br>
</font></span></blockquote></div><br></div>