小编Jon*_*rin的帖子

Graphhopper找不到点

我已经Graphhopper使用$ git clone命令并使用此处提供的亚洲地图在Ubuntu Server中进行了安装。

我使用以下命令启动了服务器:

$ ./graphhopper.sh web asia_india.pbf
Run Code Online (Sandbox Code Playgroud)

然后在发送以下请求时出现错误:

http://serveraddresss:8989/route?calc_points=false&point=9.983242,76.390418&point=9.990618,76.421088
Run Code Online (Sandbox Code Playgroud)

我从服务器收到的答案是:

{“ info”:{“ errors”:[{“ message”:“找不到点1:9.9906,76.421”,“详细信息”:“ java.lang.IllegalArgumentException”}]}}}

显然,在功能getPaths()核心/ src目录/主/ JAVA / COM / graphhopper / GraphHopper.java,功能locationIndex.findClosest(point.lat, point.lon, edgeFilter);没有得到任何附近的道路。

但是,如果我在Graphhopper网站上尝试相同的点,它将得到它的最近点和到它的距离。(您可以在此处看到此内容)。

我想知道为什么我的Graphhopper服务器设置会提供与graphhopper.com不同的结果。

  1. 是否需要更改任何配置才能进行实时Graphhopper设置?

  2. 还可以有人告诉我如何在启动时单独重建jar文件, $ ./graphhopper.sh web asia_india.pbf以便可以打印一些图像并尝试调试或改进系统吗?

  3. 该功能如何locationIndex.findClosest(point.lat, point.lon, edgeFilter);工作?我实际上不是来自Java背景。

routing openstreetmap graphhopper

2
推荐指数
1
解决办法
1318
查看次数

静态链接 libc

我正在尝试使用 CMake 3.15 制作静态可执行文件。我正在 Alpine Linux 上构建(因此使用 musl),目前,我的可执行文件的 ldd 输出是:

# ldd my_executable
    /lib/ld-musl-x86_64.so.1 (0x7fc6f7977000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x7fc6f65b3000)
    libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7fc6f7977000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7fc6f659f000)
Run Code Online (Sandbox Code Playgroud)

我可以设置target_link_options(my_executable PRIVATE -static-libgcc -static-libstdc++),并且它们静态链接:

# ldd my_executable
    /lib/ld-musl-x86_64.so.1 (0x7fc6f7977000)
    libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7fc6f7977000)
Run Code Online (Sandbox Code Playgroud)

但我无法让 musl 静态链接。我尝试过(使用干净的构建,以确保配置步骤从零开始):

  1. 添加-statictarget_link_options上面。
  2. set(CMAKE_EXE_LINKER_FLAGS "-static")在致电之前add_executable(my_executable ...)
  3. 添加-statictarget_link_libraries(my_executable lib1 lib2 -static)

当我在模式下运行 CMake 时VERBOSE=1,它​​总是以以下方式结束链接命令:

... -Wl,-Bdynamic -ldl -lrt -lm -lpthread
Run Code Online (Sandbox Code Playgroud)

我相信这是我的问题:我想摆脱它-Bdynamic。我缺少什么?这是-Bdynamic来自我的依赖项之一吗?我将它们全部从源代码构建为静态 ( .a …

cmake libc

2
推荐指数
1
解决办法
5494
查看次数

如何将包含符号和数字的字符串转换为浮点数或整数列表?

我有以下格式的列表:

my_list = ['2-7', '10-22', '22-50', '50-70', '2-7', '10-22', '22-50', '50-70', '2-7', '10-22', '22-50', '50-70']
Run Code Online (Sandbox Code Playgroud)

如您所见,它包含间隔的字符串.

我想将此列表转换为以下格式:

list_of_lists = [[2.0, 7.0], [10.0, 22.0], [22.0, 50.0], etc....]
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用以下结构:

list_2 = []
for item in my_list:
    list_2.append(list(item))
list_3 = [x for x in list_2 if x != "-"]
list_4 = []
for item_2 in list_3:
    var = float(item_2)
    list_4.append(var)
Run Code Online (Sandbox Code Playgroud)

此代码的问题在于它将两位数字转换为两个单独的数字.而且,总体而言,感觉这不是最佳解决方案.

请问有人给出指导或建议吗?

干杯:)提前谢谢你.

python string list python-2.7

1
推荐指数
1
解决办法
265
查看次数

想评估两个 sockaddr_in 结构之间的比较

目前,我正在构建一个对等网络架构,并处于创建接收功能的阶段,该功能将接受来自网络上多个客户端的消息。本质上,当调用 recvfrom 函数时 - 最近向主客户端发送消息的客户端的地址被加载到名为 fromAddr 的 sockaddr_in 结构中。然后,该程序被设计为循环遍历包含客户端类的多个实例的向量(每个实例都包含表示网络上客户端的必要信息和功能),并找到其 sockaddr_in 结构与刚刚接收到的客户端实例相匹配的客户端实例信息。在程序中,评估目前看起来像这样:

void UDPClass::checkID(Message* mess, sockaddr_in fraeAddress)
{
sockaddr_in anAddr;
//Iterate through the vector of clients and find the one who sent the message
for(int i = 0; i < theClients.size(); i++)
{
    anAddr = theClients[i].getAddress();
    //if the address of the recieved message matches the address of the current client
    if((anAddr.sin_addr == fraeAddress.sin_addr) && (anAddr.sin_port == fraeAddress.sin_port))
    {
        //Update local instance of the client so that its location data matches that …
Run Code Online (Sandbox Code Playgroud)

c++ p2p network-programming winsock2 sockaddr-in

0
推荐指数
1
解决办法
6434
查看次数