Javascript 根据地图缩放级别在传单地图上设置边界

Javascript 根据地图缩放级别在传单地图上设置边界,javascript,leaflet,geocoding,Javascript,Leaflet,Geocoding,我正在开发一个分叉的OSM/传单/立交桥API应用程序,它有自己声明的最大界限。 这样,任何跨越API的请求都被限制在声明的边界内 var mapBounds = { south: 50.8025, west: 0.3724, north: 50.8785, east: 0.5290 }; var LBounds = L.latLngBounds([mapBounds.south, mapBounds.west], [mapBounds.north, mapBounds.east]); 对Ov

我正在开发一个分叉的OSM/传单/立交桥API应用程序,它有自己声明的最大界限。 这样,任何跨越API的请求都被限制在声明的边界内

var mapBounds = { south: 50.8025, west: 0.3724, north: 50.8785, east: 0.5290 };
var LBounds = L.latLngBounds([mapBounds.south, mapBounds.west], [mapBounds.north, mapBounds.east]);
对Overpass API的查询已完成

...
    else queryBbox += '[bbox:' + [mapBounds.south, mapBounds.west, mapBounds.north, mapBounds.east].join(',') + ']';
...
需要更改边界框(mapBounds)以允许在全球范围内导航,并将其设置为bbox,因此对Overpass API的请求仅适用于该地图区域

我已经做了

else queryBbox += '[bbox:' + map.getBounds().toBBoxString() + ']';
但是我不能让它工作。。立交桥没有结果

补充:

与此同时,我走近了,我试着看看在Moveend发生了什么

onMoveEnd: function () {
    console.log(queryBbox);
控制台记录似乎返回坐标:

[out:json][bbox:0.38512229919433594,50.82990293001779,0.549917221069336,50.86404449323755];(nwr[tourism=museum];);out tags center qt 250;
但事实恰恰相反

供比较:这是原始查询的外观

[out:json][bbox:50.8025,0.3724,50.8785,0.529];(nwr[tourism=museum];);out tags center qt 250;

你的url是错误的,它应该是这样的:

您是自己创建url还是在库上创建url?如果您使用库,请查看是否定义了错误的库

要创建自己的请求,请创建url,然后发出http请求:

function getOverpassData(){
    var bbox = map.getBounds().toBBoxString();
    var _url = "https://overpass-api.de/api/interpreter?data=[out:json];out%20skel%20qt;node[tourism=attraction];";

    var bboxurl = _url+"&bbox="+bbox;
    console.log(bboxurl);
    // And then use $.ajax(bboxurl) or the normal js http request to get data.
}

我能够在阅读(更接近)传单文档时解决我的问题

toBBoxString()返回一个字符串,该字符串在 “西南液化天然气、西南液化天然气、东北液化天然气、东北液化天然气”格式。 用于向返回地理数据的web服务发送请求

但事实是,OverpassAPI不会以GeoJSON格式返回响应。。。所以我对toBBoxString()的攻击不合适,这就是为什么我得到错误的回答。 相反,这一个工作正常,所有请求现在都成功了

else queryBbox += '[bbox:' + map.getBounds().getSouth() +',' + map.getBounds().getWest() +',' + map.getBounds().getNorth() +',' + map.getBounds().getEast() + ']';

我希望在我投我的票之前,有人能有一个更优雅的解决方案

我真的很难理解你想要什么。是否只在可见边界中搜索?还是在地图上?或者你想在边界中搜索到zoom 10(或者如果zoom大于10,则搜索边界),但贴图minZoom应为0?嗨,Falke,我稍微更改了我的文本。只需要搜索可见边界。在一个函数中已经存在一个搜索的最小缩放(大约14个),我在调用中有一个输入错误,所以我修复了它。。。问题似乎在于,bbox的填充坐标是反向的。我已经更新了上面的文字