使用LEaflet将多个geoJSon文件查看到视图中
view multiple geoJSon files into view using LEaflet
我创建了一个javascript模板,用于将GEOJson文件加载到传单地图上。这些文件可以是ploygons、multypelygons、标记、图标等。我的问题是如何适应所有这些文件?当我现在调用fitBounds时,只使用第一个文件,而忽略其余文件。
我基本上要做的是在我的主HTML/JavaScript文件中,我只需要给出一个文件名和一个我想作为覆盖的名称,可能有一个或多个。在我的模板javascript中,我使用加载所有这些文件
var myStuff = L.geoJson(data,
{
style:mystyle},
OnEachFeature, pointToLoayer
//more complex but just to give a better understanding...
});
myStuff.addTo(map);
map.fitBounds(myStuff);
除了fitBounds部分,我尝试做的所有事情都有效。"数据"是我正在加载的文件,但fitBounds只影响第一个。有人有什么想法吗?
如果有人感到困惑,我可以提供更多细节。。。
首先,您的代码中有一个错误:fitBounds采用L.LatLngBounds参数
所以你的代码应该是:
map.fitBounds(myStuff.getBounds());
如果您想使用fitBounds,您只能有一个GeoJSON层
但是,您可以将数据添加到您的层
var myStuff = L.geoJson(data1);
myStuff.addData(data2);
myStuff.addData(data3);
myStuff.addTo(map);
map.fitBounds(myStuff.getBounds());
如果你绝对想保留很多层,你必须自己计算边界矩形。。
var myStuff1 = L.geoJson(data1);
var bounds1 = myStuff1.getBounds();
var myStuff2 = L.geoJson(data2);
var bounds2 = myStuff2.getBounds();
myStuff.addTo(map);
map.fitBounds(bestBounds(bounds1, bounds2));
function bestBounds(bounds1, bounds2) {
// clever computation to get west,east,north,south
}
相关文章:
- MVC视图文件_Layout.cshtml中头部和主体的Render Bundles之间的差异
- 管理视图文件和 JS 标记
- 将商家印章放入 augular js 视图文件中 authorize.net
- 对 ejs 视图文件的引用在构建后不会更改,尽管它在生产中结合了它.js - Javascript MVC
- 如何在视图文件夹中包含js.erb文件
- 在MVC的视图文件夹中将Razor代码转换为aspx代码
- 尝试在Codeigniter中使用AJAX和设置视图文件的输出样式
- 将javascript文件放在何处,以便将其与Rails中的特定视图文件夹相关联
- django-从隐藏在html中的字段中获取值,并在视图文件中使用它
- 如何使用AngularJS和asp.net MVC 4从视图文件夹加载模板
- 如何从数据库中获取值到视图文件中的javascript代码(laravel 5.2)
- 如何使用jQuery以编程方式扩展燃料流树视图文件夹
- 如何从视图文件访问视图模型中定义的变量
- Sencha触摸视图文件如何在index.html中呈现
- 节点多个视图文件夹
- CodeIgniter:包含在视图文件夹中的JS或CSS
- 在视图文件夹上加载XML文件
- Hapi服务器无法加载不同视图文件夹下的公共文件
- 是否可以使用