summaryrefslogtreecommitdiff
path: root/src/navigation/README
blob: 14daf7e70b2350b8499bc62b6270833c3e37039b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
Release date of the file: 09-03-2016 
Status: OK

Project:
Navigation software based on Navit and compliant with the Navigation APIs standardized by the GENIVI Alliance
This project is one of the navigation-service common projects that implements the GENIVI navigation APIs.

More:
The GENIVI APIs are implemented into navit plugins, running on DBus. The HMI is made in Qml
See also other navigation projects like proof of concepts implemented for poi-service, traffic-info and positioning 

What is in:
This folder contains scripts for building Navit and the GENIVI plugins. It runs only the navigation middleware (without the HMI)
FYI: the application (with the HMI) is located into git://git.projects.genivi.org/lbs/navigation-application.git
     it's possible to build and run the whole stuff directly from that repository

Author: 
Martin Schaller <martin.schaller@it-schaller.de>
Philippe Colliot philippe.colliot@mpsa.com
Marco Residori marco.residori@xse.de

License: 
See headers and LICENSE file

Test target: 
Ubuntu 14.04 LTS

===============================
Current versions of additional code 
===============================
<current version of positioning> (git): 5b6b120d836259afb57b3ad6bf2f6ba8107c4a3e
<current version of navit> (git): 162a3e43d14531a7053872903674351a3142eea2

===============================
How to get additional code 
===============================
Get positioning:
git clone http://git.projects.genivi.org/lbs/positioning.git ./positioning
cd positioning
git checkout <current version of positioning>
cd ../

Get navit:
git clone https://github.com/navit-gps/navit.git
cd navit
git checkout <current version of navit>
cd ../


Now apply a patch to navit (The r5549 removed the  get_unique features used by GetSpell):
cd navit
patch -p0 -i ../patches/search_list_get_unique.diff
cd ../

===============================
Directory Structure
===============================
map-viewer/
the plugins for the map rendering and manipulation (zoom, scroll..)
navigation-core/
the plugins for basic navigation features (location input, route calculation...)
poi-cam/
the plugins for poi content access module 
patches/
some patches to complete the navit code
map/
the map
navit/
basic code of navit
positioning/
the code of positioning

===============================
How To Build
===============================

==========================================
Known issues
==========================================
There's an issue with navit (R6135) against gtk. 
If the env variable NAVIT_GRAPHICS is not set, by default the graphics are gtk based.
- for gtk, navit checks for freetype. Because of a missing symbolic link, it's necessary to do ln -s /usr/include/freetype2/ /usr/include/freetype 
- despite navit enables gtk_drawing, there's a pb during runtime (to be fixed)
So, for the time being, export NAVIT_GRAPHICS='sdl' is set into the run script

==========================================
All-in-one script 
==========================================
./rebuild_all.sh

==========================================
How-to step by step, with explanations
==========================================

(you're supposed to have got additional code before)

Create and enter the build folder:
mkdir ./build
cd build

For the time being, navit is not being able to be built directly with the top CmakeLists.txt (to be improved), so it's needed to do it separately:
mkdir navit
cd navit
cmake -DDISABLE_QT=1 -DSAMPLE_MAP=0 -Dvehicle/null=1 -Dgraphics/qt_qpainter=0 ../../navit/
make
cd ../

Now let's build the other parts:
cmake ../
make
cd ..

===============================
How To Run
===============================
./run -r

===============================
How To Test
===============================
(launch a new term and go to the CWD of this README)
cd ../../test/navigation
./test-route-calculation.py

If everything is OK, you must see:

Test PASSED

===============================
How To for Yocto
===============================
Due to a different way to manage the build, some specific settings are required:

cmake -DYOCTO_BUILD=ON ../