【问题标题】:error for area search in own overpass api server在自己的立交桥api服务器中搜索区域错误
【发布时间】:2017-05-24 16:05:41
【问题描述】:

当我通过区域参数时如何解决错误。 在服务器中安装了 osm-3s_v0.7.53 并能够发出请求。 但是,如果我尝试使用 area 提出请求,那么我会收到以下错误

错误:运行时错误:open64:111 Connection denied /home/osm-3s_v0.7.53/bin/db//osm3s_v0.7.53_areas Unix_Socket::7

示例查询

[timeout:25];
area[name="france"];
( node[name="starbucks"];
  way[name="starbucks"];
  rel[name="starbucks"]; 
  );
out center;

但如果我尝试

[timeout:25];
( node[name="starbucks"];
  way[name="starbucks"];
  rel[name="starbucks"]; 
  );
out center;

它为默认区域获取一个有效的 xml

请帮忙..

【问题讨论】:

标签: openstreetmap overpass-api


【解决方案1】:

您对区域语法的使用不太正确,以及 France 和 Starbucks 的拼写与 OpenStreetMap 中的数据不匹配。查询应如下所示:

[timeout:600];
area[name="France"]["ISO3166-1"="FR"]->.france;
( node(area.france)[name~"Starbucks"];
  way(area.france)[name~"Starbucks"];
  rel(area.france)[name~"Starbucks"]; 
);
out center;

此外,您必须在自己的服务器上为 areas 启动另一个 dispatcher 进程,并触发创建区域的专用进程。请在 Overpass API 安装文档中阅读此内容,它描述了您需要遵循的每个步骤。

我的建议是先熟悉其中一个公共实例的语法,然后才开始在您自己的实例上寻找问题。

【讨论】:

  • 非常感谢您的回复,我已经按照文档中的说明尝试了区域创建步骤 (wiki.openstreetmap.org/wiki/Overpass_API/…)。唯一的情况是我无法执行 cp -pR "../rules" $DB_DIR 因为我没有规则文件夹。所以我创建了一个规则文件夹。如果我错了,请纠正我。我还为 **area nohup osm-3s_v0.7.53/bin/dispatcher --areas --db-dir=osm-3s_v0.7.53/bin/db/ & 运行了以下调度程序,但似乎没有工作。我知道这很奇怪,因为我尝试用谷歌搜索这个错误但没有成功获得结果。
  • 请在 Overpass API 开发者邮件列表中跟进此问题,因为它更适合此类讨论。
【解决方案2】:

解决了这个问题。为了使查询能够正常工作

dispatcher --areas

即使在运行命令启动此调度程序后也没有启动和运行。那是由于套接字错误。我通过点击此链接Overpass API dispatcher fails with Address already in use 98

解决了该错误

注意:在执行上述步骤之前运行

osm-3s_v0.7.53/bin/dispatcher --terminate

请记住,如果您使用 nohup 运行调度程序,请尝试添加

& tail -f nohup.out

以便帮助查看是否有错误。 主要是 2 调度程序 --osm-base 和 --area 应该始终运行,以便从安装在您自己的服务器中的 overpass API 进行有效响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2021-05-16
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多