Quintiq file version 2.0
|
#parent: #root
|
Method DoGeocode
|
{
|
#keys: '1[105690.0.466136613]'
|
Description:
|
[*
|
Entry point/method for a OSM Geocode operation call.
|
Construct the geocode request and prepare the http interface, the callbacks and make an asynchronous call
|
*]
|
TextBody:
|
[*
|
// boon kiat Nov-1-2013 (created)
|
utils := this.LibOSM_Utils();
|
arguments := this.Arguments();
|
argumentsroot := arguments.Root();
|
utils.DebugDump( "geocode_args.txt", argumentsroot );
|
|
geocodingserver := this.LibOSM_GeocodingServer( relnew );
|
|
// Generate the actual request
|
ticks := OS::PrecisionCounter();
|
url := geocodingserver.GenerateGeocodeURL();
|
utils.DebugEndTrace( "GeocodingServer.GenerateGeocodeURL", ticks );
|
|
ticks := OS::PrecisionCounter();
|
|
// Generate the HTTPInterface instance that will be used to send the request to the OpenStreetMap Nominatim server
|
httpinterface := geocodingserver.CreateHTTPInterface();
|
httpinterface.URL( url );
|
onsuccesscallback := Reflection::FindMethodBySignature( typeof( LibOSM_GeocodingServer ).Name(), "ProcessGeocodeResponse", typeof( HTTPInterface ).Name() );
|
assert( not isnull( onsuccesscallback ), "OSMGISLibrary.DoGeocode: failed to retrieve the method that will serve as the OnSuccess callback" );
|
httpinterface.OnSuccessCallback( onsuccesscallback, geocodingserver );
|
onfailurecallback := Reflection::FindMethodBySignature( typeof( LibOSM_Utils ).Name(), "HandleError", typeof( HTTPInterface ).Name() );
|
assert( not isnull( onfailurecallback ), "OSMGISLibrary.DoGeocode: failed to retrieve the method that will serve as the OnFailure callback" );
|
httpinterface.OnFailureCallback( onfailurecallback, utils );
|
|
// Send the request, asynchronously
|
httpinterface.ASyncCall();
|
|
utils.DebugEndTrace( "The HTTP call to GeocodingServer", ticks );
|
*]
|
}
|