mirror of
https://github.com/Esri/offline-editor-js.git
synced 2025-12-15 15:20:05 +00:00
refactored parseGetTiledInfo to TilesCore
This commit is contained in:
parent
deaac929b9
commit
8e148eb426
@ -79,7 +79,7 @@ define([
|
||||
alert("There was a problem retrieving tiled map info in OfflineTilesEnablerLayer.");
|
||||
}
|
||||
|
||||
this.parseGetTileInfo(result,function(tileResult){
|
||||
this._tilesCore._parseGetTileInfo(result,function(tileResult){
|
||||
this.layerInfos = tileResult.resultObj.layers;
|
||||
this.minScale = tileResult.resultObj.minScale;
|
||||
this.maxScale = tileResult.resultObj.maxScale;
|
||||
@ -573,53 +573,6 @@ define([
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
parseGetTileInfo: function(data,callback){
|
||||
|
||||
var fixedResponse = data.replace(/\\'/g, "'");
|
||||
var resultObj = JSON.parse(fixedResponse);
|
||||
var spatialRef = new SpatialReference({wkid:resultObj.spatialReference.wkid});
|
||||
|
||||
var lods = [];
|
||||
|
||||
var lodsObj = JSON.parse(data,function(key,value){
|
||||
if(((typeof key == 'number') || (key % 1 == 0)) && (typeof value === "object")){
|
||||
var l = new LOD();
|
||||
l.level = value.level;
|
||||
l.resolution = value.resolution;
|
||||
l.scale = value.scale;
|
||||
|
||||
if(value.hasOwnProperty("level")) lods.push(l);
|
||||
return value;
|
||||
}
|
||||
else{
|
||||
return value;
|
||||
}
|
||||
});
|
||||
|
||||
var initialExtent = new Extent(
|
||||
parseFloat(resultObj.initialExtent.xmin),
|
||||
parseFloat(resultObj.initialExtent.ymin),
|
||||
parseFloat(resultObj.initialExtent.xmax),
|
||||
parseFloat(resultObj.initialExtent.ymax),
|
||||
spatialRef
|
||||
);
|
||||
|
||||
var fullExtent = new Extent(
|
||||
parseFloat(resultObj.fullExtent.xmin),
|
||||
parseFloat(resultObj.fullExtent.ymin),
|
||||
parseFloat(resultObj.fullExtent.xmax),
|
||||
parseFloat(resultObj.fullExtent.ymax),
|
||||
spatialRef
|
||||
);
|
||||
|
||||
var tileInfo = new TileInfo(resultObj.tileInfo);
|
||||
var origin = new Point(tileInfo.origin.x,tileInfo.origin.y,spatialRef)
|
||||
tileInfo.origin = origin;
|
||||
tileInfo.lods = lods;
|
||||
|
||||
callback({initExtent:initialExtent,fullExtent:fullExtent,tileInfo:tileInfo,resultObj:resultObj});
|
||||
},
|
||||
|
||||
/**
|
||||
* Test for localStorage functionality
|
||||
* @returns {boolean}
|
||||
|
||||
@ -4,11 +4,17 @@
|
||||
*/
|
||||
define([
|
||||
"dojo/query",
|
||||
"esri/geometry/Point",
|
||||
"esri/geometry/Extent",
|
||||
"esri/SpatialReference",
|
||||
"esri/layers/TileInfo",
|
||||
"esri/layers/LOD",
|
||||
"tiles/base64utils",
|
||||
],
|
||||
function(query,Base64Utils){
|
||||
function(query,Point,Extent,SpatialReference,TileInfo,LOD,Base64Utils){
|
||||
"use strict";
|
||||
var TilesCore = function(){
|
||||
|
||||
this._storeTile= function(url,proxyPath,store,callback) // callback(success, msg)
|
||||
{
|
||||
url = url.split("?")[0];
|
||||
@ -41,6 +47,53 @@ define([
|
||||
};
|
||||
req.send(null);
|
||||
}
|
||||
|
||||
this._parseGetTileInfo = function(data,callback){
|
||||
|
||||
var fixedResponse = data.replace(/\\'/g, "'");
|
||||
var resultObj = JSON.parse(fixedResponse);
|
||||
var spatialRef = new SpatialReference({wkid:resultObj.spatialReference.wkid});
|
||||
|
||||
var lods = [];
|
||||
|
||||
var lodsObj = JSON.parse(data,function(key,value){
|
||||
if(((typeof key == 'number') || (key % 1 == 0)) && (typeof value === "object")){
|
||||
var l = new LOD();
|
||||
l.level = value.level;
|
||||
l.resolution = value.resolution;
|
||||
l.scale = value.scale;
|
||||
|
||||
if(value.hasOwnProperty("level")) lods.push(l);
|
||||
return value;
|
||||
}
|
||||
else{
|
||||
return value;
|
||||
}
|
||||
});
|
||||
|
||||
var initialExtent = new Extent(
|
||||
parseFloat(resultObj.initialExtent.xmin),
|
||||
parseFloat(resultObj.initialExtent.ymin),
|
||||
parseFloat(resultObj.initialExtent.xmax),
|
||||
parseFloat(resultObj.initialExtent.ymax),
|
||||
spatialRef
|
||||
);
|
||||
|
||||
var fullExtent = new Extent(
|
||||
parseFloat(resultObj.fullExtent.xmin),
|
||||
parseFloat(resultObj.fullExtent.ymin),
|
||||
parseFloat(resultObj.fullExtent.xmax),
|
||||
parseFloat(resultObj.fullExtent.ymax),
|
||||
spatialRef
|
||||
);
|
||||
|
||||
var tileInfo = new TileInfo(resultObj.tileInfo);
|
||||
var origin = new Point(tileInfo.origin.x,tileInfo.origin.y,spatialRef)
|
||||
tileInfo.origin = origin;
|
||||
tileInfo.lods = lods;
|
||||
|
||||
callback({initExtent:initialExtent,fullExtent:fullExtent,tileInfo:tileInfo,resultObj:resultObj});
|
||||
}
|
||||
}
|
||||
|
||||
return TilesCore;
|
||||
|
||||
@ -236,7 +236,7 @@ describe("offline enabler custom layer library", function()
|
||||
|
||||
it("verifies ability to parse layer info",function(done){
|
||||
g_basemapLayer._getTileInfoPrivate("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",function(result){
|
||||
g_basemapLayer.parseGetTileInfo(result,function(result){
|
||||
tilesCore._parseGetTileInfo(result,function(result){
|
||||
expect(result).toEqual(jasmine.any(Object));
|
||||
})
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user