为什么fitBounds在不同的分辨率/尺寸上表现不一致?

时间:2013-10-01 07:05:31

标签: leaflet

我有两个GeoJSON文件:

  1. 美国51个州之一。 https://dl.dropboxusercontent.com/u/14145516/json/51.json
  2. 一个是新泽西州的县。 https://dl.dropboxusercontent.com/u/14145516/json/NJ.json
  3. 当我尝试在NJ上使用fitBounds时,它完美地工作,整个状态都集中在地图窗格上,无论我在地图div上放置什么尺寸。

    然而,当我尝试51状态文件时,fitBounds仅在div尺寸大约为800x600时才有效,超出该范围(1366x768,1680x1050),它只显示灰色地图。

    有解决方法吗?我需要以任何分辨率在全屏(高度100%宽度100%)上工作。

    非常感谢。

    CODE:

    代码取自如下教程,将ajax调用中的geojsonFeature变量加载到jsp(稍后需要进行一些处理),以app / json类型输出json文件:

    d3.json("${pageContext.request.contextPath}/json",function(data){
        var geojsonFeature = data;
        var map = L.map('map',{
                    center: new L.LatLng(0,0),
                    zoom: 5
                });
    
        L.tileLayer('http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png', {
                    maxZoom: 18,
                    attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>'
                }).addTo(map);
    
        var myLayer = L.geoJson().addTo(map);
        myLayer.addData(geojsonFeature);
        var bounds = myLayer.getBounds();
        map.fitBounds(bounds);
    }
    

1 个答案:

答案 0 :(得分:1)

我能够使用Leaflet版本0.5.1(之前的稳定版本)。尝试使用该版本而不是0.6.4。