diff options
Diffstat (limited to 'htdocs')
-rw-r--r-- | htdocs/mapscript.js | 17 | ||||
-rw-r--r-- | htdocs/streeteditor.js | 3 |
2 files changed, 18 insertions, 2 deletions
diff --git a/htdocs/mapscript.js b/htdocs/mapscript.js index abba88c..65f7ade 100644 --- a/htdocs/mapscript.js +++ b/htdocs/mapscript.js @@ -232,6 +232,14 @@ function toggle_search() { function htmlEntities(str) { return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"'); } + +function polyline_get_middle_coords(coords) { + var ret = [2]; + ret[0] = coords[0][0] + (coords[coords.length - 1][0] - coords[0][0]) / 2; + ret[1] = coords[0][1] + (coords[coords.length - 1][1] - coords[0][1]) / 2; + return ret; +} + var regex; function search(e) { var query = htmlEntities(document.getElementById("search_query").value); @@ -253,6 +261,15 @@ function search(e) { results.appendChild(el); } break; + case "LineString": + regex = new RegExp(query, 'i'); + if (item.feature.properties.name.match(regex)) { + el = document.createElement("li"); + zpos = polyline_get_middle_coords(item.feature.geometry.coordinates); + el.innerHTML = "[" + layers._layers[i].name + "] " + '<a href="#" onclick="latLng2 = L.latLng(' + zpos[1] + ',' + zpos[0] + '); jump_to(latLng2); return false;">' + item.feature.properties.name + "</a>"; + results.appendChild(el); + } + break; default: break; } diff --git a/htdocs/streeteditor.js b/htdocs/streeteditor.js index 53f9b52..340a10a 100644 --- a/htdocs/streeteditor.js +++ b/htdocs/streeteditor.js @@ -78,8 +78,7 @@ if (editor_mode) { polyline.enableEdit(); if (interactive) { console.log(coords); - latlng = L.latLng(coords[0][0] + (coords[coords.length - 1][0] - coords[0][0]) / 2, - coords[0][1] + (coords[coords.length - 1][1] - coords[0][1]) / 2); + latlng = L.latLng(polyline_get_middle_coords(coords)); console.log("NEW=" + latlng); jump_to(latlng, 8); } |