//= require jquery.simulate
OSM.Query = function(map) {
- var queryButton = $(".control-query .control-button"),
+ var protocol = document.location.protocol === "https:" ? "https:" : "http:",
+ url = protocol + OSM.OVERPASS_URL,
+ queryButton = $(".control-query .control-button"),
uninterestingTags = ['source', 'source_ref', 'source:ref', 'history', 'attribution', 'created_by', 'tiger:county', 'tiger:tlid', 'tiger:upload_uuid'],
marker;
}
$section.data("ajax", $.ajax({
- url: OSM.OVERPASS_URL,
+ url: url,
method: "POST",
data: {
data: "[timeout:5][out:json];" + query,
$section.find(".loader").stopTime("loading").hide();
$("<li>")
- .text(I18n.t("javascripts.query." + status, { server: OSM.OVERPASS_URL, error: error }))
+ .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>)
+ * node(w)
+ * relation(around:<radius>,<lat>,lng>)
+ *
+ * to find enclosing objects we first find all the enclosing areas:
+ *
+ * is_in(<lat>,<lng>)->.a
+ *
+ * and then return the union of the following sets:
+ *
+ * relation(pivot.a)
+ * way(pivot.a)
+ * node(w)
+ *
+ * In order to avoid overly large responses we don't currently
+ * attempt to complete any relations and instead just show those
+ * ways and nodes which are returned for other reasons.
+ */
function queryOverpass(lat, lng) {
var latlng = L.latLng(lat, lng),
radius = 10 * Math.pow(1.5, 19 - map.getZoom()),