From bfaacd813be434e4146e824c793aa4f73711a84a Mon Sep 17 00:00:00 2001
From: Markus Koch <markus@notsyncing.net>
Date: Sun, 19 Apr 2020 23:09:26 +0200
Subject: Add street names to search

---
 htdocs/mapscript.js    | 17 +++++++++++++++++
 htdocs/streeteditor.js |  3 +--
 2 files changed, 18 insertions(+), 2 deletions(-)

(limited to 'htdocs')

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, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
 }
+
+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);
 			}
-- 
cgit v1.2.3