私はLeaflet-Esri APIを通じてポリゴンジオメトリを返すGPタスクを実行しています。 その後、これらのジオメトリを標準のArcGIS Server GeometryユーティリティとL.esri.requestプロセスを通じてユニオンし、そのユニオン結果を最終的なLeaflet GPタスクプロセスで使用する必要があります。このプロセスは非同期で、CORSを使用してPOSTリクエストを強制しています。 問題は、最終GPタスクの呼び出しがタスク結果(JSONファイルへのURL文字列)を「検出」しないことです。ブラウザのXHRリクエストで返されているのが確認でき、結果はArcGIS Server GPジョブフォルダにあります。 私が気づいた唯一の問題は、ユニオンタスクの後、最後のGPタスクのコールバックIDが再度インクリメントされず、Leaflet APIが以前のGPタスクの結果のいくつかを取得しようとしている可能性があることです。 GPタスク結果のコールバックIDを「リセット」して、APIが正しいGPタスク結果を取得しようとしていることを保証する方法はありますか?
<\/P>
以下は最終GPタスク呼び出しのコードです:<\/P>
var gpServiceTest = L.esri.GP.service({
url: myGPserviceURL,
path: "submitJob",
async:true,
asyncInterval:5,
useCors:true
});
var gpTaskTest = gpServiceTest.createTask();
gpTaskTest.setParam("Input_Polygon_String", rings);
gpTaskTest.setOutputParam('JSON_Features');
gpTaskTest.run(function(error, response, raw) {
loadjson(response.JSON_Features.url);
});<\/CODE><\/PRE>
<\/P>
ユニオンタスクから得られたポリゴン結果を他の初期GPタスクより前に単独関数として最終GPタスクに渡すと、タスク結果リクエストにコールバック関数IDが追加されないことがわかりました。 しかし、初期GPタスクとユニオンの後に最終GPタスクを実行すると、以前のGPタスク結果リクエストのコールバックIDに似たコールバック関数IDが結果リクエストに追加され、その時に最終GPタスク結果からエラーが返されます。<\/P>