-
Notifications
You must be signed in to change notification settings - Fork 0
/
coordinates.js
45 lines (41 loc) · 1.55 KB
/
coordinates.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
* OpenStreetMap API has a limit of 1 request per second for reverse geocoding.
* In order to load large datasets, you should cache the coordinates yourself in order to speed things up the next time.
* To do this, the coordinates should be added to the Koordinater column in your Google Spreadsheet.
* In order to make this process a bit smoother,
* you can press the "Copy coordinates" button and the coordinates for the selected sheet in the spreadsheet will be copied into your clipboard.
* */
// A button to trigger the copy action.
$(function () {
$("body").on("click", ".copyMarkerCoordinates", function (e) {
const sheetName = e.target.value;
copyCsv(markerCoordinates[sheetName]);
});
});
function copyCsv(rows) {
var processRow = function (row) {
var finalVal = "";
for (var j = 0; j < row.length; j++) {
var innerValue = row[j] ? row[j].toString() : "";
if (row[j] instanceof Date) {
innerValue = row[j].toLocaleString();
}
var result = innerValue.replace(/"/g, '""');
if (result.search(/("|,|\n)/g) >= 0) result = '"' + result + '"';
if (j > 0) finalVal += ",";
finalVal += result;
}
return finalVal + "\n";
};
var csvFile = "\ufeff" + "";
for (var i = 0; i < rows.length; i++) {
csvFile += processRow(rows[i]);
}
//return csvFile;
var $temp = $("<textarea id='temp'>").text(csvFile);
$("body").append($temp);
$("#temp").select();
var result = document.execCommand("copy");
$("#temp").remove();
return result ? "Copied to clipboard" : "Clipboard failed...";
}