javascript - 在 MapBox 中设置 geoJSON 要素图层的样式

标签 javascript geojson mapbox

我刚开始玩 MapBox,遇到了一个令人困惑的问题。我正在使用以下代码创建带有 geoJSON 图层的 map :

var map = L.mapbox.map('map', '<MapBoxID>');
            var zipLayer = L.mapbox.featureLayer('data/blah.json');
            zipLayer.addTo(map);
            zipLayer.setStyle({color: 'red'});

map 出现并显示了 geoJSON,但它忽略了样式。不过,当我将最后一行复制到浏览器的 JS 控制台时,它工作正常。

我在这里错过了什么?此外,我已经尝试了至少十几种不同的方法来直接在 featureLayer() 调用中将样式包含在选项中,但没有任何效果。创建要素图层时如何指定样式?

最佳答案

我在这里有点猜测,因为我不太了解 Mapbox JS,但这听起来很像异步错误。奇怪的是,我在 Mapbox 或 Leaflet API 中没有看到任何关于此函数回调的信息。但是,您可以直接将 GeoJSON 传递给 featureLayer(),所以我建议使用 jQuery(或您选择的 XHR 库)来获取数据:

var map = L.mapbox.map('map', '<MapBoxID>');
var zipLayer;

$.getJSON('data/blah.json', function(data) {
    zipLayer = L.mapbox.featureLayer(data);
    zipLayer.addTo(map);
    zipLayer.setStyle({color: 'red'});
});

希望这能解决问题。

关于javascript - 在 MapBox 中设置 geoJSON 要素图层的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305174/

相关文章:

javascript - JavaScript 中未初始化变量的作用域

javascript - 删除 Mapbox GL JS 上的所有标签?

geojson - 从 mapbox gl 中的 geojson 获取图标 url

javascript - 根据使用 Leaflet 单击的标记更改侧边栏上的信息

c# - 将 GeoJSON 响应转换为 FeatureCollection

javascript - 我如何为雷达栅格制作动画,就像 Mapbox 上的 Rainviewer 一样

javascript - Mapbox GL JS : Large Image Overlay Issues

javascript - 如何通过修改.npmrc文件在Travis上运行lerna发布?

javascript - JS 绑定(bind)对象函数调用自身

javascript - 将鼠标悬停在图像上时播放视频并显示文本