openmaplt / vector-map

Vektorinis Lietuvos OpenStreetMap žemėlapis
https://openmap.lt/
MIT License
10 stars 4 forks source link

Tegola config'as repositorijoje, bet docker-compose.yml ieško tiles.cfg (TileStache) #290

Open xor22h opened 4 years ago

xor22h commented 4 years ago

Panašu kad docker-compose yra out of sync. Jei gerai pamenu tegola ir TileStash daro tą patį. Manau kažkuriuo metu buvo numigruota prie tegola, bet docker-compose neatnaujintas.

paumas commented 4 years ago

Taip, tu visiškai teisus. Anksčiau mes naudojome TileStash, o jau kažkur metus jau naudojame Tegola, tad docker kontaineriai nėra sutvarkyti.

tomass commented 4 years ago

Jei jūs sutvarkysite softo pakėlimo dalį - aš galėsiu pažiūrėti/pakomentuoti, ką reikia duombazėje padaryti, kad viskas gražiai pakiltų.

xor22h commented 4 years ago

@tomass could not register providers: error fetching geometry type for layer (landuse8): ERROR: relation "gen_forest" does not exist (SQLSTATE 42P01)

xor22h commented 4 years ago

gen_building.sql irgi failina:

psql:/src/db/gen_building.sql:76: ERROR:  function stc_simplify_building(geometry, integer) does not exist
LINE 1: ... gen_building set status = 'DONE', way = st_multi(stc_simpli...
tomass commented 4 years ago

landuse8 sluoksniui reikia _genforest lentos, kurioje yra generalizuoti miškai. Iš principo po pirmo duomenų importo į db reikia paleisti generalizacijos funkcionalumą:

gen_way.sql
gen_water.sql
gen_building.sql
gen_forest.sql
gen_protected.sql

Jį reikia periodiškai iš naujo paleisti (atnaujinti). Bet šitie veiksmai užima nemažai laiko, tai tarkim openmap.lt atveju jie daromi tik kas savaitę.

Norint paleisti gen_buildiing reikia sudiegti funkcijas, kurios yra aplanke „db/func“. Iš principo reikia sudiegti visas funkcijas iš „func“ aplanko. sukurti visas lenteles ir mview'us iš „db/tables“ aplanko.

Ir čia dar ne viskas :-) Dar reikia po db atnaujinimo paleisti „db/update_water_label.sql“, kuri atnaujins vandens telkinių kartografines (išlankstytas pagal geometriją) etiketes. Jos kol kas turistiniame stiliuje (map.json) nenaudojamos (naudojamos topografiniame ir upių stiliuose), bet kaladėlėse ši info yra, tai be šitos info tegola skųsis (alternatyviai galima tegoloje atjungti sluoksnius _labelsc ir _labelsp)

xor22h commented 4 years ago

Pridėjau docker exec -u postgres $CONTAINER_DB sh -c 'cat /src/db/func/*.sql | psql osm -f -' Bandau generuoti building, ziuresiu kaip forest poto elgsis; Pastebejau kad kaikurie iš jų lėti...

https://github.com/openmaplt/vector-map/pull/293/files#diff-6f52613feaa16005aa471443d8ed37d4R14

293

tomass commented 4 years ago

Lėti, nes toks jau tas daiktas generalizacija. Bet be jos smulkesniuose masteliuose arba reikia atsisakyti braižyti kai kuriuos objektų tipus, arba kaladėlės žiauriai apsikrauna (kaladėlės dydis pradeda siekti 1-2Mb) ir tada tik patys naujausi greičiausi telefonai sugeba parodyti žemėlapį.

xor22h commented 4 years ago
psql:/src/db/gen_building.sql:180: NOTICE:  === Invalid geometry for gen_building.id=2921514
DO
UPDATE 820485
DELETE 455853
UPDATE 3241317
psql:/src/db/gen_building.sql:190: ERROR:  syntax error at or near ";"
LINE 1: drop function gen_building_temp;
xor22h commented 4 years ago

@tomass praejau buildings ir forest, ir kitas gen. Dabar beda coastline.

matau yra scriptas

#!/bin/bash
wget http://data.openstreetmapdata.com/water-polygons-split-3857.zip
unzip water-polygons-split-3857.zip
shp2pgsql -s 3857 -dDI water-polygons-split-3857/water_polygons.shp coastline_tmp | psql gis
rm -rf water-polygons-split-3857*
psql gis < recreate_coastline.sql
pg_dump gis -t coastline -c > coastline.sql
rm coastline.sql.bz2
bzip2 coastline.sql

bet gaunu 404

xor22h commented 4 years ago

radau kitoje vietoje: https://osmdata.openstreetmap.de/download/coastlines-split-3857.zip Tikiuosi tai ko reikia :D

xor22h commented 4 years ago

Correct file: https://osmdata.openstreetmap.de/download/water-polygons-split-3857.zip

xor22h commented 4 years ago

Radau kad coastline.sql.bz2 repositorijoje yra, bet:

SET
SET
SET
SET
SET
 set_config 
------------

(1 row)

SET
SET
SET
ERROR:  index "coastline_geometry" does not exist
ERROR:  table "coastline" does not exist
SET
SET
CREATE TABLE
ERROR:  role "tomas" does not exist
COPY 37
CREATE INDEX

Docker'is jokio Tomas nepazysta. :(

tomass commented 4 years ago

ERROR dėl „index/table does not exist“ - nes leidžiama pirmą kartą, o automatiškai sugeneruotame skripte neįdėti „IF EXISTS“. role „tomas“ does not exist, kiek matau dėl šitos eilutės: ALTER TABLE public.coastline OWNER TO tomas; Žodžiu irgi galima ignoruoti. Toliau matosi „COPY 37“ reiškia ir lentą sukūrė, ir duomenis sudėjo (žodžiu viskas turėtų veikti). Aš pabandysiu naujai atsiųstą vandens poligonų failą (ačiū už nuorodą) ir įdėsiu naujai sugeneruotą coastline.sql.bz2

tomass commented 4 years ago

Šitas ištaiso nuorodą į vandens duomenų failą ir atnaujina coastline duomenis. https://github.com/openmaplt/vector-map/pull/295