我使用geojson文件开发基于Cordova的应用程序,我需要知道是否有办法检查我当前的地理位置(纬度和逻辑)是否在geojson:linestring中。这个应用程序离线工作。
答案 0 :(得分:0)
以下是使用jq(https://stedolan.github.io/jq)的解决方案。
给定一个有效的geojson对象,每次遇到“type”等于“LineString”且具有指定latLong的“坐标”的对象时,此处定义的report(latLong)将返回 true 遍历geojson对象。
def report(latLong):
if type == "object"
and .type == "LineString"
and (.coordinates | type) == "array"
and (.coordinates | index([latLong])) then true
elif type == "array" or type == "object" then .[] | report(latLong)
else empty
end;
使用此定义的一种方法是将其放入文件中,例如geojson.jq, 连同以下一行:
report($latLong | fromjson)
这是一个假设http://geojson.org/geojson-spec.html#examples的geojson对象位于名为geojson.json的文件中的示例:
$ jq --arg latLong "[103.0, 1.0]" -f geojson.jq geojson.json
true
还有其他方法可以使用上面定义的报告/ 1,当然还有可以定义的报告/ 1的变体,例如产生 true 以外的东西。