gpt4 book ai didi

javascript - 与传单协调反射问题

转载 作者:行者123 更新时间:2023-11-29 18:18:55 24 4
gpt4 key购买 nike

祝大家节日快乐。在尝试使用 L.geoJson() 绘制多边形图层时,我注意到一个有趣的行为怪癖。考虑以下代码:

var polygonCoords = [
{"type": "Feature",
"properties": {"group": "Violations"},
"geometry": {
"type" : "Polygon",
"coordinates": [[
[-107.69348, 43.22519],
[-105.48523, 42.99259],
[-107.7594, 42.26105]
]]
}
}];

var polygons = L.polygon([
[43.22519, -107.69348],
[42.99259, -105.48523],
[42.26105, -107.7594]
]);

现在,两者都在各自的环境中工作。我只是想知道为什么必须反射(reflect) L.polygon() 中的坐标矩阵,以便在传递到 L.goeJson() 时显示人们期望的位置,如下所示:

var jsonPoly = L.geoJson(polygonCoords, {
style: function(feature) {
if (feature.properties.group == "Violations") {
return {color: "#ff0000"};
}
}
});

或者这是传单中的疏忽?另外,有没有一种方法可以使用 toGeoJson(polygons) 来自动化这种反射?

非常感谢大家。

最佳答案

创建 geoJson 层时,坐标应符合 GeoJSON 标准(x、y、z 或 lng、lat、海拔高度)( GeoJSON position specs )

如果您有 GeoJSON 字符串,其中您的坐标不是这种格式,您可以使用自定义 coordsToLatLng 函数创建 GeoJSON 层,该函数将处理转换为标准格式 (Leaflet Doc)

如果您有一个多边形图层并想将其添加到现有的 GeoJSON 要素组中,您可以执行以下操作:

var polygons = L.polygon([
[43.22519, -107.69348],
[42.99259, -105.48523],
[42.26105, -107.7594]
]);
var gg = polygons.toGeoJSON();
var jsonFeatureGroup = L.geoJson().addTo(map);
jsonFeatureGroup.addData(gg);
map.fitBounds(jsonFeatureGroup.getBounds());

关于javascript - 与传单协调反射问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20663604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com