Geokodavimo programinė įranga yra kompiuterio programa, kuri sujungia gatvių adresus su žemėlapio informacija, kad kiekvienam adresui būtų suteikta unikali vieta. Jis iš esmės konvertuoja adresų sąrašą į taškus žemėlapyje. Dauguma geografinių informacinių sistemų (GIS) programinės įrangos tipų turės kai kurias pagrindines geokodavimo funkcijas, tačiau yra ir atskira geokodavimo programinė įranga. Kai kuri geokodavimo programinė įranga netgi gali atlikti geokodavimo operacijas be kartografavimo seanso, susiedama adresus vienoje duomenų bazėje su gatvių atributais duomenų bazėje šaltinio žemėlapiui.
Geokoduojant naudojamo žemėlapio tipas gali skirtis priklausomai nuo to, kokio mastelio ir detalumo lygio reikia; žemėlapiuose gali būti žemės sklypų, pašto kodų ar rajonų žemėlapiai. Paprastai gatvių lygio žemėlapis naudojamas tiksliausiems rezultatams pasiekti. Šaltinio žemėlapiui reikės duomenų bazės, kurioje būtų tam tikri žemėlapio objektų atributai. Pavyzdžiui, gatvių žemėlapių duomenų bazėje gali būti kiekvienos gatvės gatvių pavadinimai ir adresų diapazonas. Norint patikimai interpoliuoti adresą, būtina turėti tikslius žemėlapio duomenis.
Kad geokodavimo programinė įranga veiktų, jai reikalingas adreso standartizavimas. Kompiuterinė programa gali neatpažinti, kad „Šv. yra trumpas „gatvė“ adresu, taigi adresas „123 Main St. nebūtų rastas kaip „123 Main Street“ atitikmuo. Visuose duomenų bazės adresų įrašuose turi būti naudojamos tos pačios didžiosios raidės ir santrumpų taisyklės. Svetainės, kuriose pateikiamos nuorodos į adresus, paprastai turi funkciją, leidžiančią interpretuoti adresus, kurie neįvesti standartiniu formatu.
Geokodavimo programinė įranga išanalizuoja adresus į atskirus komponentus. Jungtinėse Amerikos Valstijose ir daugelyje kitų šalių adresas paprastai gali būti suskirstytas į šiuos komponentus: priešdėlio arba priesagos kryptį, priešdėlio tipą, adreso numerį, gatvės pavadinimą, gatvės tipą ir pašto kodą. Pavyzdžiui, adresu 692 Hwy 31 N „692“ yra adreso numeris, „Hwy“ yra priešdėlio tipas, „31“ yra gatvės pavadinimas, o „N“ yra priesagos kryptis. Programinė įranga tokiu būdu suskaidys visus duomenų bazės adresus.
Kai žemėlapio atributų duomenų bazė ir adresų duomenų bazė yra įtrauktos į geokodavimo programinę įrangą, taikomieji procesai gali bandyti suderinti kiekvieną adresą su vieta žemėlapyje. Ji sujungia abu duomenis, suderindama kiekvienos duomenų bazės įrašus, o kai kuri programinė įranga pateiks balą, kiek atitikimo ji randa kiekvienam adresui. Adresų duomenų bazėje bus pažymėta atitinkama žemėlapio koordinatė, dažniausiai platuma ir ilguma, iš žemėlapių duomenų bazės.
Yra keli būdai, kaip programinė įranga nustato, kur gatvių žemėlapyje įdėti adresą. Vienas iš dažniausių būdų yra vieno diapazono metodas, kai kiekvienai gatvei priskiriamas vienas adresų numerių diapazonas. Tada programa patikrins adresą, ar jis patenka į nurodytą tos gatvės skaičių diapazoną. Jei taip, adreso vietos taškas dedamas gatvėje proporcingai jo vertei tarp gatvių diapazono galinių taškų. Pavyzdžiui, jei gatvės adresų diapazonas yra nuo 500 iki 599, tada adreso numeris 550 žemėlapyje būtų maždaug pusiaukelėje tarp gatvės galinių taškų.