Я пытаюсь запустить команду ogr2ogr, для которой требуется версия GDAL, созданная с достаточно новым SpatiaLite, чтобы иметь функцию ST_MakeValid --- из групп обсуждения , кажется, 4.0 +
Однако версия gdal в ubuntugis имеет то, что выглядит как современная версия gdal
$ gdalinfo --version
GDAL 2.2.4, released 2018/03/19
И у меня есть современный пространственный объект:
$ sudo apt-get install libspatialite-dev spatialite-bin libspatialite7
... already installed
$ spatialite
SpatiaLite version ..: 4.3.0a Supported Extensions:
но команда ogr2ogr
, похоже, не скомпилирована с версией пространственного объекта, которая находится в репозиториях как отдельный бинарный файл, а скорее чем-то более старым.(Я не могу сказать, как проверить, с какой версией он скомпилирован, просто что эта команда, которая успешно выполняется, когда она обновлена, не работает )
Вот мой Dockerfile:
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y software-properties-common \
&& add-apt-repository ppa:ubuntugis/ubuntugis-unstable -y && apt-get update \
&& apt-get install --yes gdal-bin curl \
&& curl -LKS 'https://github.com/OpenDataDE/State-zip-code-GeoJSON/raw/master/ks_kansas_zip_codes_geo.min.json' -o ks_kansas_zip_codes_geo.min.json \
&& ogrinfo --version \
&& ogr2ogr -f GeoJSON -dialect sqlite -sql "select ST_MakeValid(geometry),STATEFP10,ZCTA5CE10,GEOID10,CLASSFP10,MTFCC10,FUNCSTAT10,ALAND10,AWATER10,INTPTLAT10,INTPTLON10,PARTFLG10 from \"ks_kansas_zip_codes_geo.min\"" clean.json ks_kansas_zip_codes_geo.min.json
Что можно изменить в репозиториях или как вручную скомпилировать gdal
, чтобы получить версию пространственного объекта, содержащую функцию ST_MakeValid
?
Примечания
Сбор результатов поискаэто может иметь значение:
Обновления dockerfile
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y software-properties-common \
&& add-apt-repository ppa:ubuntugis/ubuntugis-unstable -y \
# # INSTALLING GRASS DOES NOT SEEM HELPFUL
# && add-apt-repository ppa:grass/grass-devel -y \
&& apt-get update \
&& apt-get install --yes curl git autoconf libtool \
# # TRIED RTTOPO FROM HERE:
# # http://postgis.17.x6.nabble.com/Why-can-t-PostGIS-configure-find-libgeos-c-td3552982.html
# # AND HERE:
# # https://gitlab.com/rttopo/rttopo
# # DOES NOT SEEM FRUITFUL
# apt-get install --yes libgeos-dev \
# && git clone https://gitlab.com/rttopo/rttopo.git \
# && cd rttopo && ./autogen.sh && ./configure --enable-rttopo=yes --with-geosconfig=/usr/bin/geos-config && make && make install \
# && cd \
&& apt-get install --yes gdal-bin \
&& curl -LKS 'https://github.com/OpenDataDE/State-zip-code-GeoJSON/raw/master/ks_kansas_zip_codes_geo.min.json' -o ks_kansas_zip_codes_geo.min.json \
&& ogrinfo --version \
&& ogr2ogr -f GeoJSON -dialect sqlite -sql "select ST_MakeValid(geometry),STATEFP10,ZCTA5CE10,GEOID10,CLASSFP10,MTFCC10,FUNCSTAT10,ALAND10,AWATER10,INTPTLAT10,INTPTLON10,PARTFLG10 from \"ks_kansas_zip_codes_geo.min\"" clean.json ks_kansas_zip_codes_geo.min.json