mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-12-28 02:50:27 +00:00
d3aca065ab
This is the beginnings of a new core plugin to add geospatial capabilities, building on the JSON operators that we now have in the core. It uses the libraries leaflet.js for mapping and turf.js for geospatial calculations.
42 lines
824 B
JavaScript
42 lines
824 B
JavaScript
/*\
|
|
title: $:/plugins/tiddlywiki/geospatial/geotools.js
|
|
type: application/javascript
|
|
module-type: library
|
|
|
|
Geospatial utilities
|
|
|
|
\*/
|
|
(function(){
|
|
|
|
/*jslint node: true, browser: true */
|
|
/*global $tw: false */
|
|
"use strict";
|
|
|
|
var turf = require("$:/plugins/tiddlywiki/geospatial/turf.js");
|
|
|
|
/*
|
|
Parse a string as a GeoJSON Point
|
|
*/
|
|
exports.parsePoint = function(str) {
|
|
var defaultResult = function() {
|
|
return turf.point([0,0,0]);
|
|
}
|
|
// If the string is missing then return 0,0,0
|
|
if(!str) {
|
|
return defaultResult();
|
|
}
|
|
// Convert to an object
|
|
var json = $tw.utils.parseJSONSafe(str,null);
|
|
if(json === null) {
|
|
return defaultResult();
|
|
}
|
|
// Check it is a valid point
|
|
if(turf.getType(json) !== "Point") {
|
|
return defaultResult();
|
|
}
|
|
// Return the string now we know it is a valid GeoJSON Point
|
|
return json;
|
|
}
|
|
|
|
})();
|