我有一个项目,需要确定位置(纬度和经度)的barangay(barrio /细分)。有可用的API吗?
在菲律宾,地址中必须包含Barangay。地址的示例格式类似于[House No.][Street][Barangay][City][Region]
。
我尝试在Google Maps API和LocationIQ API中进行搜索,但响应中不包含barangay。
答案 0 :(得分:1)
很遗憾,我没有找到任何提供此数据的Maps API。但是我确实找到了解决方法,方法是获取某个Barangay的多边形,然后检查坐标是否在该多边形内。 geojsonph以GeoJson格式提供菲律宾Barangays的所有多边形。我还使用了geojson-geometries-lookup's getContainers()
来检查坐标是否在barangay内。
import GeoJsonGeometriesLookup from 'geojson-geometries-lookup'
import geoJson from 'Barangays.json'
export default function(lat, long) {
const glookup = new GeoJsonGeometriesLookup(geoJson)
const point = {type: "Point", coordinates: [long, lat]}
const containersCount = glookup.countContainers(point)
if(containersCount == 0){
// no barangays found
return null
}else{
// coordinate is inside a polygon
let result = glookup.getContainers(point, options)
return result
}
}
getContainers(point)
将检查Barangays.json
中包含point
的所有给定多边形,然后以geojson格式返回对象。如果要获取Barangay的名称:
let long = 121.00436210632324
let lat = 14.603881611661933
let res = getBarangay(lat, long)
console.log(res.properties.NAME_3)
希望这会有所帮助!