我目前正在使用可在https://github.com/bringnow/docker-nominatim找到的Docker镜像安装Nominatim。但是,当我发送查询时,我收到以下错误:
错误请求
Nominatim在您的请求中遇到错误。
详细信息:非法查询字符串(不是UTF-8字符串):paderborn
当我查看控制台时,出现以下错误:
ERROR: relation "query_log" does not exist at character 13
STATEMENT: insert into query_log values ('2018-05-23 15:25:03.9961','paderborn','172.18.0.1')
ERROR: relation "new_query_log" does not exist at character 13
STATEMENT: insert into new_query_log (type,starttime,query,ipaddress,useragent,language,format) values ('search','2018-05-23 15:25:03.9961','q=paderborn&polygon=1&viewbox=','172.18.0.1','Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0','short_name:de,short_name:en-US,short_name:en,name:de,name:en-US,name:en,place_name:de,place_name:en-US,place_name:en,official_name:de,official_name:en-US,official_name:en,short_name,name,place_name,official_name,ref,type','')
ERROR: function make_standard_name(unknown) does not exist at character 8
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
STATEMENT: select make_standard_name('paderborn') as string
我已经找到了一个提出以下解决方案的答案:
./utils/setup.php --create-functions --enable-diff-updates
但是,这会导致错误:
Functions
CREATE FUNCTION
ERROR: could not access file "/app/module/nominatim.so": No such file or directory
当我查看文件系统时,文件nominatim.so存在。所以,这个错误令人困惑。
有人知道解决方案吗?
答案 0 :(得分:0)
我发现了错误:我们有两个泊坞窗图片,一个用于 nominatim ,另一个用于 postgis 。文件/app/module/nominatim.so是在nominatim图像中创建的,但也需要在postgis图像中。解决方案是创建一个允许共享文件的卷。
在docker-compose.yaml中,将以下行添加到nominatim服务中:
volumes:
- ./volumes/module:/mnt/module
以及postgis服务中的以下几行:
volumes:
- ./volumes/module:/app/module
进一步扩展entrypoint.sh:
log_info "==> Copy nominatim.so"
cp /app/module/nominatim.so /mnt/module/nominatim.so
请注意,您必须重建名义上的Docker镜像。