lyon demo rendering failed
Closed this issue · 4 comments
After running lopocs demo --work-dir demos/ --sample lyon --cesium
, I have opened the demo URL generated at the end of the console log, and I get the following message in the browser:
An error occurred while rendering. Rendering has stopped.
SecurityError: The operation is insecure.
m@file:///home/rdelhome/src/lopocs/demos/cesium/Cesium/Cesium.js:526:29304
O.prototype.update@file:///home/rdelhome/src/lopocs/demos/cesium/Cesium/Cesium.js:527:20230
b.prototype.update@file:///home/rdelhome/src/lopocs/demos/cesium/Cesium/Cesium.js:559:30067
f.prototype.update@file:///home/rdelhome/src/lopocs/demos/cesium/Cesium/Cesium.js:565:7755
Xe@file:///home/rdelhome/src/lopocs/demos/cesium/Cesium/Cesium.js:569:5198
tt@file:///home/rdelhome/src/lopocs/demos/cesium/Cesium/Cesium.js:569:9464
we.prototype.render@file:///home/rdelhome/src/lopocs/demos/cesium/Cesium/Cesium.js:569:17357
P.prototype.render@file:///home/rdelhome/src/lopocs/demos/cesium/Cesium/Cesium.js:581:12327
t@file:///home/rdelhome/src/lopocs/demos/cesium/Cesium/Cesium.js:581:276
@autra have you got any idea of what is going on?
Looks like you're trying to load some js / assets from a different origin than your webserver. Are you using the file:/// protocol ? If yes, you shouldn't (generally speaking, it's always a bit difficult to work with this protocol : a lot of differences between browsers, some security policy that will make your website crash etc...)
Hello,
I cannot display correctly "lyon" example data with lopocs due to this error:
psycopg2.pool.PoolError: connection pool exhausted
As i'm not a programmer and I had to do some changes to make lopocs works on Debian (see at the bottom), I wonder if it can be due to my modifications or if there are some settings to change in the pool side
Following, part of the log:
[2020-03-11 20:03:48,493] ERROR in app: Exception on /3dtiles/public.lyon.points/read.pnts [GET]
Traceback (most recent call last):
File "/opt/lopocs/venv/lib/python3.7/site-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/opt/lopocs/venv/lib/python3.7/site-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/opt/lopocs/venv/lib/python3.7/site-packages/flask_restplus/api.py", line 313, in wrapper
resp = resource(*args, **kwargs)
File "/opt/lopocs/venv/lib/python3.7/site-packages/flask/views.py", line 89, in view
return self.dispatch_request(*args, **kwargs)
File "/opt/lopocs/venv/lib/python3.7/site-packages/flask_restplus/resource.py", line 44, in dispatch_request
resp = meth(*args, **kwargs)
File "/opt/lopocs/lopocs/app.py", line 159, in get
args.get('lod')
File "/opt/lopocs/lopocs/threedtiles.py", line 58, in ThreeDTilesRead
[tile, npoints] = get_points(session, box, lod, offsets, pcid, scales, schema)
File "/opt/lopocs/lopocs/threedtiles.py", line 125, in get_points
sql = sql_query(session, box, pcid, lod)
File "/opt/lopocs/lopocs/threedtiles.py", line 186, in sql_query
patch_size = session.patch_size
File "/opt/lopocs/lopocs/database.py", line 234, in patch_size
return self.query(sql)[0][0]
File "/opt/lopocs/lopocs/database.py", line 466, in query
with cls._execute(query, parameters) as cursor:
File "/usr/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/opt/lopocs/lopocs/database.py", line 450, in _execute
with cls._conn() as conn:
File "/usr/lib/python3.7/contextlib.py", line 112, in __enter__
return next(self.gen)
File "/opt/lopocs/lopocs/database.py", line 442, in _conn
conn = cls.pool.getconn()
File "/opt/lopocs/venv/lib/python3.7/site-packages/psycopg2/pool.py", line 168, in getconn
return self._getconn(key)
File "/opt/lopocs/venv/lib/python3.7/site-packages/psycopg2/pool.py", line 91, in _getconn
raise PoolError("connection pool exhausted")
psycopg2.pool.PoolError: connection pool exhausted
192.168.0.102 - - [11/Mar/2020 20:03:48] "GET /3dtiles/public.lyon.points/read.pnts?v=0.0&lod=2&bounds=[4440967.31950011,375461.372910486,4547185.11007563,4441167.6970001105,375719.772910486,4547372.6850756295] HTTP/1.1" 500 -
192.168.0.102 - - [11/Mar/2020 20:03:48] "GET /3dtiles/public.lyon.points/read.pnts?v=0.0&lod=2&bounds=[4440967.31950011,375719.772910486,4547185.11007563,4441167.6970001105,375978.172910486,4547372.6850756295] HTTP/1.1" 200 -
192.168.0.102 - - [11/Mar/2020 20:03:49] "GET /3dtiles/public.lyon.points/read.pnts?v=0.0&lod=2&bounds=[4440967.31950011,375202.97291048605,4547185.11007563,4441167.6970001105,375461.372910486,4547372.6850756295] HTTP/1.1" 200 -
192.168.0.102 - - [11/Mar/2020 20:03:49] "GET /3dtiles/public.lyon.points/read.pnts?v=0.0&lod=2&bounds=[4441368.07450011,374944.572910486,4546809.96007563,4441568.4520001095,375202.97291048605,4546997.53507563] HTTP/1.1" 200 -
192.168.0.102 - - [11/Mar/2020 20:03:49] "GET /3dtiles/public.lyon.points/read.pnts?v=0.0&lod=2&bounds=[4440967.31950011,374944.572910486,4547185.11007563,4441167.6970001105,375202.97291048605,4547372.6850756295] HTTP/1.1" 200 -
and in the attached image what I see
My configuration:
VMWare Player Virtal machine, 40 giga hd, 4096MB of memory for the VM (32 Giga for the host)
Debian 10 stable
PostgreSQL 11 (repository)
PDAL (from GIT to have lazperf and laszip)
I did some changes in the following files:
setup.py
-- 'pyproj==1.9.5.1',
'pyproj==1.9.6',
-- downgrade
'werkzeug==0.16.1'
lopocs/cli.py
-- offset_x = summary['bounds']['X']['min'] + (summary['bounds']['X']['max'] - summary['bounds']['X']['min']) / 2
-- offset_y = summary['bounds']['Y']['min'] + (summary['bounds']['Y']['max'] - summary['bounds']['Y']['min']) / 2
-- offset_z = summary['bounds']['Z']['min'] + (summary['bounds']['Z']['max'] - summary['bounds']['Z']['min']) / 2
offset_x = summary['bounds']['minx'] + (summary['bounds']['maxx'] - summary['bounds']['minx']) / 2
offset_y = summary['bounds']['miny'] + (summary['bounds']['maxy'] - summary['bounds']['miny']) / 2
offset_z = summary['bounds']['minz'] + (summary['bounds']['maxz'] - summary['bounds']['minz']) / 2
-- xmin, ymin, zmin = transform(pini, pout, summary['bounds']['X']['min'], summary['bounds']['Y']['min'], summary['bounds']['Z']['min'])
-- xmax, ymax, zmax = transform(pini, pout, summary['bounds']['X']['max'], summary['bounds']['Y']['max'], summary['bounds']['Z']['max'])
xmin, ymin, zmin = transform(pini, pout, summary['bounds']['minx'], summary['bounds']['miny'], summary['bounds']['minz'])
xmax, ymax, zmax = transform(pini, pout, summary['bounds']['maxx'], summary['bounds']['maxy'], summary['bounds']['maxz'])
lopocs/database.py
server_version = full_server_version.split()[0] # Keep only "X.X.X"
-- server_version = server_version_full.split()[0] # Keep only "X.X.X"
(venv) root@sdi:/opt/lopocs# lopocs demo --sample lyon --work-dir demos --server-url http://192.168.0.120:5000 --cesium
ln -s /opt/lopocs/demos/ /var/www/html/lopocs
(venv) root@sdi:/opt/lopocs# lopocs serve --host 192.168.0.120
Partially solved modifying row 193 in lopocs/database.py, and putting a different maxconn number in ThreadedConnectionPool
# cls.pool = ThreadedConnectionPool(1, cpu_count(), query_con)
cls.pool = ThreadedConnectionPool(1, 50, query_con)
But I really don't know what kind of consequences it could arise