自己的立交桥api服务器中的区域搜索错误

时间:2017-04-20 09:06:28

标签: openstreetmap overpass-api

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

错误:运行时错误:open64:111连接被拒绝/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

请帮助..

2 个答案:

答案 0 :(得分:2)

您对区域语法的使用不太正确,法国和星巴克的拼写也不适合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;

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

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

答案 1 :(得分:0)

解决了这个问题。对于是查询工作正常

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 AND --area应始终运行,以便从您自己的服务器中安装的立交桥API进行有效响应。