SlideShare a Scribd company logo
1 of 95
Download to read offline
How to build your own
ridesharing app
droidcon NYC, August 27 & 28
Where am I?
Which drivers are nearby?
Where am I going?
How do I get there?
How long does it take?
What‘s around me?
How do they do that?
Richard Süselbeck
Principal Developer Evangelist
HERE Technologies
@sueselbeck
https://developer.here.com
Where to?
Pickup: 72 Noble St, Brooklyn
Confirm ride
"Where am I?"
"Where am I?"
Positioning API
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
"Where am I?"
40.728215,-73.958251
We are currently at 40.728215, -73.958251. What does that mean?
Latitude & Longitude
Latitude Longitude
Equator
Prime Meridian
+60
-30
-90 (South)
+90 (North) 180
-120 (West)
+30 (East)
Where does the lat/long come from?
Where does the lat/long come from?
GPS
GNSS
Where does the lat/long come from?
GPS, GLONASS, GALILEO, BeiDou, NAVIC, QZSS
Where does the lat/long come from?
GNSS
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
Where does the lat/long come from?
Radio signals, e.g. cell towers, wi-fi, bluetooth
"Where am I?"
40.728215, -73.958251
"Where am I?"
40.728215, -73.958251
Maps API
"Where am I?"
Making maps is hard
Making maps is hard
m_map.setCenter(new GeoCoordinate(40.75051,-73.99335),
Map.Animation.NONE);
m_map.setMapScheme(Map.Scheme.HYBRID_NIGHT_TRANSIT);
m_map.setLandmarksVisible(true);
m_map.setZoomLevel(17);
m_map.setTilt(45);
"Where am I?"
"Where am I?"
Pickup: 72 Noble St, Brooklyn
Geocoder API
"Where am I?"
Pickup: 72 Noble St, Brooklyn
Geocoder API
Invalidenstraße 116
10245 Berlin52.530861, 13.38474
72 Noble St, Brooklyn,
NY 11222, USA
40.728215, -73.958251
GeoCoordinate pickup = new GeoCoordinate(40.728215,-73.958251);
ReverseGeocodeRequest2 revGecodeRequest = new
ReverseGeocodeRequest2(pickup);
revGecodeRequest.execute(new ResultListener<Location>() {
@Override
public void onCompleted(Location location, ErrorCode errorCode) {
updateTextView(location.getAddress().toString());
}
});
GeoCoordinate pickup = new GeoCoordinate(40.728215,-73.958251);
ReverseGeocodeRequest2 revGecodeRequest = new
ReverseGeocodeRequest2(pickup);
revGecodeRequest.execute(new ResultListener<Location>() {
@Override
public void onCompleted(Location location, ErrorCode errorCode) {
updateTextView(location.getAddress().toString());
}
});
GeoCoordinate pickup = new GeoCoordinate(40.728215,-73.958251);
ReverseGeocodeRequest2 revGecodeRequest = new
ReverseGeocodeRequest2(pickup);
revGecodeRequest.execute(new ResultListener<Location>() {
@Override
public void onCompleted(Location location, ErrorCode errorCode) {
updateTextView(location.getAddress().toString());
}
});
"Where are the drivers?"
Pickup: 72 Noble St, Brooklyn
"Where are the drivers?"
Pickup: 72 Noble St, Brooklyn
"Where are the drivers?"
Pickup: 72 Noble St, Brooklyn
Positioning API
"Where am I going?"200 Central Park W
Pickup: 72 Noble St, Brooklyn
"Where am I going?"200 Central Park W
Pickup: 72 Noble St, Brooklyn
200 Central Park W, New York
200 Central Park S, New York
200 Central Park N, New York
200 Central Ave, Brooklyn
Geocoder
Autocomplete API
200 Central Park W
Pickup: 72 Noble St, Brooklyn
200 Central Park W, New York
200 Central Park S, New York
200 Central Park N, New York
200 Central Ave, Brooklyn
"Where am I going?"
http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id=MY_APP_ID
&app_code=MY_APP_CODE
&query=200+central+park
&prox=40.76863,-73.97626,3000
{
"suggestions": [
{
"label": "United States, NY, New York, 200 Central Park W",
"language": "en",
"countryCode": "USA",
"locationId": "NT_srx4m-dHrwiUBDnXi3NAwD_yADM",
"address": {
"country": "United States",
"state": "NY",
"county": "New York",
"city": "New York",
"district": "Upper West Side",
"street": "Central Park W",
"houseNumber": "200",
"postalCode": "10024"
},
"matchLevel": "houseNumber"
},
{
"label": "United States, NY, New York, 200 Central Park S",
...
},
...
]
}
"Where am I going?"american museum of
Pickup: 72 Noble St, Brooklyn
American Museum of Natural History
American Museum of the Moving Image
Museum of the American Gangster
Museum of Chinese in the Americas
Places API
american museum of
Pickup: 72 Noble St, Brooklyn
American Museum of Natural History
American Museum of the Moving Image
Museum of the American Gangster
Museum of Chinese in the Americas
"Where am I going?"
DiscoveryRequest request = new SearchRequest("american museum of");
GeoCoordinate manhattan = new GeoCoordinate(40.71451, -74.00602);
request.setSearchCenter(manhattan);
request.setCollectionSize(5);
request.execute(new SearchRequestListener());
class SearchRequestListener implements ResultListener<DiscoveryResultPage> {
@Override
public void onCompleted(DiscoveryResultPage data, ErrorCode error) {
List<DiscoveryResult> items = data.getItems();
for (DiscoveryResult item : items) {
PlaceLink placeLink = (PlaceLink) item;
// display information
}
}
}
DiscoveryRequest request = new SearchRequest("american museum of");
GeoCoordinate manhattan = new GeoCoordinate(40.71451, -74.00602);
request.setSearchCenter(manhattan);
request.setCollectionSize(5);
request.execute(new SearchRequestListener());
class SearchRequestListener implements ResultListener<DiscoveryResultPage> {
@Override
public void onCompleted(DiscoveryResultPage data, ErrorCode error) {
List<DiscoveryResult> items = data.getItems();
for (DiscoveryResult item : items) {
PlaceLink placeLink = (PlaceLink) item;
// display information
}
}
}
DiscoveryRequest request = new SearchRequest("american museum of");
GeoCoordinate manhattan = new GeoCoordinate(40.71451, -74.00602);
request.setSearchCenter(manhattan);
request.setCollectionSize(5);
request.execute(new SearchRequestListener());
class SearchRequestListener implements ResultListener<DiscoveryResultPage> {
@Override
public void onCompleted(DiscoveryResultPage data, ErrorCode error) {
List<DiscoveryResult> items = data.getItems();
for (DiscoveryResult item : items) {
PlaceLink placeLink = (PlaceLink) item;
// display information
}
}
}
"How long does it take?"
"How much does it cost?"
american museum of
Pickup: 72 Noble St, Brooklyn
American Museum of Natural History
American Museum of the Moving Image
Museum of the American Gangster
Museum of Chinese in the Americas
"How long does it take?"
"How much does it cost?"
Confirm ride
28 min - $24 - $29
Routing API
"How long does it take?"
"How much does it cost?"
Confirm ride
28 min - $24 - $29
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1966286, -123.0053635)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1966286, -123.0053635)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1966286, -123.0053635)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1966286, -123.0053635)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1966286, -123.0053635)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
private class RouteListener implements CoreRouter.Listener {
public void onProgress(int percentage) {
// Display a message indicating calculation progress
}
public void onCalculateRouteFinished(List<RouteResult> routeResult,
RoutingError error) {
mapRoute = new MapRoute(routeResult.get(0).getRoute());
map.addMapObject(mapRoute);
updateTextView(routeResult.get(0).getRoute().getLength());
}
}
private class RouteListener implements CoreRouter.Listener {
public void onProgress(int percentage) {
// Display a message indicating calculation progress
}
public void onCalculateRouteFinished(List<RouteResult> routeResult,
RoutingError error) {
mapRoute = new MapRoute(routeResult.get(0).getRoute());
map.addMapObject(mapRoute);
updateTextView(routeResult.get(0).getRoute().getLength());
}
}
private class RouteListener implements CoreRouter.Listener {
public void onProgress(int percentage) {
// Display a message indicating calculation progress
}
public void onCalculateRouteFinished(List<RouteResult> routeResult,
RoutingError error) {
mapRoute = new MapRoute(routeResult.get(0).getRoute());
map.addMapObject(mapRoute);
updateTextView(routeResult.get(0).getRoute().getLength());
}
}
...
"length": 9919,
"travelTime": 1664,
"maneuver": [
{
"position": {
"latitude": 40.728361,
“longitude": -73.9582743
},
"instruction": "Head toward West St on Noble St. Go for 79 m.",
"travelTime": 15,
"length": 79,
"id": "M1",
"_type": "PrivateTransportManeuverType"
},
{
"position": {
"latitude": 40.7282925,
"longitude": -73.9590061
},
"instruction": "Turn right onto West St. Go for 239 m.",
...
"Which drivers are nearby?"
Finding nearby drivers…
Isoline Routing API
"Which drivers are nearby?"
Finding nearby drivers…
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&mode=fastest;car;traffic:enabled
&destination=40.728215,-73.958251
&range=6000
&rangetype=time
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&mode=fastest;car;traffic:enabled
&destination=40.728215,-73.958251
&range=6000
&rangetype=time
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&mode=fastest;car;traffic:enabled
&destination=40.728215,-73.958251
&range=6000
&rangetype=time
Routing API
Positioning API
"Where is my driver?"
"When does she arrive?"
Where to?
Your driver will arrive in 4 mins
Confirm ride
Your driver will arrive in 3 minutes!
Your driver will arrive in 8 minutes!
Your driver will arrive in 2 minutes!
$28.27
Thanks for riding with HERE, Richard!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac mi a
sem viverra lobortis. Donec at massa vel nibh lobortis laoreet. Orci varius
natoque penatibus et magnis dis parturient montes, nascetur ridiculus
mus. Praesent finibus facilisis nisi, id consectetur eros scelerisque non.
Suspendisse ut ligula interdum, dictum velit vel, interdum erat. Sed
vulputate laoreet tempus. Sed varius felis sed lorem semper commodo.
https://image.maps.api.here.com/mia/1.6/route
?app_id={{app_id}}
&app_code={{app_code}}
&h=200
&w=500
&r0=52.5338,13.2966,52.5383,13.3253
&lc0=00ff00
&lw0=6
https://image.maps.api.here.com/mia/1.6/route
?app_id={{app_id}}
&app_code={{app_code}}
&h=200
&w=500
&r0=52.5338,13.2966,52.5383,13.3253
&lc0=00ff00
&lw0=6
https://image.maps.api.here.com/mia/1.6/route
?app_id={{app_id}}
&app_code={{app_code}}
&h=200
&w=500
&r0=52.5338,13.2966,52.5383,13.3253
&lc0=00ff00
&lw0=6
https://image.maps.api.here.com/mia/1.6/route
?app_id={{app_id}}
&app_code={{app_code}}
&h=200
&w=500
&r0=52.5338,13.2966,52.5383,13.3253
&lc0=00ff00
&lw0=6
Thank you for riding with Richard!
Give a compliment?
@sueselbeck
https://developer.here.com/

More Related Content

Similar to Build your own ridesharing app

Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.Astrails
 
Creating an Uber Clone - Part XVII.pdf
Creating an Uber Clone - Part XVII.pdfCreating an Uber Clone - Part XVII.pdf
Creating an Uber Clone - Part XVII.pdfShaiAlmog1
 
Mashup caravan android-talks
Mashup caravan android-talksMashup caravan android-talks
Mashup caravan android-talkshonjo2
 
GeoTechTalk InkSatogaeri Project
GeoTechTalk InkSatogaeri ProjectGeoTechTalk InkSatogaeri Project
GeoTechTalk InkSatogaeri ProjectKentaro Ishimaru
 
How to use geolocation in react native apps
How to use geolocation in react native appsHow to use geolocation in react native apps
How to use geolocation in react native appsInnovationM
 
Barcamp GoogleMaps - praktické ukázky kódu
Barcamp GoogleMaps - praktické ukázky kóduBarcamp GoogleMaps - praktické ukázky kódu
Barcamp GoogleMaps - praktické ukázky kóduMilos Lenoch
 
Creating an Uber Clone - Part XVIII - Transcript.pdf
Creating an Uber Clone - Part XVIII - Transcript.pdfCreating an Uber Clone - Part XVIII - Transcript.pdf
Creating an Uber Clone - Part XVIII - Transcript.pdfShaiAlmog1
 
10. Kapusta, Stofanak - eGlu
10. Kapusta, Stofanak - eGlu10. Kapusta, Stofanak - eGlu
10. Kapusta, Stofanak - eGluMobCon
 
097 smart devices-con_las_aplicaciones_de_gestión
097 smart devices-con_las_aplicaciones_de_gestión097 smart devices-con_las_aplicaciones_de_gestión
097 smart devices-con_las_aplicaciones_de_gestiónGeneXus
 
Legacy codesmalltalk
Legacy codesmalltalkLegacy codesmalltalk
Legacy codesmalltalkEric Smith
 
Average- An android project
Average- An android projectAverage- An android project
Average- An android projectIpsit Dash
 
Making the Most of Maps in Your Connect IQ Apps - Garmin Connect IQ Developer...
Making the Most of Maps in Your Connect IQ Apps - Garmin Connect IQ Developer...Making the Most of Maps in Your Connect IQ Apps - Garmin Connect IQ Developer...
Making the Most of Maps in Your Connect IQ Apps - Garmin Connect IQ Developer...Richard Süselbeck
 
Android Location-based應用開發分享
Android Location-based應用開發分享Android Location-based應用開發分享
Android Location-based應用開發分享koji lin
 
You will learn RxJS in 2017
You will learn RxJS in 2017You will learn RxJS in 2017
You will learn RxJS in 2017名辰 洪
 
google play service 7.8 & new tech in M
google play service 7.8 & new tech in M google play service 7.8 & new tech in M
google play service 7.8 & new tech in M Ted Liang
 
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo Ali Parmaksiz
 
Code level change propagation in virtual platform
Code level change propagation in virtual platformCode level change propagation in virtual platform
Code level change propagation in virtual platformHaiderAli650468
 

Similar to Build your own ridesharing app (20)

Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.
 
Creating an Uber Clone - Part XVII.pdf
Creating an Uber Clone - Part XVII.pdfCreating an Uber Clone - Part XVII.pdf
Creating an Uber Clone - Part XVII.pdf
 
Mashup caravan android-talks
Mashup caravan android-talksMashup caravan android-talks
Mashup caravan android-talks
 
GeoTechTalk InkSatogaeri Project
GeoTechTalk InkSatogaeri ProjectGeoTechTalk InkSatogaeri Project
GeoTechTalk InkSatogaeri Project
 
How to use geolocation in react native apps
How to use geolocation in react native appsHow to use geolocation in react native apps
How to use geolocation in react native apps
 
Barcamp GoogleMaps - praktické ukázky kódu
Barcamp GoogleMaps - praktické ukázky kóduBarcamp GoogleMaps - praktické ukázky kódu
Barcamp GoogleMaps - praktické ukázky kódu
 
Creating an Uber Clone - Part XVIII - Transcript.pdf
Creating an Uber Clone - Part XVIII - Transcript.pdfCreating an Uber Clone - Part XVIII - Transcript.pdf
Creating an Uber Clone - Part XVIII - Transcript.pdf
 
Fact, Fiction, and FP
Fact, Fiction, and FPFact, Fiction, and FP
Fact, Fiction, and FP
 
10. Kapusta, Stofanak - eGlu
10. Kapusta, Stofanak - eGlu10. Kapusta, Stofanak - eGlu
10. Kapusta, Stofanak - eGlu
 
097 smart devices-con_las_aplicaciones_de_gestión
097 smart devices-con_las_aplicaciones_de_gestión097 smart devices-con_las_aplicaciones_de_gestión
097 smart devices-con_las_aplicaciones_de_gestión
 
Legacy codesmalltalk
Legacy codesmalltalkLegacy codesmalltalk
Legacy codesmalltalk
 
Average- An android project
Average- An android projectAverage- An android project
Average- An android project
 
Making the Most of Maps in Your Connect IQ Apps - Garmin Connect IQ Developer...
Making the Most of Maps in Your Connect IQ Apps - Garmin Connect IQ Developer...Making the Most of Maps in Your Connect IQ Apps - Garmin Connect IQ Developer...
Making the Most of Maps in Your Connect IQ Apps - Garmin Connect IQ Developer...
 
Android Location-based應用開發分享
Android Location-based應用開發分享Android Location-based應用開發分享
Android Location-based應用開發分享
 
DIY Uber
DIY UberDIY Uber
DIY Uber
 
You will learn RxJS in 2017
You will learn RxJS in 2017You will learn RxJS in 2017
You will learn RxJS in 2017
 
YQL Tutorial
YQL TutorialYQL Tutorial
YQL Tutorial
 
google play service 7.8 & new tech in M
google play service 7.8 & new tech in M google play service 7.8 & new tech in M
google play service 7.8 & new tech in M
 
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo A GWT Application with MVP Pattern Deploying to CloudFoundry using  Spring Roo
A GWT Application with MVP Pattern Deploying to CloudFoundry using Spring Roo
 
Code level change propagation in virtual platform
Code level change propagation in virtual platformCode level change propagation in virtual platform
Code level change propagation in virtual platform
 

More from Richard Süselbeck

Smart Mobility Hackathon Mumbai
Smart Mobility Hackathon MumbaiSmart Mobility Hackathon Mumbai
Smart Mobility Hackathon MumbaiRichard Süselbeck
 
Where the Heck Am I? Understanding Location in Your Application (Droidcon 2019)
Where the Heck Am I? Understanding Location in Your Application (Droidcon 2019)Where the Heck Am I? Understanding Location in Your Application (Droidcon 2019)
Where the Heck Am I? Understanding Location in Your Application (Droidcon 2019)Richard Süselbeck
 
Maps for Autonomous Driving - it-symposium.ruhr 2019 Bochum
Maps for Autonomous Driving - it-symposium.ruhr 2019 BochumMaps for Autonomous Driving - it-symposium.ruhr 2019 Bochum
Maps for Autonomous Driving - it-symposium.ruhr 2019 BochumRichard Süselbeck
 
Droidcon Hackathon - Turin 2019
Droidcon Hackathon - Turin 2019Droidcon Hackathon - Turin 2019
Droidcon Hackathon - Turin 2019Richard Süselbeck
 
Neue Wege für die Mobilität Hackathon - Augsburg 2018
Neue Wege für die Mobilität Hackathon - Augsburg 2018Neue Wege für die Mobilität Hackathon - Augsburg 2018
Neue Wege für die Mobilität Hackathon - Augsburg 2018Richard Süselbeck
 
TechCrunch Disrupt San Francisco 2018 - Workshop Intro
TechCrunch Disrupt San Francisco 2018 - Workshop IntroTechCrunch Disrupt San Francisco 2018 - Workshop Intro
TechCrunch Disrupt San Francisco 2018 - Workshop IntroRichard Süselbeck
 
Smart Mobility Hackathon Prague 2018
Smart Mobility Hackathon Prague 2018Smart Mobility Hackathon Prague 2018
Smart Mobility Hackathon Prague 2018Richard Süselbeck
 
Garmin Developer Summit 2018 - Talk
Garmin Developer Summit 2018 - TalkGarmin Developer Summit 2018 - Talk
Garmin Developer Summit 2018 - TalkRichard Süselbeck
 
Garmin Developer Summit 2018 - Lightning Talk
Garmin Developer Summit 2018 - Lightning TalkGarmin Developer Summit 2018 - Lightning Talk
Garmin Developer Summit 2018 - Lightning TalkRichard Süselbeck
 
HERE Intermodal Routing API (GeoMonday Berlin 2018)
HERE Intermodal Routing API (GeoMonday Berlin 2018)HERE Intermodal Routing API (GeoMonday Berlin 2018)
HERE Intermodal Routing API (GeoMonday Berlin 2018)Richard Süselbeck
 
Data for Happiness Hackathon 2018 Dubai
Data for Happiness Hackathon 2018 DubaiData for Happiness Hackathon 2018 Dubai
Data for Happiness Hackathon 2018 DubaiRichard Süselbeck
 
HERE at Bosch Connected Experience Hackathon
HERE at Bosch Connected Experience HackathonHERE at Bosch Connected Experience Hackathon
HERE at Bosch Connected Experience HackathonRichard Süselbeck
 
Critical Apps Challenge 2018 Webinar
Critical Apps Challenge 2018 WebinarCritical Apps Challenge 2018 Webinar
Critical Apps Challenge 2018 WebinarRichard Süselbeck
 
Location 2.0 (Wherecamp Berlin November 2017)
Location 2.0 (Wherecamp Berlin November 2017)Location 2.0 (Wherecamp Berlin November 2017)
Location 2.0 (Wherecamp Berlin November 2017)Richard Süselbeck
 
SpaceTech Hackathon 2017 Webinar
SpaceTech Hackathon 2017 WebinarSpaceTech Hackathon 2017 Webinar
SpaceTech Hackathon 2017 WebinarRichard Süselbeck
 
Introduction to Map and Location APIs (Silicon Valley Code Camp 2017)
Introduction to Map and Location APIs (Silicon Valley Code Camp 2017)Introduction to Map and Location APIs (Silicon Valley Code Camp 2017)
Introduction to Map and Location APIs (Silicon Valley Code Camp 2017)Richard Süselbeck
 
The Future of Location Technology for Developers (GeoIT Navigation Talks Berl...
The Future of Location Technology for Developers (GeoIT Navigation Talks Berl...The Future of Location Technology for Developers (GeoIT Navigation Talks Berl...
The Future of Location Technology for Developers (GeoIT Navigation Talks Berl...Richard Süselbeck
 
Introduction to the HERE APIs (#AH10 Seattle July 2017)
Introduction to the HERE APIs (#AH10 Seattle July 2017)Introduction to the HERE APIs (#AH10 Seattle July 2017)
Introduction to the HERE APIs (#AH10 Seattle July 2017)Richard Süselbeck
 

More from Richard Süselbeck (18)

Smart Mobility Hackathon Mumbai
Smart Mobility Hackathon MumbaiSmart Mobility Hackathon Mumbai
Smart Mobility Hackathon Mumbai
 
Where the Heck Am I? Understanding Location in Your Application (Droidcon 2019)
Where the Heck Am I? Understanding Location in Your Application (Droidcon 2019)Where the Heck Am I? Understanding Location in Your Application (Droidcon 2019)
Where the Heck Am I? Understanding Location in Your Application (Droidcon 2019)
 
Maps for Autonomous Driving - it-symposium.ruhr 2019 Bochum
Maps for Autonomous Driving - it-symposium.ruhr 2019 BochumMaps for Autonomous Driving - it-symposium.ruhr 2019 Bochum
Maps for Autonomous Driving - it-symposium.ruhr 2019 Bochum
 
Droidcon Hackathon - Turin 2019
Droidcon Hackathon - Turin 2019Droidcon Hackathon - Turin 2019
Droidcon Hackathon - Turin 2019
 
Neue Wege für die Mobilität Hackathon - Augsburg 2018
Neue Wege für die Mobilität Hackathon - Augsburg 2018Neue Wege für die Mobilität Hackathon - Augsburg 2018
Neue Wege für die Mobilität Hackathon - Augsburg 2018
 
TechCrunch Disrupt San Francisco 2018 - Workshop Intro
TechCrunch Disrupt San Francisco 2018 - Workshop IntroTechCrunch Disrupt San Francisco 2018 - Workshop Intro
TechCrunch Disrupt San Francisco 2018 - Workshop Intro
 
Smart Mobility Hackathon Prague 2018
Smart Mobility Hackathon Prague 2018Smart Mobility Hackathon Prague 2018
Smart Mobility Hackathon Prague 2018
 
Garmin Developer Summit 2018 - Talk
Garmin Developer Summit 2018 - TalkGarmin Developer Summit 2018 - Talk
Garmin Developer Summit 2018 - Talk
 
Garmin Developer Summit 2018 - Lightning Talk
Garmin Developer Summit 2018 - Lightning TalkGarmin Developer Summit 2018 - Lightning Talk
Garmin Developer Summit 2018 - Lightning Talk
 
HERE Intermodal Routing API (GeoMonday Berlin 2018)
HERE Intermodal Routing API (GeoMonday Berlin 2018)HERE Intermodal Routing API (GeoMonday Berlin 2018)
HERE Intermodal Routing API (GeoMonday Berlin 2018)
 
Data for Happiness Hackathon 2018 Dubai
Data for Happiness Hackathon 2018 DubaiData for Happiness Hackathon 2018 Dubai
Data for Happiness Hackathon 2018 Dubai
 
HERE at Bosch Connected Experience Hackathon
HERE at Bosch Connected Experience HackathonHERE at Bosch Connected Experience Hackathon
HERE at Bosch Connected Experience Hackathon
 
Critical Apps Challenge 2018 Webinar
Critical Apps Challenge 2018 WebinarCritical Apps Challenge 2018 Webinar
Critical Apps Challenge 2018 Webinar
 
Location 2.0 (Wherecamp Berlin November 2017)
Location 2.0 (Wherecamp Berlin November 2017)Location 2.0 (Wherecamp Berlin November 2017)
Location 2.0 (Wherecamp Berlin November 2017)
 
SpaceTech Hackathon 2017 Webinar
SpaceTech Hackathon 2017 WebinarSpaceTech Hackathon 2017 Webinar
SpaceTech Hackathon 2017 Webinar
 
Introduction to Map and Location APIs (Silicon Valley Code Camp 2017)
Introduction to Map and Location APIs (Silicon Valley Code Camp 2017)Introduction to Map and Location APIs (Silicon Valley Code Camp 2017)
Introduction to Map and Location APIs (Silicon Valley Code Camp 2017)
 
The Future of Location Technology for Developers (GeoIT Navigation Talks Berl...
The Future of Location Technology for Developers (GeoIT Navigation Talks Berl...The Future of Location Technology for Developers (GeoIT Navigation Talks Berl...
The Future of Location Technology for Developers (GeoIT Navigation Talks Berl...
 
Introduction to the HERE APIs (#AH10 Seattle July 2017)
Introduction to the HERE APIs (#AH10 Seattle July 2017)Introduction to the HERE APIs (#AH10 Seattle July 2017)
Introduction to the HERE APIs (#AH10 Seattle July 2017)
 

Recently uploaded

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Recently uploaded (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Build your own ridesharing app