Specificare le proprietà avanzate per i servizi di routing da un file di proprietà.
Proprietà di servizio aggiuntive
Quando si configurano routing service da un dataset di rete, è possibile specificare un file di proprietà contenente impostazioni aggiuntive per i routing service, come il numero minimo e massimo di istanze del servizio o i valori predefiniti per uno o più parametri supportati dal REST API dei servizi. Ad esempio, se le applicazioni che utilizzano il servizio di percorso e indicazioni stradali utilizzano solo i valori di tempo e distanza di viaggio dai percorsi di output e non hanno bisogno di indicazioni stradali o geometrie di percorso, è possibile configurare il servizio di percorso e indicazioni stradali utilizzando il file delle proprietà per restituire solo gli output desiderati per impostazione predefinita. In questo modo si ottimizzano le prestazioni del servizio di percorso e indicazioni, in quanto non vengono generati output aggiuntivi non utilizzati dalle applicazioni client.
Il file delle proprietà memorizza le impostazioni nel formato JavaScript Object Notation (JSON). Questo argomento della guida presuppone una familiarità di base con il formato JSON.
È possibile configurare proprietà avanzate per un routing service specificando un file delle proprietà. Il file delle proprietà predefinito denominato publishroutingservices.json.
Questo file può essere trovato all'interno della directory di installazione di ArcGIS Server in <install folder>/framework/runtime/ArcGIS/Resources/ArcToolBox/Services/routingservices.
Questa sezione descrive la struttura del file delle proprietà utilizzando come esempio il file predefinito. Per modificare le proprietà, è possibile creare una copia del file predefinito e modificarla utilizzando un editor di testo. Quando si richiama il processo di configurazione del routing, specificare il file modificato come input.
Struttura del file delle proprietà
Il file delle proprietà contiene un oggetto di primo livello, chiamato routingServices, che contiene gli oggetti mapServices e gpServices. Ciascuno di questi oggetti può contenere uno o più oggetti che rappresentano uno specifico servizio di routing. Gli oggetti JSON di primo livello nel file delle proprietà. L'oggetto mapServices definisce le proprietà per il map service networkAnalysis e l'oggetto gpServices definisce le proprietà per i servizi di geoprocessing asyncNetworkAnalysis, syncNetworkAnalysis e routingUtilities.{
"routingServices": {
"mapServices": {
"networkAnalysis": {
}
},
"gpServices": {
"asyncNetworkAnalysis": {
},
"syncNetworkAnalysis": {
},
"routingUtilities": {
}
}
}
}
Un oggetto di map service, ad esempio networkAnalysis, contiene un oggetto serviceProperties che definisce le proprietà del livello di servizio per il map service e l'oggetto layerProperties che definisce le proprietà di uno o più layer utilizzati dal map service.
Un oggetto di servizio di geoprocessing, ad esempio asyncNetworkAnalysis, contiene un oggetto serviceProperties che definisce le proprietà del livello di servizio per il servizio di geoprocessing e l'oggetto toolProperties che definisce le proprietà di uno o più strumenti di geoprocessing utilizzati dal servizio di geoprocessing.
L'oggetto JSON del servizio contenente serviceProperties e layerProperties o toolProperties.
{
"routingServices": {
"mapServices": {
"networkAnalysis": {
"serviceProperties": {
},
"layerProperties": {
}
}
},
"gpServices": {
"asyncNetworkAnalysis": {
"serviceProperties": {
},
"toolProperties": {
}
},
"syncNetworkAnalysis": {
"serviceProperties": {
},
"toolProperties": {
}
},
"routingUtilities": {
"serviceProperties": {
},
"toolProperties": {
}
}
}
}
}
Un oggetto serviceProperties all'interno di un oggetto di servizio definisce una o più proprietà del livello di servizio, come il numero massimo di istanze di servizio per computer (MaxInstances) o il tempo massimo (in secondi) durante il quale il client può utilizzare un servizio (UsageTimeout).
Un oggetto layerProperties per un map service definisce le proprietà per i layer route, closestFacility, serviceArea e odCostMatrix. Le proprietà di un layer sono definite come parte dell'oggetto defaultValues.
Un oggetto toolProperties per un servizio di geoprocessing definisce le proprietà per gli strumenti di geoprocessing come FindRoutes, FindClosestFacilities, GenerateServiceAreas, GenerateOriginDestinationCostMatrix, SolveLocationAllocation, SolveVehicleRoutingProblem e EditVehicleRoutingProblem. Le proprietà di uno strumento sono definite come parte dell'oggetto defaultValues. L'oggetto constantParameters consente di elencare uno o più parametri per lo strumento che non dovrebbero essere disponibili nel REST API del servizio di geoprocessing.
L'oggetto layerProperties per i layer di un map service e l'oggetto toolProperties per gli strumenti del servizio di geoprocessing.
{
"routingServices": {
"mapServices": {
"networkAnalysis": {
"serviceProperties": {
},
"layerProperties": {
"route": {
"defaultValues": {
}
},
"closestFacility": {
"defaultValues": {
}
},
"serviceArea": {
"defaultValues": {
}
},
"odCostMatrix": {
"defaultValues": {
}
}
}
}
},
"gpServices": {
"asyncNetworkAnalysis": {
"serviceProperties": {
},
"toolProperties": {
"FindRoutes": {
"defaultValues": {
},
"constantParameters": []
},
"FindClosestFacilities": {
"defaultValues": {
},
"constantParameters": []
},
"GenerateServiceAreas": {
"defaultValues": {
},
"constantParameters": []
},
"GenerateOriginDestinationCostMatrix": {
"defaultValues": {
},
"constantParameters": []
},
"SolveLocationAllocation": {
"defaultValues": {
},
"constantParameters": []
},
"SolveVehicleRoutingProblem": {
"defaultValues": {
},
"constantParameters": []
}
}
},
"syncNetworkAnalysis": {
"serviceProperties": {
},
"toolProperties": {
"EditVehicleRoutingProblem": {
"defaultValues": {
},
"constantParameters": []
}
}
},
"routingUtilities": {
"serviceProperties": {
}
}
}
}
}
Modificare e caricare un file delle proprietà
Quando si configura un routing service, è possibile caricare un file delle proprietà con proprietà specificate dall'utente, come istanze minime e massime. Il file delle proprietà può essere trovato all'interno della directory di installazione di ArcGIS Server in <install folder>/framework/runtime/ArcGIS/Resources/ArcToolBox/Services/routingservices/publishroutingservices.json. Per modificare le proprietà, fare una copia del file in questione e modificarlo con un editor di testo.
Suggerimento:
Quando si modifica il file, si consiglia di utilizzare un editor di testo come Visual Studio Code che riconosca la sintassi JSON per modificare il file delle proprietà, per evitare errori di sintassi durante la modifica del file delle proprietà. Un file di proprietà con un qualsiasi errore di sintassi JSON comporta un errore nel processo di configurazione dei servizi di routing.