我将使用gdal / ogr进行新项目。我想要一个精简但功能齐全的应用程序,因此不会使用其他实现,例如mapserver,因为它们具有我认为在应用程序中需要的无关组件,即使在将来也是如此。为了记录,它是一个GIS,但我在这里问的是因为在PHP中使用GDAL/OGR
的GIS的例子很少我基本上有三个选择:
使用php的exec()函数运行命令行转换实用程序
使用swig生成.dll并将其作为php上的扩展加载
使用geonfr @ https://github.com/geonef/php5-gdal/wiki编写的php包装器
您认为哪种方法最有效?
答案 0 :(得分:6)
我最后使用了exec函数,主要是因为没有时间进入swig或php扩展开发,这对我个人来说是首选的方法。 //这里有一个小样本片段,希望它能为别人派上用场
public function convertToNewFormat($format)
{
return(
exec('ogr2ogr -f '
.$format
.' '.self::setNewFileLocation()
.' '.self::setOldFileLocation()));
}
答案 1 :(得分:2)
您可以使用Symfony Process-Component,避免使用普通的exec命令 它具有很好的语法,非常易于使用。
http://symfony.com/doc/current/components/process.html
$process = new Process('ls -lsa');
$process->run();
// executes after the command finishes
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();