diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0a764a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +env diff --git a/Dockerfile b/Dockerfile index 06bc6a4..4d0c319 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.4 +FROM python:3.7.2 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app @@ -7,4 +7,4 @@ VOLUME /mapping COPY . /usr/src/app/ RUN pip install --no-cache-dir -r requirements.txt -CMD ["python", "-u","/usr/src/app/server.py"] +CMD ["python", "-u","/usr/src/app/server.py"] diff --git a/requirements.txt b/requirements.txt index bb95b17..b31efb9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -tornado==4.4.2 -sqlalchemy==1.1.5 -mercantile==0.9.0 -pyproj==1.9.5.1 -pyyaml==3.12 -psycopg2==2.6.2 +mercantile==1.0.4 +psycopg2-binary==2.7.7 +pyproj==1.9.6 +PyYAML==3.13 +SQLAlchemy==1.2.18 +tornado==5.1.1 diff --git a/server.py b/server.py index 8122558..1a9784f 100644 --- a/server.py +++ b/server.py @@ -29,7 +29,7 @@ def GeneratePrepared(layers): layer_query = layer['Datasource']['table'].lstrip().rstrip() # Remove lead and trailing whitespace layer_query = layer_query[1:len(layer_query)-6] # Remove enough characters to remove first and last () and "AS t" layer_query = layer_query.replace("geometry", "ST_AsMVTGeom(geometry,!bbox!,4096,0,true) AS mvtgeometry") - base_query = "SELECT ST_ASMVT('"+layer['id']+"', 4096, 'mvtgeometry', tile) FROM ("+layer_query+" WHERE ST_AsMVTGeom(geometry, !bbox!,4096,0,true) IS NOT NULL) AS tile" + base_query = "SELECT ST_ASMVT(tile, '"+layer['id']+"', 4096, 'mvtgeometry') FROM ("+layer_query+" WHERE ST_AsMVTGeom(geometry, !bbox!,4096,0,true) IS NOT NULL) AS tile" queries.append(base_query.replace("!bbox!","$1").replace("!scale_denominator!","$2").replace("!pixel_width!","$3").replace("!pixel_height!","$4")) prepared = prepared + " UNION ALL ".join(queries) + ";" print(prepared) @@ -80,7 +80,7 @@ def get_mvt(zoom,x,y): layers = filter(None,list(itertools.chain.from_iterable(response))) final_tile = b'' for layer in layers: - final_tile = final_tile + io.BytesIO(layer).getvalue() + final_tile = final_tile + io.BytesIO(layer).getvalue() return final_tile class GetTile(tornado.web.RequestHandler):