【问题标题】:Mapbox GL JS API Set BoundsMapbox GL JS API 设置边界
【发布时间】:2016-03-20 18:20:48
【问题描述】:

我一直试图让我的地图(下面的 JS)能够自动缩放到用于显示的 JSON 文件之一的范围(会有许多单独的文件),但我不能似乎知道我将如何实现这一目标。

    var map = new mapboxgl.Map({
    container: 'map', // container id
    style: 'mapbox://styles/mapbox/streets-v8', //stylesheet location
    center: [-79.376828,43.635570], // starting position
        zoom: 12,
        pitch: 07, // pitch in degrees
        bearing: -16.1// bearing in degrees 
     });


 map.on('style.load', function () {

    map.batch(function (batch) {

        ////////////////////////////
        //ADDSOURCE for 0
        map.addSource("0", {
            "type": "geojson",
            "data": {
                "type": "Feature",
                "properties": {},
                "geometry": {
                    "type": "LineString",
                    "coordinates": [[-79.378821,43.645557],[-79.378862,43.645594],[-79.378909,43.645616],[-79.418429,43.635570],[-79.413358,43.636944]]

                }
            }
        });

        //ADDLAYER for 0
        map.addLayer({
            "id": "0",
            "type": "line",
            "source": "0",
            "layout": {
                "line-join": "round",
                "line-cap": "round"
            },
            "paint": {
                "line-color": "#0324a7",
                "line-width": 3
            }
        });
        ////////////////////////////
        //ADDSOURCE for 1
        map.addSource("1", {
            "type": "geojson",
            "data": {
                "type": "Feature",
                "properties": {},
                "geometry": {
                    "type": "LineString",
                    "coordinates": [[-79.418429,43.635570],[-79.413358,43.636944],[-79.413197,43.636982],[-79.378821,43.645557],[-79.378862,43.645594]]

                }
            }
        });

        //ADDLAYER for 1
        map.addLayer({
            "id": "1",
            "type": "line",
            "source": "1",
            "layout": {
                "line-join": "round",
                "line-cap": "round"
            },
            "paint": {
                "line-color": "#0324a7",
                "line-width": 3
            }
        });

    });//BATCH



});
map.fitBounds(map.getBounds());

map.addControl(new mapboxgl.Navigation());
map.scrollZoom.disable();

我尝试过使用map.fitBounds(map.getBounds()) 的各种组合,但我似乎无法弄清楚如何将地图启动到第一个 JSON 的范围内。任何帮助将不胜感激。

另外,我是否应该以不同的方式制作地图(除了使用map.batch(function (batch))来加载许多不同的 JSON 文件?

【问题讨论】:

标签: javascript json leaflet mapbox


【解决方案1】:

据我所知(并且可以搜索),目前没有办法从mapboxgl.GeoJSONSource 对象派生边界。你需要自己计算这些。之后就可以使用mapboxglfitBounds方法了:

map.fitBounds([
    [-79.418429, 43.63557],
    [-79.378821, 43.645616]
]);

【讨论】:

    猜你喜欢
    • 2016-03-06
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 2016-06-05
    • 1970-01-01
    • 2017-04-24
    相关资源
    最近更新 更多