php+mongodb判断坐标是否在指定多边形区域内的实例判断坐标是否在指定多边形区域内的实例
MongoDB是一个基于分布式文件存储的数据库,并提供创建基于地理空间的索引的能力,本文将提供使用PHP连接
mongodb,判断坐标是否在指定多边形区域内的实例。
1.定义多边形区域
多边形的坐标点如下:
113.314882,23.163055
113.355845,23.167042
113.370289,23.149564
113.356779,23.129758
113.338238,23.13913
113.330979,23.124706
113.313588,23.140858
113.323865,23.158204
113.314882,23.163055
2.在mongodb创建数据库
use testdb;
db.createUser(
{
"user":"root",
"pwd":"123456",
"roles":[{"role" : "readWrite", "db":"testdb"}] }
);
db.auth(
{
"user":"root",
"pwd":"123456"
}
);
3.使用php插入多边形数据,并判断坐标是否在区域内
MongoDBPolygons.class.php
<?php
/**
* MongoDB 多边形区域类,判断坐标是否在多边形区域内
* Date: 2016-09-30
* Author: fdipzone
* Ver: 1.0
*
* Func:
* public add 创建多边形区域
* public checkInArea 判断坐标是否在多边形区域内
* private connect 连接mongodb
*/
class MongoDBPolygons { // class start
// mongo db 连接
private $_conn = null;
// mongo db
private $_db = null;
/**
* 初始化
* @param String $host mongodb地址
* @param String $user 用户名
* @param String $passwd 密码
* @param String $db 数据库
*/
public function __construct($host, $user, $passwd, $db){