我有两个 GeoJSON 文件:
- 一个代表美国 51 个州。https://dl.dropboxusercontent.com/u/14145516/json/51.json
- 一个用于新泽西州的县。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 © <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);
}