Я использую API карт Google, который определяет местоположение пользователя и, если он находится в городе Лос-Анджелес, сообщит ему, в каком районе отчетности LAPD они находятся. У меня есть геозонское наложение районов отчетности (RD) загрузка с здесь .
Я хочу получить геолокационные координаты и использовать BooleanPointInPolygon от Turfjs, чтобы определить, находится ли он в RD, и если да, вернуть этот RD.
Но что бы я ни делал, функция turfjs всегда возвращает false, даже если я явно в RD / Polygon.
Я скачал файл geojson и импортировал его локально как обычный файл json.
Вот моя функция:
getRd() {
const repdist = require("../assets/LAPD_Reporting_Districts.json");
let point = turf.point([34.05350702472784, -118.24291762202074]);
var poly;
repdist.features.forEach(rd => {
poly = turf.polygon(rd.geometry.coordinates);
var found = turf.booleanPointInPolygon(point, poly);
console.log("found: ", found);
});
Насколько я могу судить, массивы turf.point и turf.polygon сформированы правильно и ошибок при выполнении нет. Я прошел через функцию газона и все выглядело хорошо.
Учитывая координаты в образце кода (LA City Hall, который находится в RD 124), я ожидаю, что результат вернет true, но «found» возвращает 1135 ложных значений.