Google Map..kako dohvatiti gradove, zupanije

Znaci, pronašao sam opcije kako dohvatiti sve hotele, pizzerije…i razna čuda u blizini nekog mjesta. No ne mogu nikako pronaći opciju kako bi mogao dohvatiti recimo sve gradove neke županije…ili sve županije neke države…

any suggest??

pogledaj google geocoder

http://www.geonames.org/

Pretraga županije npr: Primorsko Goranska, Hrvatska:
http://www.geonames.org/maps/showOnMap?q=Primorsko%20Goranska&country=HR

Baza gradova po državama:
http://download.geonames.org/export/dump/

Baza županija po državama:
http://download.geonames.org/export/zip/

Ako ti se ne da slagati svoje servise sa prethodno navedenim podacima možeš koristiti i servise, ali uz “cijenu”:

30’000 credits daily limit per application (identified by the parameter ‘username’), the hourly limit is 2000 credits.

Možda možeš “hekat” pa stalno raditi random username-ove i tako prosljeđivati parametar na njihov servis ako ti bude trebalo više a ne želiš platit neki premium.

Servisi:
http://www.geonames.org/export/ws-overview.html

Sve info:
http://www.geonames.org/export/

Hvala … sa svih 20 znakova

odlicni savjeti :slight_smile: :slight_smile: :slight_smile: :slight_smile:

Davno pitao, a tek sad stiglo na red :smile:

Rastračirao sam ove popise gradova po državama i po županijama…još nisam odmakao od popisa za HR, a već me tu zateklo malo manje ugodno iznenađenje.

Konkretno za HR mi baca 23969 mjesta, od kojih čak 5451 duplikata po imenu. Neki od duplikata se nalaze na blizoj udaljenosti, to bi lako eliminirao. …no neki se zaista odnose na dvije različite prilično udaljene lokacije.

Da zaista i postoje dvije lokacije, nebi bio problem…ali problem je što ispada da je većina njih netočno, ili su to toliko mala mjesta da ih ne pronalazim ni na jednoj karti…ni Googleu mapi.
Druga stvar, koja ide na ruku da im informacije nisu točne: među popisu mjesta se nalaze imena poput: hotel Marina, hotel ovaj…hotel onaj…svačega tu uglavnom ima…a nije baš moguće ručno to provjeravati. Hrvatska je još mala…a meni će trebati : 25 zemalja. xd

Tako da sam otvoren dalje za sugestije.

Palo mi je na pamet da bi mogao uzeti sva mjesta, pa iskontrolirati njihovu validnost preko Google map API geocodera.
Samo, Google geocoding ima limit od 2500 upita na dan. Da iskontroliram sva mjesta tom metodom, trebalo bi cirka 750 dana xd. Ili podosta love ako bi povećao limit geocodinga uplatama. (Ukupno je cca 1.800.000 mjesta za provjeriti)
Možda bi se i odlučio na varijantu da platim…kad nebi bio još jedan problem. Google baš nebi bio sretan kad bi skužio da ga netko crawla i sprema podatke?

Što mi preostaje da izbacim uljeze?

Za sad vidim da ovi sa geonamesa imaju i nekakve popise gradova po broju stanovnika…možda to bude neki spas…mada sad prilično sumnjam u njihovu točnost…a teško je iskontrolirati tako velike brojeve.

Za Hrvatsku imas ovaj XML ili Excel gdje ti je kompletan popis mjesta: http://www.posta.hr/pomoc-i-informacije/preuzimanje-podataka-o-postanskim-uredima

Za Njemacku imas npr. http://www.datendieter.de/item/Postleitzahlen-Datenbank_Deutschland

i tako. U biti imas za svaku zemlju neku XML datoteku sa postanskim brojem i nazivom mjesta. Nema smisla komplicirati.

Ili da proučiš Nominatim http://nominatim.openstreetmap.org/

1 Like

Da znam najjednostavniji put, već davno bih tim putem.
Ovo tvoje nije loše…al opet ima nedostataka:
-treba pronaći sve popise za sve države
-treba prilagditi parser za svaki tip file-a (Bilo bi itekako favorizirano da kad se postavi metoda dohvaćanja, da funkcionira i uzduž i popreko za sve države)
-treba doskočiti za svaki file za njegove nedostatke. (Već ovdje njemačka-file ne nudi isto od podataka što i file od hrvatske)
-treba se snaći na 25 jezika xd
-dobivena imena će, sudeći prema ova dva file-a, biti isključivo na jezicima targetiranih država. (Potrebni su univerzalni nazivi + odlično je kad su dostupni alternativni nazivi gradova na drugim jezicima) Znači trebalo bi još sve to onda prevesti nekako…
-lat,lng su nužni podaci …ova dva file-a, nijedan ih nije ponudio…
itd…itd…

Za sad geonames to nudi zapravo odlično sažeto na jednom mjestu…samo je malkoc netočan i natrpan s viška stvari.
Koliko vidim, ovaj openstreetmap nudi također odlične stvari :slight_smile: …samo još nisam skužio kako dohvaćati rezultate grupirano po državi/županiji. …i koja su mu ograničenja.

Ako nema ograničenja kao Google geocoder, bit će to odličan alat za kontrolu točnosti geonames-a.
Ako može vraćati grupirane podatke za državu/županiju…onda još i bolje :slight_smile:

Za sve ove navedene stvari se koriste Baze podataka, pa kd si jednom potrpao sve nazive gradova razvrstane po drzavama nemas potrebe vise za dodatnim parsiranjima i cesljanjima, dodas u tablicu jos dva polja, lat, lng i onda prilikom prvog dohvacanja pojedinog mjesta polupis te podatke sa google mapsa ili nekog drugog takvog servisa i bog te veseli. Jedan grad se nece pomaknuti nigada da bi ti trebao stalno nadgledati lat i lng., vrlo rijetko ce promijeniti i naziv, itd. itd. Osim toga sve te podatke mozes jednostavno importati direkt u bilo koju bazu bez ikakvog parsera.

Kazem, volis komplicirati stvari…

Vidiš, i sam sam razmišljao da punim bazu onako kako će useri tražiti neki grad. …u tom slučaju nebi inicijalno trebao ni imena …sve bi prikupljao online.

Ali fora je u tome da radim jedan sistem koji unaprijed treba popis gradova i upravo njihove koordinate kako bi mogao izračunati neke stvari. To što se gradovi ne miču…džabe meni ako ne znam gdje su xd.

Dali mi tu online prikupljanje podataka može pomoći?
Ja ću zapravo pristupati gradovima tako da ću slati upite: “Daj sve gradove u rangu 5km od točke x,y.”

Kad bi google mogao odgovoriti na gornji upit, onda bi to bilo to…ali on hoće dati sve hotele u rangu…, sve bankomate u rangu…ali ne i sve gradove u rangu… xd.

Uhvatio si se ti gadnog posla @bozoou :smile: Mislim da ćeš tu morati napustiti rješenja koja se oslanjaju na G. Probaj se fokusirati na OSM koji u jako puno slučajeva ima free rješenja tipa http://www.gisgraphy.com/ Daj si truda, prouči to malo detaljnije. Živio

ne razumijem ovaj dio sa " 5 km od tocke x,y" a google naravno da ima mogucnost pokazati gradove u odredjenom radiusu.

Odgovaram sa mobitela pa mi se neda sad s mobilnog kopat po dokumentaciji ali ti mogu sutra na poslu pogledati.

Pogledaj ovdje:

Kordinate se mogu izvlačiti iz Google map, kao i udaljenost od jedne geo lokacije do druge i još puno toga.
Ne vjerujem da ima nešto bolje od toga.

Geocoding je proces kada iz imena adrese/lokacije dohvaćaš kooridinate i ostale podatke o mjestu.
Evenutalni parametri su granice unutar kojih se radi geocoding, kako bi izbacili rezultate duplikate istog imena. Sam API nativno ograničava rezultate prema lokaciji od kuda stiže upit, ukoliko nije drugačije zadano…

Reverse geocoding je obratni proces kada iz koordinata karte dohvaćaš ime mjesta i ostale podatke o mjestu.

Za udaljenosti od jednog do drugog geo mjesta ti zapravo ni ne treba google, nego je dovoljna i ova formula:

latlng_distance=function(p1,p2)
		{
		var R = 6378137; // Earth’s mean radius in meter
		var dLat = radijan(p2.lat() - p1.lat());
		var dLong = radijan(p2.lng() - p1.lng());
		var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(radijan(p1.lat())) * Math.cos(radijan(p2.lat())) * Math.sin(dLong / 2) * Math.sin(dLong / 2);
		var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
		var d = R * c;
		return d; // returns the distance in meter
		}

Heh, ali, nijedno od toga nema veze sa onim što ja trenutno trebam :slight_smile:

Ajde, bit će zanimljivo pričekati taj odgovor :slight_smile:
Mislim nebi se ja bunio da zaista ima…ali čisto sumnjam.

Nakon što sam prelistao njihovu dokumentaciju uzduž i popreko, našao sam da imaju pretrage u radiusu, ali samo za bankomatima, hotelima, pizzerijama itd…ne i gradovima.

Moguće da sam propustio naći, ali vjerujem da nisam jer nebi ekipa na stackoverflowu slagala vlastite funkcije za pretragu gradova unutar zadanog radijusa: http://stackoverflow.com/questions/8135243/finding-towns-within-a-10-mile-radius-of-postcode-google-maps-api

No njihova pretraga se naravno bazira na tome da već imaju pohranjen popis gradova sa pripadajućim koordinatama…s čime se vraćamo na početak priče kako najbolje do svih gradova. :slight_smile:

Imaš zadanu koordinatu sa lat,lng vrijednošću…i treba dohvatiti sve gradove od te točke u zadanom radijusu. Radijus može biti 5km, 10km…varijabilno naravno.

Je da…i dao si odličan link, skužio sam to! :wink:

Ali da stvar bude zanimljivija…napraviti popis sam smatrao trivijalnim inicijalnim zadatkom, pravi problem za odraditi tek onda slijedi, hehe :smiley:

Evo jedan WM shape iz dosade xd.

Na slici je zapravo metoda kojoj pribjegam da rješim problem koji sam si zacrtao…jer sa ovim popisima mjesta sam se jednostavno zakucao u zid.

9 dana rada, razotkrivanja svakakvih čuda i kerefeka da shvatim sve administracijske levele država i ovo i ono …da bih na kraju morao gotovo sve baciti u vjetar. Pa čisto par napomena ako netko bude ovo čitao tko se lati istih stvari:

-ovaj geoname je u jednu ruku odličan, ima stvarno popise svega i svačega i može se doći do mase odličnih podataka. …iako neke stvari baš nisu najjasnije na prvu kako ih filtrirati od svakakvih lokacija koje i nisu zapravo geografska mjesta
-no bez obzira što ima gotovo sva živa i neživa mjesta, i prijevode svakog mjesta na sve alternativne jezike…ipak se da naći jako puno lokacija koje su nespretno nazvane (i to na jezicima država kojima grad pripada :confused: ) … I to je jako teško istrijebiti.
Tipa, trešnjevka je nazvana “grad zagreb- trešnjevka” …i tako, mnoga imena su čudno formatirana sa nekakvim nepotrebno pojašnjavajujćim prefiksima ili sufiksima…što je skoro nemoguće istrijebiti ručno. Formatiranje je moralo biti ostavljeno da developer naknadno po želji spaja ime parenta sa imenom childa. Tako je to i napravljeno u 95% slučajeva…no eto, negdje su to unaprijed spojili i zadali kao ime mjesta. Vrlo nepregledno kad recimo u švicarskoj 1001 mjesto ima fiksno ugrađen prefix zurich za pojedina mjesta. To su grdo zahebali.

Drugo što su zahebali, kod exporta podataka su izmješali lat lng koordinate :open_mouth: Sva mjesta unutar jedne države ukoliko su istog imena dobit će iste koordinate…neovisno o tome jesu li mjesta možda slučajno u blizini, ili spadaju pod potpuno različitu županiju. Čak nebitno i ako su drugačijeg levela, tiga grad - mjesto …sve što je istog imena je exportano s istim koordinatama. Samo u hrvatskoj je tako izmješano preko 500-njak mjesta. (Tko bi rekao koliko mjestašaca ima koje se zovu isto :slight_smile: ) + na sve to, mjesta kojima nisu valjda znali točne koordinate su također grupirana po nekakvim koordinatama koje ih ajmo reći aproksimiraju. Pa sve to zajedno, dobije se hrpetina mjesta (2500+) koje djele koordinate…i fakat je muka to raspetljati, da sam na kraju eto i odustao…zapravo odustao kad sam zavirio u druge države, a svaka država ima tako reći svoju logiku zapetljancije, pošto nema svaka država jednako uređenu hijerarhiju županija/regija… Huh…dani znoja iza mene xd.

Ali ako županije nisu pravilno posložene, kocke jesu, haha. …i svaka ima pravilno uređene koordinate …a bome i parent-child hijerarhiju :smiley:

U kojoj si fazi s tim projektom? Pratim te vec neko vrijeme i cini mi se odlicno to sto radis… Samo nemoj previse razvuci da te ne pojede BlaBla car :hamburger: :car: :wink:

Ja se najiskrenije nadam da je manje od dva mjeseca do lansiranja ove nove verzije OPa. Ali tesko je to prognozirat…kad ti 10 dana samo tako plane, ko sad ovo… No, na finisnoj liniji smo svakako. :smile:

A blabla, ah…oni su već debelo zagrizli ovdje. Veliki su lovaši i borba će biti možda i uzaludna. No drago mi je u cijeloj priči da i otkad su se pojavili, meni nije puno spao entuzijazam da završim započeto.