Javascript 传单.js:仅显示特定国家,模糊或隐藏其他国家

Javascript 传单.js:仅显示特定国家,模糊或隐藏其他国家,javascript,leaflet,geojson,Javascript,Leaflet,Geojson,基于: 虽然公认的答案几乎是正确的,但只适用于旧的单多边形GeoJSON。现代的multipolygon GeoJSON允许额外的形状来弥补海外领土等,因此还引入了JSFIDLE演示不知道如何处理的额外阵列: // transform geojson coordinates into an array of L.LatLng var coordinates = france.features[0].geometry.coordinates[0]; var latLngs = []; for (i

基于:

虽然公认的答案几乎是正确的,但只适用于旧的单多边形GeoJSON。现代的multipolygon GeoJSON允许额外的形状来弥补海外领土等,因此还引入了JSFIDLE演示不知道如何处理的额外阵列:

// transform geojson coordinates into an array of L.LatLng
var coordinates = france.features[0].geometry.coordinates[0];
var latLngs = [];
for (i=0; i<coordinates.length; i++) {
    latLngs.push(new L.LatLng(coordinates[i][1], coordinates[i][0]));
}

L.mask(latLngs).addTo(map);
//将geojson坐标转换为L.LatLng数组
var坐标=france.features[0]。geometry.coordinates[0];
var latLngs=[];
对于(i=0;i我猜“现代GeoJSON”的意思是“有一个外环,但也有一个内环”。所以这实际上是关于“如何将GeoJSON多边形几何体转换为数组(环中的点)的数组(环)(传单
LatLng
s)?”

请注意,带有内环的多边形的概念绝不是“现代的”:它确实出现在(现在已弃用)中,这反过来又从OGC的(可追溯到2003年)中获得了很大的灵感

我会利用传单中已经实施的方法,例如:

var latlngs = L.GeoJSON.coordsToLatLngs(feature.geometry.coordinates, 1);
请记住对
几何体执行健全性检查。如有必要,请键入
;对于
线串
s,
levelsDep
参数应为0,对于
多列线
s和
多边形
s,以及
多列线
s,
我猜“现代GeoJSON”的意思是“有外圈,也有内圈”。这实际上是关于“如何将GeoJSON多边形几何体转换为阵列(环中的点)阵列(传单
LatLng
s)?”

请注意,带有内环的多边形的概念绝不是“现代的”:它确实出现在(现在已弃用)中,这反过来又从OGC的(可追溯到2003年)中获得了很大的灵感

我会利用传单中已经实施的方法,例如:

var latlngs = L.GeoJSON.coordsToLatLngs(feature.geometry.coordinates, 1);

请记住对
几何体执行健全性检查。如有必要,请键入
;对于
线串
s,
levelsDep
参数应为0,对于
多列线
s和
多边形
s,应为1,对于
多列线
s,应为2。

我鼓励您将传单升级到更“现代”的版本“不到7岁,因为0.7.x系列似乎有不同的代码路径来实例化带有内环的多边形,而不是1.6.0。@MarkBoulder给我发电子邮件。我鼓励你将传单升级到更“现代”的版本。”“不到7年,因为0.7.x系列似乎有不同的代码路径来实例化内环多边形,而不是1.6.0。”MarkBoulder给我发电子邮件。