2015-06-07 43 views
1

我得到了一些geoJSON文件,我把它放到MongoDB库中。 geoJSON模式是标准化的,所以我希望不会改变它。 geoJSON文件代表由一组区域(多边形)定义的标记 标记可能包含多个多边形 不同的标记可能包含相同的区域或多边形。如何在geoJson中找到保存在MongoDB中的多边形

的GeoJSON的文件是这样的:

{ 
    "_id": { 
     "$oid": "5570864ee4b08fb4e548beb6" 
    }, 
    "type": "FeatureCollection", 
    "crs": { 
     "type": "name", 
     "properties": { 
      "name": "urn:ogc:def:crs:OGC:1.3:CRS84" 
     } 
    }, 
    "features": [ 
     { 
      "type": "Feature", 
      "properties": { 
       "ida": "2335", 
       "name": "myName",      
       ..., 
       "surf_m2": 13432292 
      }, 
      "geometry": { 
       "type": "MultiPolygon", 
       "coordinates": [ 
        [ 
         [ 
          [ 
           -1.366403393656118, 
           47.19539498257428 
          ], 
          [ 
           -1.357701323667323, 
           47.19374649592587 
          ], 
          [ 
           -1.357566935700819, 
           47.1932311120653 
          ], 
          [ 
           -1.357111040694128, 
           47.192966611925904 
          ], 
          ... 
         ] 
        ] 
       ] 
      } 
     } 
    ] 
} 

图片我有许多文件是这样的。

如何查询shell中的mongoDB以查找基础中可用的多边形内的区域(通过名称,ID或其他)。

我已经tryed这一点:

db.Collection.find({"features":{"$geoIntersects":{"$geometry":{"type":"Point", "coordinates":[-1.3545706,47.166627 ]}}}}) 

或者

db.runCommand({ geoNear : "Collection" ,near : { type : "Point",coordinates:[-1.3545706,47.166627]},spherical : true } 

我的问题是,我是不是能够达到的坐标,因为它不是在根级别的直接访问,但在功能.geometry.coordinates。

帮助...

+0

支持MongoDB的GeoJSON对象被列出和[在这里解释](http://docs.mongodb.org/manual/reference/geojson/)。基本上,您可以做的最好的事情是将其分解为[GeomeryCollection](http://docs.mongodb.org/manual/reference/geojson/#geometrycollection)对象,因为不支持FeaturesCollection。 –

+0

@ user3561036,好的,你会这样做运行时还是通过创建一个匹配更多查询的新集合? – Anthony

+0

由于查询选项需要“索引”,因此不能“在运行时执行”。这意味着收集数据已经需要以该形式存储。您可以使用支持的方式存储它,并让MongoDB完成工作,或者卸载到另一个服务来处理存储的数据,在那里执行“咕噜工作”。我喜欢(合理)大型铁数据库服务器自己做出的咕噜声。 –

回答

0

这里是你如何能做到这运行时,由一个你想要的替代GPS位置。

db.CollectionName.find({"features.geometry":{"$geoIntersects":{"$geometry":{"type":"Point", "coordinates":[ -1.346784,47.141102]}}}}) 
相关问题