私はPHPでMongo geospatial Queryを試しました.次のエラーに直面しました.2つのPHPスクリプトを書きました..GeoPHPでクラスからオブジェクトを作成し、メンバーメソッドを呼び出しますそして私の別のPHPスクリプトclass.master.phpはクラスとメンバーを書きましたメソッド
GeoPHP.php
<?php
require 'class.master.php';
$lat = 27.53864605;
$long = 94.57980515;
$distance = 5;
$geObj = new Geo;
$geObj->DbInst('dbname', 'collectionname');
$geObj->assignGeo($lat, $long, $distance);
$resultFld = array('id', 'name', 'stid', 'dis_id', 'ta_id');
$query = array('location'=>
array("\$near"=>
array("\$geometry"=>
array('type'=>'Point', 'coordinates'=>
array($long, $lat)),"\$minDistance"=> 0, "\$maxDistance"=>$distance
)
)
);
$result = $geObj->getResult($query, $resultFld);
?>
class.master.php
<?php
require 'vendor/autoload.php';
class Geo{
private $latitude, $longitude, $distance;
private $uri = "mongodb://localhost:27017";
private $databaseName;
private $db;
public $collection;
public function DbInst($dbname, $collName){
// Mongo Connection Establish
$con = new MongoDB\Client($this->uri);
$this->databaseName = $dbname;
$this->db = $con->selectDatabase($this->databaseName);
$this->collection = $collName;
}
public function assignGeo($lat, $long, $dis){
$this->latitude = $lat;
$this->longitude = $long;
$this->distance = $dis;
}
public function getResult($query, &$resFld){
$cursor = $this->collection->find($query);
return $cursor;
}
}
?>
上記のスクリプトは次のエラーを返します
致命的なエラー: 35 行目の D:\xampp_1.8.3\htdocs\GeoMongo\class.master.php の非オブジェクトに対するメンバー関数 find() の呼び出し
このエラーを修正するには?