mirror of
https://github.com/Esri/offline-editor-js.git
synced 2025-12-15 15:20:05 +00:00
70 lines
2.7 KiB
JavaScript
70 lines
2.7 KiB
JavaScript
/**
|
|
* Helper library for handling features during browser restarts or reloads.
|
|
*/
|
|
define(["esri/graphic"], function(Graphic) {
|
|
"use strict";
|
|
|
|
return {
|
|
|
|
/**
|
|
* Converts an array of graphics/features into JSON
|
|
* @param features
|
|
* @param updateEndEvent
|
|
* @param callback
|
|
*/
|
|
convertGraphicLayerToJSON: function(features,updateEndEvent,callback){
|
|
var layerDefinition = {};
|
|
layerDefinition.objectIdFieldName = updateEndEvent.target.objectIdField;
|
|
layerDefinition.globalIdFieldName = updateEndEvent.target.globalIdField;
|
|
layerDefinition.geometryType = updateEndEvent.target.geometryType;
|
|
layerDefinition.spatialReference = updateEndEvent.target.spatialReference;
|
|
layerDefinition.fields = updateEndEvent.target.fields;
|
|
|
|
var length = features.length;
|
|
var jsonArray = [];
|
|
for(var i=0; i < length; i++){
|
|
var jsonGraphic = features[i].toJson();
|
|
jsonArray.push(jsonGraphic);
|
|
if(i == (length - 1)) {
|
|
var featureJSON = JSON.stringify(jsonArray);
|
|
var layerDefJSON = JSON.stringify(layerDefinition);
|
|
callback(featureJSON,layerDefJSON);
|
|
break;
|
|
}
|
|
}
|
|
},
|
|
|
|
getFeatureDefinition: function(/* Object */ featureLayer,/* Array */ featuresArr,/* String */ geometryType,callback){
|
|
|
|
if(featureLayer == null){
|
|
alert("No features available available locally.")
|
|
}
|
|
else{
|
|
var featureDefinition = {
|
|
"layerDefinition":featureLayer,
|
|
"featureSet":{
|
|
"features": featuresArr,
|
|
"geometryType": geometryType
|
|
}
|
|
|
|
}
|
|
|
|
// var newFeatureLayer = new FeatureLayer(featureDefinition,{
|
|
// mode: FeatureLayer.MODE_SNAPSHOT,
|
|
// outFields: ["OBJECTID","BSID","ROUTES","STOPNAME"]
|
|
// });
|
|
//
|
|
// // Set the graphics to red boxes to make it easy to click on them
|
|
// // on a mobile device.
|
|
// newFeatureLayer.setRenderer(new SimpleRenderer(defaultSymbol));
|
|
//
|
|
//// var mapListen = map.on("update-end",function(evt){
|
|
//// console.log("Feature has been added back to the map while offline.")
|
|
//// mapListen.remove();
|
|
//// })
|
|
//// map.addLayer(busStopsFeatureLayer);
|
|
callback(featureDefinition);
|
|
}
|
|
}
|
|
}
|
|
}) |