我正在尝试使用turf.js框架及其pointsWithinPolygon
方法来定位网站的访问者以显示页面元素或不显示页面元素
到目前为止,在将解决方案应用于实际应用之前,我一直在研究示例代码:
-我已经使用geojson地图应用程序绘制了Polygone(这里是不熟悉的人的链接: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
...,实际上并不知道如何使用...理想情况下,此对象可以包含属性或布尔值,它们会告诉我“好,您在多边形中”或“您'不是'
你们有个主意吗?