Я пытаюсь найти посетителей моего сайта, чтобы отображать или не отображать элементы страницы с помощью фреймворка turf.js и его метода pointsWithinPolygon
. До того, как применить приложение, я работал над примером кода.Решение моего реального приложения:
- Я нарисовал свой Polygone, используя приложение карты Geojson (вот ссылка для тех, кто не знаком: http://geojson.io/#map=2/20.0/0.0), и взял его координату - я использовал navigator.geolocation.getCurrentPosition()
, чтобы получитьмои текущие координаты
=> затем, используя метод pointsWithinPolygon
, я пытаюсь подтвердить, что я нахожусь в полигоне ...
<!DOCTYPE html>
<html>
<body>
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script src='https://unpkg.com/@turf/turf'></script>
<script>
var x = document.getElementById("demo");
getLocation();
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
var points = turf.points([
[position.coords.longitude, position.coords.latitude]
]);
var searchWithin = turf.polygon([[
[-128.84765625, 24.686952411999155],
[-66.62109375, 24.686952411999155],
[-66.62109375, 50.62507306341435],
[-128.84765625, 50.62507306341435],
[-128.84765625, 24.686952411999155]
]]);
var ptsWithin = turf.pointsWithinPolygon(points, searchWithin);
console.log(ptsWithin);
if(ptsWithin)
{
console.log("is in the polygon");
}
else
{
console.log("is NOT in the polygon");
}
}
</script>
</body>
</html>
Я положил console.log(ptsWithin)
впроверьте фактические результаты этой функции. Это featurecollection
... который на самом деле не знает, как использовать ... В идеале этот объект может содержать свойство или что-то логическое, что скажет мне: «Хорошо, вы вполигон "или" ты не "
У вас, ребята, есть идея?