mirror of
https://github.com/Esri/offline-editor-js.git
synced 2025-12-15 15:20:05 +00:00
initial refactor offlineTilesEnabler & OfflineTilesEnablerLayer
This commit is contained in:
parent
0e1d793976
commit
08e189d763
@ -7,8 +7,9 @@ define([
|
||||
"esri/geometry/Extent",
|
||||
"esri/layers/TileInfo",
|
||||
"esri/SpatialReference",
|
||||
"esri/geometry/Polygon",
|
||||
"esri/layers/TiledMapServiceLayer"
|
||||
], function(query, request, declare,LOD,Point,Extent,TileInfo,SpatialReference,TiledMapServerLayer)
|
||||
], function(query, request, declare,LOD,Point,Extent,TileInfo,SpatialReference,Polygon,TiledMapServerLayer)
|
||||
{
|
||||
"use strict";
|
||||
return declare("esri.OfflineTileEnablerLayer",[TiledMapServerLayer],{
|
||||
@ -27,7 +28,7 @@ define([
|
||||
callback(false);
|
||||
}
|
||||
|
||||
this._tilesCore = new TilesCore();
|
||||
this._tilesCore = new O.esri.Tiles.TilesCore();
|
||||
|
||||
//For calculating minZoom and maxZoom
|
||||
Array.prototype.sortNumber = function(){return this.sort(function(a,b){return a - b})};
|
||||
@ -49,7 +50,7 @@ define([
|
||||
|
||||
this.offline = {
|
||||
online: isOnline,
|
||||
store: new TilesStore(),
|
||||
store: new O.esri.Tiles.TilesStore(),
|
||||
proxyPath: "../lib/resource-proxy/proxy.php"
|
||||
};
|
||||
|
||||
@ -73,7 +74,7 @@ define([
|
||||
alert("There was a problem retrieving tiled map info in OfflineTilesEnablerLayer.");
|
||||
}
|
||||
|
||||
this._tilesCore._parseGetTileInfo(result,function(tileResult){
|
||||
this._tilesCore._parseGetTileInfo(SpatialReference,LOD,Extent,TileInfo,Point,result,function(tileResult){
|
||||
this.layerInfos = tileResult.resultObj.layers;
|
||||
this.minScale = tileResult.resultObj.minScale;
|
||||
this.maxScale = tileResult.resultObj.maxScale;
|
||||
@ -128,7 +129,7 @@ define([
|
||||
/* temporary URL returned immediately, as we haven't retrieved the image from the indexeddb yet */
|
||||
var tileid = "void:/"+level+"/"+row+"/"+col;
|
||||
var img = null;
|
||||
this._tilesCore._getTiles(img,this._imageType,url,tileid,this.offline.store);
|
||||
this._tilesCore._getTiles(img,this._imageType,url,tileid,this.offline.store,query);
|
||||
|
||||
return tileid;
|
||||
},
|
||||
@ -156,7 +157,7 @@ define([
|
||||
*/
|
||||
getLevelEstimation: function(extent, level, tileSize)
|
||||
{
|
||||
var tilingScheme = new TilingScheme(this);
|
||||
var tilingScheme = new O.esri.Tiles.TilingScheme(this);
|
||||
var cellIds = tilingScheme.getAllCellIdsInExtent(extent,level);
|
||||
|
||||
var levelEstimation = {
|
||||
@ -303,7 +304,7 @@ define([
|
||||
*/
|
||||
getTilePolygons : function(callback) // callback(Polygon polygon) or callback(null, error)
|
||||
{
|
||||
this._tilesCore._getTilePolygons(this.offline.store,this.url,this,callback);
|
||||
this._tilesCore._getTilePolygons(Polygon,this.offline.store,this.url,this,callback);
|
||||
},
|
||||
|
||||
/**
|
||||
@ -336,7 +337,7 @@ define([
|
||||
*/
|
||||
estimateTileSize : function(callback)
|
||||
{
|
||||
this._tilesCore._estimateTileSize(this._lastTileUrl,this.offline.proxyPath,callback);
|
||||
this._tilesCore._estimateTileSize(request,this._lastTileUrl,this.offline.proxyPath,callback);
|
||||
},
|
||||
|
||||
/**
|
||||
@ -356,7 +357,7 @@ define([
|
||||
* @returns Array
|
||||
*/
|
||||
getTileUrlsByExtent : function(extent,level){
|
||||
var tilingScheme = new TilingScheme(this);
|
||||
var tilingScheme = new O.esri.Tiles.TilingScheme(this);
|
||||
var level_cell_ids = tilingScheme.getAllCellIdsInExtent(extent,level);
|
||||
var cells = [];
|
||||
|
||||
|
||||
@ -299,11 +299,13 @@ O.esri.Tiles.TilesCore = function(){
|
||||
|
||||
/**
|
||||
* Gets all the important bits out of the map services description page
|
||||
* @param SpatialReference "esri/SpatialReference"
|
||||
* @param LOD "esri/layers/LOD"
|
||||
* @param data The http response via f=pjson
|
||||
* @param callback callback({initExtent,fullExtent,tileInfo,resultObj});
|
||||
* @private
|
||||
*/
|
||||
this._parseGetTileInfo = function(data,callback){
|
||||
this._parseGetTileInfo = function(SpatialReference,LOD,Extent,TileInfo,Point,data,callback){
|
||||
|
||||
var fixedResponse = data.replace(/\\'/g, "'");
|
||||
var resultObj = JSON.parse(fixedResponse);
|
||||
|
||||
@ -1,8 +1,9 @@
|
||||
define([
|
||||
"dojo/query",
|
||||
"dojo/request",
|
||||
"esri/geometry/Polygon",
|
||||
"dojo/_base/declare"
|
||||
], function(query, request, declare)
|
||||
], function(query, request, Polygon,declare)
|
||||
{
|
||||
"use strict";
|
||||
return declare("esri.OfflineTilesEnabler",[],{
|
||||
|
||||
@ -34,18 +34,25 @@
|
||||
"esri/dijit/Scalebar", "esri/arcgis/utils", "esri/geometry",
|
||||
"dojo/dom", "dojo/on", "dojo/query",
|
||||
"esri/urlUtils", "esri/geometry/webMercatorUtils",
|
||||
"tiles/OfflineTilesEnablerLayer",
|
||||
"tiles/TilesCore",
|
||||
"esri/layers/LOD",
|
||||
"esri/geometry/Point",
|
||||
"esri/geometry/Extent",
|
||||
"esri/layers/TileInfo",
|
||||
"esri/SpatialReference",
|
||||
"esri/geometry/Polygon",
|
||||
"../dist/offline-editor-tiles-advanced-src.js",
|
||||
"dojo/dom-construct", "dojo/domReady!"],
|
||||
function(Map,
|
||||
GraphicsLayer, Graphic, SimpleFillSymbol,
|
||||
Scalebar, esriUtils, geometry,
|
||||
dom, on, query,
|
||||
urlUtils, webMercatorUtils,
|
||||
OfflineTilesEnablerLayer,TilesCore,
|
||||
LOD,Point,Extent,TileInfo,SpatialReference,Polygon,
|
||||
OfflineTilesEnablerLayer,
|
||||
domConstruct)
|
||||
{
|
||||
g_basemapLayer = new OfflineTilesEnablerLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",function(evt){
|
||||
|
||||
g_basemapLayer = new esri.OfflineTileEnablerLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",function(evt){
|
||||
console.log("Tile Layer Loaded.");
|
||||
},true);
|
||||
|
||||
@ -59,13 +66,13 @@
|
||||
|
||||
g_map.addLayer(g_basemapLayer);
|
||||
|
||||
tilesCore = new TilesCore();
|
||||
tilesCore = new O.esri.Tiles.TilesCore();
|
||||
|
||||
function test()
|
||||
{
|
||||
var jasmineEnv = jasmine.getEnv();
|
||||
jasmineEnv.updateInterval = 1000;
|
||||
jasmineEnv.defaultTimeoutInterval = 20000; // 20 sec
|
||||
jasmineEnv.defaultTimeoutInterval = 5000; // 20 sec
|
||||
var htmlReporter = new jasmine.HtmlReporter();
|
||||
|
||||
jasmineEnv.addReporter(htmlReporter);
|
||||
|
||||
@ -226,20 +226,36 @@ describe("offline enabler custom layer library", function()
|
||||
})
|
||||
});
|
||||
|
||||
it("verifies ability to retrieve layer info",function(done){
|
||||
async.it("verifies ability to retrieve layer info",function(done){
|
||||
g_basemapLayer._getTileInfoPrivate("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",function(result){
|
||||
var fixedResponse = result.replace(/\\'/g, "'");
|
||||
var resultObj = JSON.parse(fixedResponse);
|
||||
expect(resultObj).toEqual(jasmine.any(Object));
|
||||
done();
|
||||
})
|
||||
});
|
||||
|
||||
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){
|
||||
tilesCore._parseGetTileInfo(result,function(result){
|
||||
expect(result).toEqual(jasmine.any(Object));
|
||||
async.it("verifies ability to parse layer info",function(done){
|
||||
require(["esri/layers/LOD",
|
||||
"esri/geometry/Point",
|
||||
"esri/geometry/Extent",
|
||||
"esri/layers/TileInfo",
|
||||
"esri/SpatialReference",
|
||||
"esri/geometry/Polygon"],function(LOD,Point,Extent,TileInfo,SpatialReference){
|
||||
|
||||
|
||||
g_basemapLayer._getTileInfoPrivate("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",function(result){
|
||||
tilesCore._parseGetTileInfo(SpatialReference,LOD,Extent,TileInfo,Point,result,function(result){
|
||||
expect(result.resultObj).toEqual(jasmine.any(Object));
|
||||
expect(result.initExtent.type).toEqual("extent");
|
||||
expect(result.fullExtent.type).toEqual("extent");
|
||||
expect(result.tileInfo.format).toEqual("JPEG");
|
||||
done();
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
async.it("get all tile polygons within extent",function(done){
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user