我已经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不同的结果。
是否需要更改任何配置才能进行实时Graphhopper设置?
还可以有人告诉我如何在启动时单独重建jar文件,
$ ./graphhopper.sh web asia_india.pbf以便可以打印一些图像并尝试调试或改进系统吗?
该功能如何locationIndex.findClosest(point.lat, point.lon, edgeFilter);工作?我实际上不是来自Java背景。
我正在尝试使用 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 静态链接。我尝试过(使用干净的构建,以确保配置步骤从零开始):
-static到target_link_options上面。set(CMAKE_EXE_LINKER_FLAGS "-static")在致电之前add_executable(my_executable ...)-static到target_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 …
我有以下格式的列表:
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)
此代码的问题在于它将两位数字转换为两个单独的数字.而且,总体而言,感觉这不是最佳解决方案.
请问有人给出指导或建议吗?
干杯:)提前谢谢你.
目前,我正在构建一个对等网络架构,并处于创建接收功能的阶段,该功能将接受来自网络上多个客户端的消息。本质上,当调用 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++ ×1
cmake ×1
graphhopper ×1
libc ×1
list ×1
p2p ×1
python ×1
python-2.7 ×1
routing ×1
sockaddr-in ×1
string ×1
winsock2 ×1