Skip to content

Instantly share code, notes, and snippets.

@carlosrusso
Last active June 22, 2017 13:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carlosrusso/a054ecee58bc50b0e50eff234251e447 to your computer and use it in GitHub Desktop.
Save carlosrusso/a054ecee58bc50b0e50eff234251e447 to your computer and use it in GitHub Desktop.
inlineGeoJSON
define([
"cdf/AddIn",
"cdf/Dashboard.Clean",
"cdf/lib/jquery",
"amd!cdf/lib/underscore"
], function(AddIn, Dashboard, $, _) {
"use strict";
var inlineGeoJSON = {
name: "inlineGeoJSON",
label: "Inline GeoJSON shape resolver",
defaults: {
colIdx: null, //column index containing the json map definitions
idPropertyName: "" //GeoJSON feature property that will be used to index the feature
},
implementation: function(tgt, st, opt) {
var map = _.chain(st.tableData.resultset)
.map(function(row, idx){
return [
st.ids[idx], polygonToGeoJson(row[opt.colIdx])
]
})
.object()
.value();
var deferred = $.Deferred();
deferred.resolve(map);
return deferred.promise();
}
};
function polygonToGeoJson(coordinatesStr){
return {
type: "Feature",
geometry: {
type: "Polygon",
coordinates: JSON.parse(coordinatesStr)
}
}
}
Dashboard.registerGlobalAddIn("NewMapComponent", "ShapeResolver", new AddIn(inlineGeoJSON));
return inlineGeoJSON;
});
function(){
this.shapeResolver = "inlineGeoJson";
this.setAddInOptions("ShapeResolver", "inlineGeoJSON", { colIdx: 2});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment