Postinumeron nouto?

Started by ioxo, 15.09.12 - klo:11:23

Previous topic - Next topic

ioxo

Hei,

Olen itse törmännyt siihen "ongelmaan", että joudun hakemaan asiakkaan postinumeron melkeinpä joka kerta Postin/Itellan sivuilta. Tiedossa on kyllä tarvittavat tiedot kuten osoite ja kaupunki.

Onkohan ihan mahdoton ajatus, että osoiterivin lähettyville tulisi nappi tai "autocomplete" ratkaisu, jolla voisi noutaa osoitteen perusteella postinumero & kaupunki yhdistelmän. Tähän vielä lisä ajatuksena, että alueen voisi jossain configissa rajata, ettei ota jotain rovaniemen osoitetta, jos toiminta on eteläisessä suomessa. Posti / Itella ei tähän tarjoa mitään ratkaisua, mutta ystävämme google sen sijaan tarjoaa puoliksi pureskellun vastauksen:

http://maps.googleapis.com/maps/api/geocode/json?address=Mannerheimintie&sensor=false

Mitä ajatuksia tämmöinen herättää, onko muilla tarvetta?

Ystävällisin terveisin,
Juho



Ere Maijala

Hei,

Googlen dokumentaation mukaan tuota rajapintaa ei pitäisi käyttää interaktiivisessa sovelluksessa.

Sen sijaan suositellaan rajapintaa https://developers.google.com/maps/documentation/javascript/geocoding, mutta en ehtinyt vielä tarkistaa, saako sieltä yhtä strukturoituna vastauksen. Muuten hyvä idea kyllä. :)

--Ere

ioxo

Hei,

En tiedä noista Googlen lisensseistä niin... Mikäli tietojen kaivaminen nyt on sallittua, niin liitteenä on simppeli javascripti - html, jossa on osoiterivi ja nappi ja tieto haetaan Googlelta. Tuosta puuttuu tarkistus että maa on suomi (tai muu haluttu), osassa hauista saattaa tulla joitain ulkomaalaisia osoitteita Googlen tyyliin "did you mean/look-a-like address"

jQuerynä toimi uusin 1.8. mutta oletettavasti toimii suht millä vain jQueryllä (simppelit jQuery toiminnot).

Jos kiinnostaa ymppää tuo jollain tavalla projektiin mukaan, niin helpottaishan tuo kun on saanut osoiteen lykättyä, niin sen jälkeen pystyis painamaan napista, että kaupungit tulee <select> <option> viritelmään...

ioxo

Hei jälleen,

Innostuin leikkimään jqueryllä ja tein zipcodeja varten pienen plugarin jos kiinnostaa :).

Toivottavasti koodi on suht siistiä. Tämmöinen amatööri kun olen.

Esimerkissä ja koodissa on yritetty käyttää samoja id:itä, mitä on tuossa mlinvoice-ohjelmassakin, niin ei tartte välttämättä rupee säätämään. Pluginille pystyy syöttämään kyllä tarvittaessa noita id:itä (settings/options). Tuo toimii siis siten, että kun osoiterivi (street_address) tulee aktiiviseksi, niin <select> <option> -laatikko asetetaan pois ja taas kun osoiteriviltä poistutaan suoritetaan haku automaattisesti (ja <select><option> tulee näkyviin). Jos kenttä on tyhjä niin tällöin hakua ei pitäisi tapahtua. En ottanut huomioon vielä sitä, jos kenttään syöttää jotain turhaa niin tämän voisi jotenkin tarkistaa etukäteen (esim. "asdf") (?)

-Juho


Ere Maijala

Kiitoksia tästä. Täytyy kokeilla miltä tuo tuntuu käytännössä. Tuntuisi siltä, että tuon tuleminen esille poistuttaessa kentästä voi olla hämäävää, mutta kokeilemallahan se selviää. Erillinen nappula tai pudotusvalikko, kun on täytetty riittävästi, voisi olla selkeämpi.

--Ere

ioxo

Hei

Oleppa hyvä. Mulla oli napittomuuten semmoinen, että katsoin, josko se on vaikea sijoittaa tuohon miljoonien rivien sekaan (missä kysytään puhelinta, osoitetta jne) :). Toki se olisi ehkä helpompi että siinä olisi nappi, niin ei tulisi myöskään turhia hakuja niin helposti.

Tuo ei ole ihan täydellinen ja ehkä vähän turhaakin. Jos nyt oikein muistan koodia (en oo tuon lähettämisen jälkeen kattellu sitä) niin zipcode:sta \d{5} parsii melkein hyvin suomalaiset osoitteet. Jos tuosta haluaa tehdä worldwide version, niin saattaapi joutua rukkaamaan jonkin verran noita tietoja...

En tiedä paljonko ohjelmalla on käyttäjiä ulkomailla, mutta suomalaisia ajatellen tuosta myös puuttuu asetus, että saisi haettua ainoastaan suomalaisia osoitteita (tai
  • halutut maat)

    Tuosta vois olla myös helpohko rakentaa käänteinen versio, kun google tarjoaa sen "formatted address" rivin niin parsisi sen väärinpäin eli noutaisi pelkän rivin tuolta ja erottelisi tarvittaessa eri kenttiin siitä tiedot.

    Toivottavasti koodista on edes hitusen apua :).

    -Juho

kzmx

mutta eikö olisi helpompi tehdä php kyselyä postin sivujen kautta osoitteesta?:  http://www.itella.fi/online-palvelut/tyokalutjalaskurit/postinumerohaku.html

kun kerran haku tehdään urlipohjaisena..

käytännössä tiedän kuinka phpllä saisi tuon tehtyä, mutta toteutus on sitten ihan eriasia..

Ere Maijala

Ei taida olla ihan Itellan sivuston käyttöehtojen mukaista. Lisäksi suosin kunnollisia rajapintoja ennemmin kuin ns. screen scrapingia, kun jälkimmäinen hajoaa helposti esim. sivuston päivitysten takia.

--Ere

Ere Maijala

GitHubissa uusimmassa koodissa on nyt Google Places autocomplete -toimintoa (https://developers.google.com/maps/documentation/javascript/places#places_autocomplete) käyttävä toteutus. Vähän joutui virittelemään, kun tuo muuten mainio systeemi haluaisi käyttää vain yhtä kenttää osoitetiedoille, mutta lopputulos on toimiva ja rajapinta on tarkoitettu nimenomaan tähän käyttään. Äkkiseltään näyttäisi toimivan myös ulkomaisten osoitteiden kohdalla, mutta kovin paljon en ole testannut.

--Ere


Ere Maijala

Hyvä tietää, ja tuo on hieno asia. Tuo tietysti auttaa vain kotimaisissa osoitteissa, ja hyödyntämistä vaikeuttaa se, että datan saa vain ladattuna klönttinä. Osoitetiedosto on n. 100 megatavun möhkäle, joten sen hyödyntäminen pienessä paikallisessa asennuksessa on työlästä. Tuosta voisi tietysti rakentaa hienolla rajapinnalla varustetun palvelun, mutta siitä tulisi kustannuksia.

--Ere

ioxo

Wau! Hienon ratkaisun olit kehittänyt Ere. Piti oikein testipalvelin pystyttää ja kokeilla miten tuo toimii. Kymmenen pistettä ja papukaijamerkki! :)

Kiva tietää, että posti jakelee nykyään tuota tietoa avoimesti. Tarvineeko tuohon tuon enempää oikein panostaa, jos kerta homma toimii, niin miksi vaihtaa?