-//= require jquery-simulate/jquery.simulate
//= require qs/dist/qs
OSM.Query = function (map) {
}
});
+ function showResultGeometry() {
+ var geometry = $(this).data("geometry");
+ if (geometry) map.addLayer(geometry);
+ $(this).addClass("selected");
+ }
+
+ function hideResultGeometry() {
+ var geometry = $(this).data("geometry");
+ if (geometry) map.removeLayer(geometry);
+ $(this).removeClass("selected");
+ }
+
$("#sidebar_content")
- .on("mouseover", ".query-results li.query-result", function () {
- var geometry = $(this).data("geometry");
- if (geometry) map.addLayer(geometry);
- $(this).addClass("selected");
- })
- .on("mouseout", ".query-results li.query-result", function () {
- var geometry = $(this).data("geometry");
- if (geometry) map.removeLayer(geometry);
- $(this).removeClass("selected");
- })
- .on("mousedown", ".query-results li.query-result", function () {
- var moved = false;
- $(this).one("click", function (e) {
- if (!moved) {
- var geometry = $(this).data("geometry");
- if (geometry) map.removeLayer(geometry);
-
- if (!$(e.target).is("a")) {
- $(this).find("a").simulate("click", e);
- }
- }
- }).one("mousemove", function () {
- moved = true;
- });
- });
+ .on("mouseover", ".query-results a", showResultGeometry)
+ .on("mouseout", ".query-results a", hideResultGeometry);
function interestingFeature(feature) {
if (feature.tags) {
function featureName(feature) {
var tags = feature.tags,
- locales = I18n.locales.get();
+ locales = OSM.preferred_languages;
for (var i = 0; i < locales.length; i++) {
if (tags["name:" + locales[i]]) {
if (interestingFeature(element)) {
var $li = $("<li>")
- .addClass("query-result list-group-item")
- .data("geometry", featureGeometry(element))
+ .addClass("list-group-item list-group-item-action")
.text(featurePrefix(element) + " ")
.appendTo($ul);
$("<a>")
+ .addClass("stretched-link")
.attr("href", "/" + element.type + "/" + element.id)
+ .data("geometry", featureGeometry(element))
.text(featureName(element))
.appendTo($li);
}
if (results.remark) {
$("<li>")
- .addClass("query-result list-group-item")
+ .addClass("list-group-item")
.text(I18n.t("javascripts.query.error", { server: url, error: results.remark }))
.appendTo($ul);
}
if ($ul.find("li").length === 0) {
$("<li>")
- .addClass("query-result list-group-item")
+ .addClass("list-group-item")
.text(I18n.t("javascripts.query.nothing_found"))
.appendTo($ul);
}
$section.find(".loader").hide();
$("<li>")
- .addClass("query-result list-group-item")
+ .addClass("list-group-item")
.text(I18n.t("javascripts.query." + status, { server: url, error: error }))
.appendTo($ul);
}
* To find nearby objects we ask overpass for the union of the
* following sets:
*
- * node(around:<radius>,<lat>,lng>)
- * way(around:<radius>,<lat>,lng>)
- * relation(around:<radius>,<lat>,lng>)
+ * node(around:<radius>,<lat>,<lng>)
+ * way(around:<radius>,<lat>,<lng>)
+ * relation(around:<radius>,<lat>,<lng>)
*
* to find enclosing objects we first find all the enclosing areas:
*
.hide();
if (marker) map.removeLayer(marker);
- marker = L.circle(latlng, radius, featureStyle).addTo(map);
-
- $(document).everyTime(75, "fadeQueryMarker", function (i) {
- if (i === 10) {
- map.removeLayer(marker);
- } else {
- marker.setStyle({
- opacity: 1 - (i * 0.1),
- fillOpacity: 0.5 - (i * 0.05)
- });
- }
- }, 10);
+ marker = L.circle(latlng, Object.assign({
+ radius: radius,
+ className: "query-marker"
+ }, featureStyle)).addTo(map);
runQuery(latlng, radius, nearby, $("#query-nearby"), false);
runQuery(latlng, radius, isin, $("#query-isin"), true, compareSize);
page.unload = function (sameController) {
if (!sameController) {
disableQueryMode();
+ $("#sidebar_content .query-results a.selected").each(hideResultGeometry);
}
};