搜索GeoJson文件

时间:2015-08-10 22:49:48

标签: node.js cordova geojson

我使用geojson文件开发基于Cordova的应用程序,我需要知道是否有办法检查我当前的地理位置(纬度和逻辑)是否在geojson:linestring中。这个应用程序离线工作。

1 个答案:

答案 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 以外的东西。