1

So I have a kml file that I want to save to my postgis database, Currently I have the following code using php:

$file = $request->file("item");

                    $name   = time();
                    $name   = $name . '.' . $file->getClientOriginalExtension();
                    $temp = 'uploads/' . $user_app->id . '/kml/';
                    $path = public_path('uploads/' . $user_app->id . '/kml/');
                    if (!file_exists($path)) {
                        mkdir($path, 0777, true);
                    }
                    $path   = public_path() . '/uploads/' . $user_app->id . '/kml/';
                    $command = "ogr2ogr  -f PostgreSQL PG:\"host=".$HOST." dbname=".$DBNAME." port=".$PORT." user=".$USER." password=".$PASSWORD."\"   ".$path.$name."  -nln siap 2>&1";
                    
                    Log::debug($command);
                    $res = shell_exec($command) ;
                    Log::debug($res);

This is the command line,

ogr2ogr  -f PostgreSQL PG:"host=127.0.0.1 dbname=postgis_24_sample port=5432 user=postgres password=123456"   C:\xampp\htdocs\siap-padron\public/uploads/2044492/kml/1597284059.kml  -nln siap 2>&1

this if I run it in powershell or in the system symbol it inserts it correctly in the postgis base, but when it is run in php it gives me the following error

local.DEBUG: FAILURE: Unable to open datasource `C:/xampp/htdocs/siap-padron/public/uploads/2044492/kml/1597284059.kml' with the following drivers.
-> `JP2ECW'......

Any comment would be very helpful.

  • It looks like GDAL tries to open the kml file with raster drivers. I do not know why. EDIT: wrong thinking, JPEG 2000 can contain also vector data and therefore the JP2ECW driver was tested as well. – user30184 Aug 13 at 7:25
0

The error came out because my kml file path was wrong, the correct way is as follows

ogr2ogr  -f PostgreSQL PG:"host=127.0.0.1 dbname=postgis_24_sample port=5432 user=postgres password=123456"   C:/xampp/htdocs/siap-padron/public/uploads/2044492/kml/1597328869.kml  -nln siap 2>&1
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.