繁体   English   中英

在“ loc”字段中存储GeoJSON对象时,流星的mongodb插入失败

[英]Meteor's mongodb insertion failed when storing GeoJSON Objects in field “loc”

我在流星应用程序中插入对象listingItemInjectionObj ,其属性之一如下

listingItemInjectionObj.loc = { 
    type: "Point", 
    coordinates: [ lat, lng ] // google api lat(), lng() stored in vars
};

但是,当我插入Listings.insert(listingItemInjectionObj); 我收到以下错误"insert failed: MongoError: insertDocument :: caused by :: 16804 location object expected, location array not in correct format"我要基于GeoJSON对象 ,在尝试了此SO Q之后我来到了这里。

您的数组中的经纬度顺序错误。 GeoJSON需要很长时间才能到达纬度:

listingItemInjectionObj.loc = { 
    type: "Point", 
    coordinates: [ lng, lat ]
};
Following code works:-

Request payload:
{"loc":["-12.62","21.48"]}

Node.js backend:
var lat, lon, loc = req.body.loc;
if(loc && loc instanceof Array && loc.length) {
    lat = parseInt(loc[0], 10) || 0;
    lon = parseInt(loc[1], 10) || 0;
    data['loc'] = {
        type: "Point",
        coordinates : [lat, lon]
    };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM