Concept for rendering maproulette tasks
This commit is contained in:
parent
063d7e4637
commit
a7f2c26a1d
2 changed files with 167 additions and 0 deletions
|
@ -82,6 +82,28 @@ export default class GeoJsonSource implements FeatureSourceForLayer, Tiled {
|
|||
Utils.downloadJsonCached(url, 60 * 60)
|
||||
.then(json => {
|
||||
self.state.setData("loaded")
|
||||
// TODO: move somewhere else, just for testing
|
||||
// Check for maproulette data
|
||||
if (url.startsWith("https://maproulette.org/api/v2/")) {
|
||||
console.log("MapRoulette data detected")
|
||||
const data = json;
|
||||
let maprouletteFeatures: any[] = [];
|
||||
data.forEach(element => {
|
||||
maprouletteFeatures.push({
|
||||
type: "Feature",
|
||||
geometry: {
|
||||
type: "Point",
|
||||
coordinates: [element.point.lng, element.point.lat]
|
||||
},
|
||||
properties: {
|
||||
// Map all properties to the feature
|
||||
...element,
|
||||
}
|
||||
});
|
||||
});
|
||||
json.features = maprouletteFeatures;
|
||||
}
|
||||
|
||||
if (json.features === undefined || json.features === null) {
|
||||
return;
|
||||
}
|
||||
|
|
145
assets/themes/maproulette/maproulette.json
Normal file
145
assets/themes/maproulette/maproulette.json
Normal file
|
@ -0,0 +1,145 @@
|
|||
{
|
||||
"id": "maproulette",
|
||||
"title": {
|
||||
"en": "MapRoulette Test"
|
||||
},
|
||||
"description": {
|
||||
"en": "MapRoulette Test"
|
||||
},
|
||||
"version": "1.0.0",
|
||||
"hideFromOverview": true,
|
||||
"icon": "./assets/svg/bug.svg",
|
||||
"maintainer": "",
|
||||
"startLat": 0,
|
||||
"startLon": 0,
|
||||
"startZoom": 4,
|
||||
"layers": [
|
||||
{
|
||||
"id": "maproulette",
|
||||
"source": {
|
||||
"geoJson": "https://maproulette.org/api/v2/tasks/box/{x_min}/{y_min}/{x_max}/{y_max}",
|
||||
"geoJsonZoomLevel": 16,
|
||||
"osmTags": "id~*"
|
||||
},
|
||||
"mapRendering": [
|
||||
{
|
||||
"location": [
|
||||
"point",
|
||||
"centroid"
|
||||
],
|
||||
"icon": {
|
||||
"render": "pin:white",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "status=0",
|
||||
"then": "pin:#959DFF"
|
||||
},
|
||||
{
|
||||
"if": "status=1",
|
||||
"then": "pin:#65D2DA"
|
||||
},
|
||||
{
|
||||
"if": "status=2",
|
||||
"then": "pin:#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "status=3",
|
||||
"then": "pin:#F7BB59"
|
||||
},
|
||||
{
|
||||
"if": "status=4",
|
||||
"then": "pin:#737373"
|
||||
},
|
||||
{
|
||||
"if": "status=5",
|
||||
"then": "pin:#CCB186"
|
||||
},
|
||||
{
|
||||
"if": "status=6",
|
||||
"then": "pin:#FF5E63"
|
||||
},
|
||||
{
|
||||
"if": "status=9",
|
||||
"then": "pin:#FF349C"
|
||||
}
|
||||
]
|
||||
},
|
||||
"iconSize": "40,40,center"
|
||||
}
|
||||
],
|
||||
"tagRenderings": [
|
||||
{
|
||||
"id": "link",
|
||||
"render": "<a href='https://maproulette.org/challenge/{parentId}/task/{id}'>View this task</a>"
|
||||
},
|
||||
{
|
||||
"id": "status",
|
||||
"render": "Current status: {status}",
|
||||
"mappings": [
|
||||
{
|
||||
"if": "status=0",
|
||||
"then": {
|
||||
"en": "Task is created"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "status=1",
|
||||
"then": {
|
||||
"en": "Task is fixed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "status=2",
|
||||
"then": {
|
||||
"en": "Task is a false positive"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "status=3",
|
||||
"then": {
|
||||
"en": "Task is skipped"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "status=4",
|
||||
"then": {
|
||||
"en": "Task is deleted"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "status=5",
|
||||
"then": {
|
||||
"en": "Task is already fixed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "status=6",
|
||||
"then": {
|
||||
"en": "Task is marked as too hard"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": "status=9",
|
||||
"then": {
|
||||
"en": "Task is disabled"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"all_tags"
|
||||
],
|
||||
"description": {
|
||||
"en": "Layer showing all tasks in MapRoulette"
|
||||
},
|
||||
"minzoom": 15,
|
||||
"name": {
|
||||
"en": "MapRoulette Tasks"
|
||||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "MapRoulette Item: {parentName}"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue