如何通过java在mongoDB集合中插入GeoJson对象作为原型$geometry

如何通过java在mongoDB集合中插入GeoJson对象作为原型$geometry,java,mongodb,mongodb-java,mongodb-3.3,Java,Mongodb,Mongodb Java,Mongodb 3.3,目前,我正在使用java制作mongoDB数据库,我一直在收集中插入地理位置。我的导师告诉我使用GeoJSON对象作为$geometry原型插入地理位置。我的意思是,我想插入数据,如下所示- $geometry: { type: "Polygon", coordinates: [ <coordinates> ], crs: { type: "name", properties: { name: "urn:x-mongodb:crs:stric

目前,我正在使用java制作mongoDB数据库,我一直在收集中插入地理位置。我的导师告诉我使用GeoJSON对象作为$geometry原型插入地理位置。我的意思是,我想插入数据,如下所示-

$geometry: {
   type: "Polygon",
   coordinates: [ <coordinates> ],
   crs: {
      type: "name",
      properties: { name: "urn:x-mongodb:crs:strictwinding:EPSG:4326" }
   }
}
$geometry:{
键入:“多边形”,
座标:[],
crs:{
键入:“名称”,
属性:{name:“urn:x-mongodb:crs:strictwinding:EPSG:4326”}
}
}
我做到了-

double lat_lng_values[] = {144.6682361, -37.8978304};
List<BasicDBObject> loc = new ArrayList();
BasicDBObject obj = new  BasicDBObject();
obj.put("location",lat_lng_values);
PInfo.insert(obj);    //(Here Pinfo is DBCollection Object)
double lat_lng_值[]={144.6682361,-37.8978304};
List loc=new ArrayList();
BasicDBObject对象=新的BasicDBObject();
obj.put(“位置”,lat_lng_值);
插销(obj)//(这里Pinfo是DBCollection对象)
所以请帮助我如何使用$geometry原型。
先谢谢你。对不起,我说的是英语。

您的原型没有传达给GeoJson标准,您应该遵循以下模式:

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
} 
因此,如果您有任何属性,如“crs”,它应该包含在GeoJson模式的属性部分中。关于在mangoDB中插入GeoJson文档,我不是这方面的专家,但您可以使用类似的东西:

    Mongo mongo = new Mongo('your paramaters');
    DB db = mongo.getDB("yourdb");

    DBCollection collection = db.getCollection("dummyColl");
    String json = "{
        'type': 'Feature',
        'geometry': {
          'type': 'Point',
          'coordinates': [125.6, 10.1]
        },
       'properties': {
          'name': 'Dinagat Islands'
       }
   }";

    DBObject dbObject = (DBObject)JSON.parse(json);

    collection.insert(dbObject);

它在代码的第6行给出了双引号错误。所以编辑你的答案:)。但在调试双引号错误后,它工作正常。谢谢你,兄弟。