Includi questo codice Javascript nella sezione HEAD della pagina html sulla quale vuoi attivare il Suggest Free (solo Località):
<!-- include libreria Suggest -->
<script type="text/javascript" src="<<URL_SUGGEST_FREE>>">
</script>
<!-- Inizio dichiarazioni Suggest -->
<script type="text/javascript">
// Inizializzazione numero aree di suggest nella pagina
initStruct(1);
// La Licenza
keyTR = "<<LA_TUA_CHIAVE_LICENZA>>";
// Dichiarazione dei controlli di input\output per il suggest
aAddressSet[0].townSrch = "txtComune";
aAddressSet[0].town = "txtComune";
aAddressSet[0].prov = "txtProv";
aAddressSet[0].zip = "txtCap";
aAddressSet[0].village = "txtFrazione";
provSearch = false;
</script>
<!-- Fine dichiarazioni Suggest Free -->
Sostituisci al posto di txtComune, txtProv, txtCap, txtFrazione gli ID degli Input Textfields relativi nella tua form. Ricordati di inserire l’URL del servizio e la Licenza che avrai ottenuto nella tua area riservata dopo la registrazione.
<!-- include della libreria di gestione Suggest StreetMaster --> <script type="text/javascript" src="<<URL_SERVIZIO>>">
</script> <!-- Inizio dichiarazioni Suggest --> <script type="text/javascript"> // Inizializzazione numero aree di suggest nella pagina initStruct(1); // Chiave suggest keyTR = "<<_LA_CHIAVE_LICENZA>>"; // Dichiarazione dei controlli di input\output per il suggest aAddressSet[0].townSrch = "txtComune"; aAddressSet[0].town = "txtComune"; aAddressSet[0].prov = "txtProv"; aAddressSet[0].zip = "txtCap"; aAddressSet[0].village = "txtFrazione"; aAddressSet[0].address = "txtIndirizzo"; provSearch = false; </script> <!-- Fine dichiarazioni Suggest -->
Sostituisci al posto di txtComune,txtProv, txtCap, txtFrazione, txtIndirizzo gli ID degli Input Textfields relativi nella tua form. Ricordati di inserire l’URL del servizio e la Licenza che avrai ottenuto nella tua area riservata dopo la registrazione.
<input id="txtComune" autocomplete="off" type="text">
<input id="txtIndirizzo" autocomplete="off" type="text">
<input id="txtProv" autocomplete="off" type="text">
<input id="txtCap" autocomplete="off" type="text">
<input id="txtFrazione" autocomplete="off" type="text">
Il codice Javascript che segue è un esempio di come il servizio Verify possa essere chiamato, in modalità REST, da una pagina HTML contenente una form di raccolta indirizzo. Salvate il codice in un file verify-integrazione.js, curando di sostituire nel codice ove indicato gli elementi di personalizzazione (licenza, URL, ID della form, ID degli elementi della form):
$(function() {
$('form#component-form').submit(componentFormSubmitted);
});
function suppress(event) {
if (!event)
return false;
if (event.preventDefault)
event.preventDefault();
if (event.stopPropagation)
event.stopPropagation();
event.cancelBubble = true;
return false;
}
function componentFormSubmitted(event) {
lookupStarted(ricercaIndirizzo);
return suppress(event);
}
function lookupStarted(lookup) {
lookup(function() {
// Il tuo comportamento post ricerca qui
alert('Ricerca terminata!');
});
}
var results = {}; // Risultati della chiamata al servizio verify
var ADDRESS_API_URL = "https://streetmaster.streetmaster.it/smrest/webresources/verify";
var LICENCE_KEY = "la-tua-licenza";
var TIMEOUT_MS = 10000; // Timeout
// Prende i valori dell'indirizzo dalla form e li prepara per la chiamata
// #localita,#frazione,#strada,#civico,#provincia,#cap sono gli ID dei campi input form indirizzi
function preparaRicercaIndirizzo() {
var lookup = {};
lookup.Key = LICENCE_KEY;
lookup.Localita = $('#localita').val();
lookup.Localita2 = $('#frazione').val();
lookup.Indirizzo = $('#strada').val();
lookup.Civico = $('#civico').val();
lookup.Provincia = $('#provincia').val();
lookup.Cap = $('#cap').val();
return lookup;
}
function copiaNormalizzatoSuform(json) {
// ricopia i valori normalizzati sulla form
$('#localita').val(json['Output'][0]['Comune']);
$('#frazione').val(json['Output'][0]['Frazione']);
$('#strada').val(json['Output'][0]['Detail']['Dug'] + ' ' + json['Output'][0]['Detail']['Toponimo']);
$('#civico').val(json['Output'][0]['Detail']['Civico']);
$('#provincia').val(json['Output'][0]['Prov']);
$('#cap').val(json['Output'][0]['Cap']);
return 1;
}
function ricercaIndirizzo(success) {
var request = {
url: ADDRESS_API_URL,
timeout: TIMEOUT_MS,
data: preparaRicercaIndirizzo()
};
$.ajax(request).done(function(json) {
if (processaRisultato(json)) {
success();
}
}).fail(ajaxFail);
}
function processaRisultato(json) {
if (json.length == 0) {
alert('Nessun risultato');
return false;
}
console.log('VERIFY:');
console.log(JSON.stringify(json, null, 4));
}
Includi il Javascript nella tua pagina, ed il servizio Verify sarò attivato al submit della form. Il comportamento previsto, al submit della form, prevede che i valori normalizzati siano sostituiti ai valori non normalizzati. Potrai poi aggiungere ulteriori comportamenti personalizzati allo script a tuo piacimento.
All’interno della pagina dovrà essere presente una form con un TEXT FIELD relativo ad ogni componente dell’indirizzo, come nell’esempio qui sotto:
<input id="localita" autocomplete="off" type="text">
<input id="strada" autocomplete="off" type="text">
<input id="provincia" autocomplete="off" type="text">
<input id="cap" autocomplete="off" type="text">
<input id="frazione" autocomplete="off" type="text">
Puoi ovviamente mantenere la tua form pre-esistente o disegnarne una a tuo piacimento, l’unica cosa importante è segnare gli ID dei campi relativi a località, cap, strada per inserirli nelle dichiarazioni.
Il codice PHP che segue può essere incluso in una pagina ed illustra come, utilizzando al libreria curl, sia possibile chiamare il servizio Verify (o Fill) in modalità REST. Curate di sostituire nel codice ove indicato gli elementi di personalizzazione (licenza, URL, nomi dei parametri da passare allo script che contengono l’indirizzo):
?php
$api_url = "il-tuo-url";
$timeout = 10000;
$licence_key = "la-tua-licenza";
$provincia = "vr";// $_GET['provincia'];
$localita = "verona";//$_GET['localita'];
$frazione = "";//$_GET['frazione'];
$cap = "37100";//$_GET['cap'];
$strada = "via caprera";//$_GET['strada'];
$civico = "3";//$_GET['civico'];
$url_query = "Provincia=".urlencode($provincia)."&Localita=".urlencode($localita);
$url_query .= "&Localita2=".urlencode($frazione)."&Cap=".urlencode($cap);
$url_query .= "&Dug=&Indirizzo=".urlencode($strada)."&Civico=".urlencode($civico);
$url_query .= "&Key=".urlencode($licence_key);
$url_final = $api_url."?".$url_query;
echo $url_final."\n";
ob_start();
$out = fopen('php://output', 'w');
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_STDERR, $out);
curl_setopt($ch, CURLOPT_URL, $url_final);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$return = curl_exec($ch);
curl_close($ch);
fclose($out);
$debug = ob_get_clean();
//echo $return;
var_dump(json_decode($return));
echo "<!-- DEBUG CONNECTION\n";
echo $debug;
echo "\n-->";
?>
Includi lo script in una pagina e personalizza a scelta, il risultato della chiamata è contenuto in un Array Associativo con la struttura di Output prevista per il servizio scelto Verify o Fill.
Lo script qui a sinistra potrà essere invocati ad esempo da una form come la sottostante, il codice PHP va incluso nell’URL he viene invocato al Submit della form stessa.
<input id="localita" autocomplete="off" type="text">
<input id="strada" autocomplete="off" type="text">
<input id="provincia" autocomplete="off" type="text">
<input id="cap" autocomplete="off" type="text">
<input id="frazione" autocomplete="off" type="text">
Ecco l’elenco degli esempi di codice di integrazione in JAVA:
https://github.com/StreetMaster/DemoFillRestJava
Demo Java per l’utilizzo del ws rest FILL di verifica e normalizzazione indirizzi italiani di StreetMaster
…
Demo Java per l’utilizzo del ws soap FILL di verifica e normalizzazione indirizzi italiani di StreetMaster
…
Demo Java per l’utilizzo del ws rest VERIFY FREE di verifica e normalizzazione indirizzi italiani di StreetMaster
…
Demo Java per l’utilizzo del ws soap VERIFY FREE di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoVerifyRestJava
Demo Java per l’utilizzo del ws rest VERIFY di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoVerifyJava
Demo Java per l’utilizzo del ws soap VERIFY di verifica e normalizzazione indirizzi italiani di StreetMaster
Ecco l’elenco degli esempi di codice di integrazione in C#:
https://github.com/StreetMaster/DemoVerifyFreeRestNET
Demo .NET per l’utilizzo del ws rest VERIFY FREE di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoFillRestNET
Demo .NET per l’utilizzo del ws soap FILL di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoVerifyRestNET
Demo .NET per l’utilizzo del ws rest VERIFY FREE di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoFillNET
Demo .NET per l’utilizzo del ws soap FILL di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoVerifyFreeNET
Demo .NET per l’utilizzo del ws soap VERIFY FREE di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoVerifyNET
Demo .NET per l’utilizzo del ws soap VERIFY di verifica e normalizzazione indirizzi italiani di StreetMaster
Ecco l’elenco degli esempi di codice di integrazione in ASP.NET
https://github.com/StreetMaster/DemoSuggestFreeASPNET
Demo ASP.NET per l’utilizzo del servizio SUGGEST Free di autocompletamento degli indirizzi italiani
https://github.com/StreetMaster/DemoVerifyRestASP.NET
Demo ASP.NET per l’utilizzo del ws rest VERIFY di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoVerifyFreeRestASP.NET
Demo ASP.NET per l’utilizzo del ws rest VERIFY FREE di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoFillRestASPNET
Demo ASP.NET per l’utilizzo del ws soap FILL di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoSuggestASPNET
Demo ASP.NET per l’utilizzo del servizio SUGGEST di autocompletamento degli indirizzi italiani
https://github.com/StreetMaster/DemoVerifyASP.NET
Demo ASP.NET per l’utilizzo del ws soap VERIFY di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoFillASPNET
Demo ASP.NET per l’utilizzo del ws soap FILL di verifica e normalizzazione indirizzi italiani di StreetMaster
https://github.com/StreetMaster/DemoVerifyFreeASP.NET
Demo ASP.NET per l’utilizzo del ws soap VERIFY FREE di verifica e normalizzazione indirizzi italiani di StreetMaster