无法从Mongodb中获取经纬度为$ near的经纬度为long的记录

沙吉

我对使用mongodb进行地理空间数据搜索非常陌生。我需要检索英国提供的lat,long附近的英国邮政编码(基于结果lat,long)。我的mongodb查询如下:

$mongoPostcode = MongoDbConnector::getCollection("postcodes");
$query = array(
'location' => array(
    '$near' => array(
        'latitude' => 57.14270109,
        'longitude' => -2.093014619,
        '$maxDistance' => 15 / 111.12 // 1 degree is approximately 111.12 kilometers. 15 km of 111.12 would be 15/111.12
    )
)
);

$nearByPostcodeData = $mongoPostcode->find($query);

我的mongo的原始记录条目如下所示:

{
"_id": {
"$oid": "56ced2e6cffa1906847b6868"
},
"postcode": "AB11 8RQ",
"location": {
"latitude": 57.13597762,
"longitude": -2.072114784
},
"timestamp": 1454601532,
"active_status": 1
}

但是当我搜索时,它返回以下错误:

Fatal error: Uncaught exception 'MongoCursorException' with message 'localhost:27017: Unable to execute query: error processing query: ns=sampleproject.postcodes limit=0 skip=0 Tree: GEONEAR field=location maxdist=0.134989 isNearSphere=1 Sort: {} Proj: {} planner returned error: unable to find index for $geoNear query' in C:\xampp\htdocs\sampleproject\files\php\searchByPostCode.php:35 Stack trace: #0 C:\xampp\htdocs\sampleproject\files\php\searchByPostCode.php(35): MongoCursor->rewind() #1 {main} thrown in C:\xampp\htdocs\sampleproject\files\php\searchByPostCode.php on line 35

样本数据建模中是否缺少任何内容?还是查询问题?

杰里米·斯塔基(Jeremy Stucki)

您需要创建一个特殊的索引。2D球面索引

db.postcodes.createIndex( { "location" : "2dsphere" } )

编辑

您可以修改集合以使用米而不是弧度进行查询。

{
    "_id": { "$oid": "56ced2e6cffa1906847b6868" },
    "postcode": "AB11 8RQ",
    "location": {
        "type": "Point",
        "coordinates": [
            -2.072114784, // Longitude
            57.13597762 // Latitude
        ]
     },
     "timestamp": 1454601532,
     "active_status": 1
 }

您的查询将如下所示:

$query = array(
    'location' => array(
        '$near' => array(
            'latitude' => 57.14270109,
            'longitude' => -2.093014619,
            '$maxDistance' => 1000 // 1000 meters        )
        )
     )
);

这将需要重塑整个收藏集。可以在这里找到详细信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从地址解析经纬度获取地址

来自分类Dev

检查经纬度是否在圆内

来自分类Dev

在经纬度之间绘制svg弧

来自分类Dev

如何在mongodb中找到经纬度附近的地方?

来自分类Dev

facebook api如何从user_location获取经纬度

来自分类Dev

如何获取经纬度坐标?

来自分类Dev

经纬度栅格

来自分类Dev

在android中的arcgis mapview滚动后如何获取经纬度?

来自分类Dev

从SQlite中提取经纬度并显示在Webview上

来自分类Dev

以Xamarin形式获取经纬度的设备位置

来自分类Dev

使用Agm MPS,我想在地图上获取经纬度,单击角度10

来自分类Dev

MapBox GL JS:从通过代码设置的字符串地址获取经纬度坐标

来自分类Dev

JSON数组-提取经纬度

来自分类Dev

无法从经纬度获取地址

来自分类Dev

添加经纬度括号

来自分类Dev

Geo Django从经纬度获取城市

来自分类Dev

Google Maps JavaScript-标记数组,如何获取经纬度?

来自分类Dev

从字符串中提取经纬度

来自分类Dev

从Google Map Intent获取经纬度

来自分类Dev

从SQlite中提取经纬度并显示在Webview上

来自分类Dev

地理编码API遍历数组,获取经纬度并保存在新数组中

来自分类Dev

折线的经纬度:传单

来自分类Dev

如何通过经纬度获取android中的城市信息

来自分类Dev

使用 php 从地理编码农场获取经纬度

来自分类Dev

如何从经纬度在google中为python放置api制作数据框

来自分类Dev

从纬度和经纬度显示地址

来自分类Dev

Google Maps Api 动态获取经纬度

来自分类Dev

Swift 将经纬度编码为折线

来自分类Dev

如何从 HEXEWKB PostGis 获取经纬度?