SQLite数据库我正在处理名为多边形的商店,每个都由一些点组成,这些表是“多边形”(id,name)和“points”(x,y,polygon_id)。 现在,给定一个点坐标,我需要查询与该点相交的所有多边形。 我目前的解决方案(见下文)非常慢,请帮助我优化
$dbh->sqliteCreateFunction('mgPoint', 'sqlite_point', 2);
function sqlite_point($sid, $pt){
$points = query("SELECT x,y FROM points WHERE polygon_id = $sid")->all();
return is_point_in_polygon($pt, $points);
}
//... and the usage ...
query("SELECT * FROM polygon s WHERE mgPoint(s.id, :p)", array('p' => $pt));