[英]Is it possible to determine if a GeoJSON point is inside a GeoJSON polygon using JavasScript?
是否可以僅使用 JavaScript(通過 d3、topojson 或任何其他方式)確定給定經緯度的 GeoJSON 點是否位於給定的 GeoJSON 多邊形內?
例如,我可以根據此處的教程繪制顯示英國國家/地區的地圖。
然后我有一些具有坐標但沒有指示它們位於哪個國家的點。
我想顯示每個國家的總點數。
我可以在瀏覽器中找出哪個國家/地區包含每個點,還是需要使用 PostGIS 或類似工具在服務器上預處理我的點數據?
似乎d3
已涵蓋: https : //github.com/d3/d3-geo#geoContains
d3.geoContains(對象,點)
當且僅當指定的 GeoJSON 對象包含指定的點時返回 true,如果對象不包含該點,則返回 false。 該點必須指定為以度為單位的二元素數組 [longitude, latitude]。 對於點和多點幾何,使用精確測試; 對於 Sphere,始終返回 true; 對於其他幾何圖形,應用 epsilon 閾值。
如果您需要在給定的 GeoJSON 上多次執行此檢查,則擴展@thedude答案,您還可以使用geojson-lookup 。
Turf.js提供了一個叫做boolean-point-in-polygon的函數
例如:
var pt = turf.point([-77, 44]);
var poly = turf.polygon([[
[-81, 41],
[-81, 47],
[-72, 47],
[-72, 41],
[-81, 41]
]]);
turf.booleanPointInPolygon(pt, poly);
//= true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.