0

我有两个 GeoJSON 文件:

  1. 一个代表美国 51 个州。https://dl.dropboxusercontent.com/u/14145516/json/51.json
  2. 一个用于新泽西州的县。https://dl.dropboxusercontent.com/u/14145516/json/NJ.json

当我尝试在 NJ 上 fitBounds 时,它工作得很好,整个状态都以地图窗格为中心,无论我在地图 div 上放置什么尺寸。

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

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

非常感谢你。

代码:

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

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);
}
4

1 回答 1

1

我能够让它与 Leaflet 版本 0.5.1(以前的稳定版本)一起使用。尝试使用该版本而不是 0.6.4。

于 2013-10-01T14:42:38.987 回答