Вот проблема: у меня есть файлы geoJSON и topoJSON, которые дают мне полигоны для групп блоков переписи и участков для голосования. Я пытаюсь понять, насколько данная группа блоков переписи перекрывается с данным участком.Вычисление процентного перекрытия двух полигонов в JavaScript
Я видел пару примеров того, что мне нужно на других языках - т. Е. R и в некоторых инструментах GIS, но я пытаюсь записать это как скрипт Node.js. Несколько вопросов:
- Есть ли модуль NPM (я сделал много Googling, но я не нашел его), который может выплюнуть процентное совпадение?
- Есть ли алгоритм или exmaple, написанный на другом языке, о котором я должен знать (я смотрел, но у меня нет самого тупого, с чего начать), и что я мог бы переносить на JavaScript?
- Неудача, может кто-нибудь объяснить мне, как я будет задуматься о создании алгоритма для этого?
В конце концов, конечный продукт будет выглядеть примерно так-себе, что у меня есть массивы участков и blockgroups, и каждый из них представляет собой объект со свойством геометрии, которая содержит данные полигонов для участковых или групп блоков , а также полагая, что я функция называется overlap
, что, когда прошло два полигона выплевывает процент перекрытия:
// Iterate over each precinct.
_.each(precincts, function (precinct) {
// Iterate over each blockgroup.
_.each(blockgroups, function (blockgroup) {
// Get the overlap for the current precinct and blockgroup.
var o = overlap(precinct.geometry, blockgroup.geometry);
// If they overlap at all...
if (o > 0) {
// ...Add information about the overlap to the precinct.
precinct.overlaps.push({
blockgroup: blockgroup.id,
overlap: o
});
}
}
}
(я видел this module, но это только дает если полигоны перекрываются, а не сколько они делают.)
Это выглядит великолепно. Спасибо! И вы совершенно правы, что неясно, что я имел в виду, когда процент перекрывается. Я имел в виду что-то б). – jwest