PHP实现搜索地理位置及计算两点地理位置间距离的实例

地理位置搜寻

LBS,存储每个地点的经纬度坐标,搜寻附近的地点,建立地理位置索引可提高查询效率。

mongodb地理位置索引,2d和2dsphere,对应平面和球面。

1.创建lbs集合存放地点坐标

use lbs;

db.lbs.insert(

{

loc:{

type: "Point",

coordinates: [113.332264, 23.156206]

},

name: "广州东站"

}

)

db.lbs.insert(

{

loc:{

type: "Point",

coordinates: [113.330611, 23.147234]

},

name: "林和西"

}

)

db.lbs.insert(

{

loc:{

type: "Point",

coordinates: [113.328095, 23.165376]

},

name: "天平架"

}

)

2.创建地理位置索引

db.lbs.ensureIndex(

{

loc: "2dsphere"

}

)

3.查询附近的坐标

当前位置为:时代广场,

坐标:

113.323568, 23.146436

搜寻附近一公里内的点,由近到远排序

db.lbs.find(

{

loc: {

$near:{

$geometry:{

type: "Point",

coordinates: [113.323568, 23.146436]

},

$maxDistance: 1000

}

}

}

)

搜寻结果:

{ "_id" : ObjectId("556a651996f1ac2add8928fa"), "loc" : { "type" : "Point", "coordinates" : [ 113.330611, 23.147234 ] }, "name" : "林和西" } 

以上是 PHP实现搜索地理位置及计算两点地理位置间距离的实例 的全部内容, 来源链接: utcz.com/z/325634.html

回到顶部