Skip to content

Commit

Permalink
select sublayers of a MapService [closes #7]
Browse files Browse the repository at this point in the history
  • Loading branch information
mapmeld committed May 9, 2017
1 parent be0bd3d commit 10f41da
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 5 deletions.
8 changes: 8 additions & 0 deletions css/map.css
Original file line number Diff line number Diff line change
Expand Up @@ -1642,6 +1642,14 @@ text.geoservice {
display: block !important;
}

.geoservice-pane .layer-select {
float: left;
}

.geoservice-pane .layer-select button {
margin-right: 8px;
}

/* more importer stuff */

.import-approve {
Expand Down
28 changes: 23 additions & 5 deletions modules/ui/map_data.js
Original file line number Diff line number Diff line change
Expand Up @@ -286,26 +286,41 @@ export function uiMapData(context) {
.attr('class', 'geoservice')
.attr('placeholder', 'GeoService URL')
// .attr('value', context.storage('geoserviceLayerUrl') || '')
.on('input', function(e, loadFromLocalStorage) {
.on('input', function(e, fixedURL) {
// reformat URL ending to /layerID/metadata?f=json
var metadata_url = loadFromLocalStorage ? context.storage('geoserviceLayerUrl') : this.value;
var metadata_url = fixedURL ? fixedURL : this.value;
metadata_url = metadata_url.split('/');
if (metadata_url.length < 2 || metadata_url[0].indexOf('http') === -1) {
return;
}

// if it just ends /0, we need to keep /0 around
var last = metadata_url.pop();
if (!isNaN(last * 1)) {
if ((!isNaN(last * 1)) || (last.toLowerCase().indexOf('server') > -1)) {
metadata_url.push(last);
}
metadata_url = metadata_url.join('/') + '/metadata?f=json';
metadata_url = (metadata_url.join('/') + '/metadata?f=json').replace(/\/\//g, '/').replace(':/', '://');

d3.text(metadata_url, function(err, data) {
if (err) {
return console.log(err);
}
data = JSON.parse(data);
if (data.layers && data.layers.length) {
// MapServer field
layerSelect.html('');
_.map(data.layers, function(optLayer) {
layerSelect.append('button')
.text(optLayer.name)
.on('click', function() {
layerSelect.html('');
var mdatax = metadata_url.split('/metadata')[0] + '/' + optLayer.id;
urlInput.property('value', mdatax);
urlInput.on('input')(null, mdatax);
});
});
return;
}
if (!data.fields || !data.fields.length) {
return;
}
Expand Down Expand Up @@ -394,11 +409,14 @@ export function uiMapData(context) {
.property('checked', false)
copylabel.append('span').text('This data is permitted to include on OpenStreetMap under their ODbL license');

var layerSelect = urlEntry.append('div')
.attr('class', 'layer-select');

// load initial GeoService URL
/*
if (context.storage('geoserviceLayerUrl')) {
setTimeout(function() {
urlInput.on('input')(null, true);
urlInput.on('input')(null, context.storage('geoserviceLayerUrl'));
}, 500);
}
*/
Expand Down

0 comments on commit 10f41da

Please sign in to comment.