rinigus / pure-maps

Maps and navigation
https://rinigus.github.io/pure-maps/
GNU General Public License v3.0
252 stars 43 forks source link

costing option parameters without function (motor_scooter and motorbike) #539

Open huggymann opened 3 years ago

huggymann commented 3 years ago

Hello Rinigus, I contacted you already regarding the costing options in motor_scooter. I created an issue also in valhalla (https://github.com/valhalla/valhalla/issues/3119) without any success. I tested a lot with motor_scoter primary_roads and motorbike use_tracks but both options do not seem to change the route. I am not very familiar with the valhalla API and do not know the connection between Puremaps and OSM Scout either. in the API doc i see that the motor_scooter profile is also based on the speed limit which cannot be set on pure maps. also i see something about country overrides which i could not find any description on. Do you know what that means? I am really desperate at this point because i spend maaany hours with different settings and still no result in changing the route. At this point i have an android device just for navigation but as valhalla should be able to make it I would love to see it working on my sailfish or ubtouch device as well (which i usually use).

huggymann commented 3 years ago

hello @rinigus ,

i talked with the valhalla guys and did some testing with valhalla build on my pc. It really seems that the option "use_primary" and other options become useless due to prioritization in the costing calculations. here is the link of the issue. https://github.com/valhalla/valhalla/issues/3119

do you know, is there any way i can use pure maps /osmscout server with a local build valhalla version for testing?

rinigus commented 3 years ago

Sure. OSM Scout Server would be more difficult to compile, but it is possible. Alternative is to use local Valhalla build and adjust URL in either https://github.com/rinigus/pure-maps/blob/master/routers/gpx_osmscout.py or https://github.com/rinigus/pure-maps/blob/master/routers/stadiamaps.py

jonnius commented 3 years ago

If I remember correctly, you are using Ubuntu Touch. Check build instructions and the respective Clickable config. You can either adjust Valhalla configs there before compiling or you can change the paths in line 12 and 13 to link against your separate valhalla build.

huggymann commented 3 years ago

Hello @rinigus and @jonnius,

I am experiencing with the valhalla parameters to optimize them. If seems to be on valhalla side. Still, i would really like to test it on the app level as well. Could you please answer my questions below to bring me to a point where I can achieve my testing-goal? Thank you guys very much, i really appreciate your work and enjoy testing/contributing myself.

Sure. OSM Scout Server would be more difficult to compile, but it is possible. Alternative is to use local Valhalla build and adjust URL in either https://github.com/rinigus/pure-maps/blob/master/routers/gpx_osmscout.py or https://github.com/rinigus/pure-maps/blob/master/routers/stadiamaps.py Do you mean this url? URL = "http://localhost:8553/v2/trace_route"

If I remember correctly, you are using Ubuntu Touch. Check build instructions and the respective Clickable config. You can either adjust Valhalla configs there before compiling or you can change the paths in line 12 and 13 to link against your separate valhalla build.

Yes i am using ubuntu touch. Thank you very much for the links! Is that building the osmcout server from scratch or do i need to do separate build before? If yes, can you give me a instructions for that? Could you please quickly let me know how to link the local valhalla to the build and not using the valhalla from git?

jonnius commented 3 years ago

Valhalla is shipped with OSM Scout Server. You can select the Offline profile in Pure Maps to make it use OSM Scout Server.

I assume you compiled Valhalla for amd64 (your notebook/desktop)? If you want to test Pure Maps on your device, you need to cross-compile Valhalla for armhf or arm64. Which device do you have? I would suggest to let Clickable do that for your.

How did you build Valhalla exactly? What changes did you do on building it? Did you pass CMake params? Did you change the valhalla config that is used on run time?

Here are the steps that I would go:

  1. Clone the OSM Scout Server repo: git clone https://github.com/rinigus/osmscout-server.git and cd osmscout-server
  2. Open packaging/click/clickable.json and navigate to the valhalla build_args in line 72. Here you can add CMake params for the Valhalla build configs you want to tweak.
  3. Follow the build instructions to build valhalla and OSM Scout Server. Just for explanation:
    1. clickable prepare-deps downloads the dependency sources (including Valhalla). You only need to do this once.
    2. clickable build-libs --arch arm64 cross-compiles the dependencies for arm64 devices. If you want to rebuild only Valhalla during your tests, you can run clickable build-libs valhalla --arch arm64.
    3. clickable build --arch arm64 builds OSM Scout Server and packages it as a click together with the dependencies.
    4. clickable --arch arm64 is a shortcut for clickable clean build install launch --arch arm64. You can run them separately, too (you don't need the clean command for instance). The latter two interact with your device. That requires either SSH or ADB access . See Clickable docs for details on the commands.
huggymann commented 3 years ago

Hello @jonnius

i did change the valhalla source code "motorscootercost.cc". i build valhalla using the instructions in valhalla github repo to test it locally on my laptop. now i would like to test my changes in puremaps/osmscout.

I did run through the clickable build (using build-all) and installed the click package on my mobile (Ubtouch oneplus one) with standard settings first.

My next planned step is to avoid these lines in "prepare-deps.sh" rm -rf "${LIBPOSTAL_SRC_DIR}" "${VALHALLA_SRC_DIR}" git clone --recursive -b 3.0.9 https://github.com/rinigus/pkg-valhalla-lite.git "${VALHALLA_SRC_DIR}"

from checking out for every build and then do my changes before the next build to test everything on the app level.

jonnius commented 3 years ago

You can simply omit the clickable prepare-deps step from now on. Just do your changes on the Valhalla sources (libs/valhalla/valhalla/) and continue with step 3 (ii) from my list above.

rinigus commented 3 years ago

If you work with Valhalla, I would suggest to build and test on PC.

You would need to build OSM Scout Server on PC. For that

As for Pure Maps, you could use Flatpak on PC and run it together with OSM Scout Server build.