Листовка с мартинесом-пересечение: недопустимый объект LatLng: (-8.39,37.08, -8.39,37.08)

#javascript #leaflet #voronoi #turfjs

#javascript #листовка #вороной #turfjs

Вопрос:

У меня есть карта листовки, в которую я добавил a FeatureCollection с некоторыми полигонами, созданными voronoi функцией turfjs (docs). Теперь я пытаюсь пересечь эти полигоны с a MultiPolygon , представляющим страну, чтобы полигоны Вороного отображались только внутри указанной страны. Для пересечения я использую martinez.

Полигоны Вороного:

 var voronoiPolygons = turf.voronoi(poll1); //Creating the Polygons
voronoiPolygons.features.map((f, i) => {
    f.properties = poll1.features[i].properties; //Adding the original properties to the new Polygons
});
  

Пересечение с границей страны:

 voronoiPolygons.features.forEach(trimBorder);

function trimBorder(value,index,array){
    //Intersection using Martinez, returns set of coordinates
    let newPolygon = martinez.intersection(value.geometry.coordinates, borderPT.geometry.coordinates);

    //Change the feature type to MultiPolygon if the intersection generates a MultiPolygon
    voronoiPolygons.features[index].geometry.coordinates = newPolygon;
    if (newPolygon.length > 1) voronoiPolygons.features[index].geometry.type = "MultiPolygon"; 
}
  

Однако, когда я запускаю это, я получаю следующую ошибку:

 Uncaught Error: Invalid LatLng object: (-8.395214820999854,37.08713944100005, -8.395575540353551,37.08710300941793)
    at new D (LatLng.js:32)
    at We (GeoJSON.js:235)
    at He (GeoJSON.js:248)
    at He (GeoJSON.js:247)
    at De (GeoJSON.js:203)
    at i.addData (GeoJSON.js:117)
    at i.addData (GeoJSON.js:107)
    at initialize (GeoJSON.js:92)
    at new i (Class.js:22)
    at Object.Ke (GeoJSON.js:439)
  

Насколько я понимаю, в этом объекте не должно быть 2 наборов координат. Что является причиной этого?

Комментарии:

1. Пожалуйста, поделитесь своим полным кодом, потому что ошибка возникает при преобразовании результата пересечения в L.GeoJSON

2. После опубликованного мной кода я просто делаю L.geoJSON(voronoiPolygons).addTo(map); . Ну, я просто исправил это, изменив каждый полигон на MultiPolygon. Хотя не уверен, почему.