[English] Create Mobile LBS Application Using Maps API
-
Upload
google-cloud-platform-japan -
Category
Technology
-
view
99 -
download
1
Transcript of [English] Create Mobile LBS Application Using Maps API
Confidential and proprietary
Develop LBS application with utilizing Maps APIGeospatial Sales Engineer, Google Maps for WorkTomoyasu Maruyama
Confidential and proprietary
Ingress
130,000,000 km 9,000,000 DL 10,000,000 portals 50,000 attendees
Confidential and proprietary
Ingress collaborate with... Lawson(Portal) AXA(shield) Yokosuka city(event)
Confidential and proprietary
agenda1. Google Maps API (and Mobile SDK)
2. Understand the LBS application in “5 minutes”
3. Understand our ToS and license
Confidential and proprietary
30%
more than 1B of Google search requests include
“Location”
41%
of internet user useGoogle maps
50% is Mobile user
Montly active user use Google maps API on
2M acitive site
1B
Location is important for mobile user
Source: Google internal, and http://www.internetworldstats.com/stats.htm
Confidential and proprietary
“Shipping container arrived on time.”
O2O
Current status of Location based service
Confidential and proprietary
2.Understand the LBS types of application in “5 minutes”
What is the oldest Japanese check-in types of application??
Confidential and proprietary
What we make today
a pilgrimage with check-in functions for 88 traditional temples in Shikoku
Oldest check-in types of application
Confidential and proprietary
How to make it ?
2.Select the Map Activity templates
3.Set the temple’s POI and utilize with the Marker Cluster
1. Activate the API key on developer console
4.Generate the Backend(Cloud Endpoint module)
Android StudioGoogle Cloud Platform
(Console/Endpoint)
5.Create API using Endpoint(Utilize the Cloud Datastore)
6.Generate backend automatically (Generate AppEngine/Datastore)
Temples POI information as CSV file type
7.Generate client module to connect server side API
Generate Backend
Setup Map
Connect
Confidential and proprietary
1.Set the API Key1. Execute Keytool on terminal (Available if Android Studio installed)
2. The result of keytool on terminalAlias name: androiddebugkeyCreation date: Jan 20, 2014Entry type: PrivateKeyEntryCertificate chain length: 1Certificate[1]:Owner: CN=Android Debug, O=Android, C=USIssuer: CN=Android Debug, O=Android, C=USSerial number: 52dc713fValid from: Mon Jan 20 09:43:43 JST 2014 until: Wed Jan 13 09:43:43 JST 2044Certificate fingerprints:
MD5: F0:22:8E:3B:81:F8:79:32:7F:5D:4F:2C:B3:BE:E5:B2 SHA1: 51:29:7B:E2:EE:A1:A5:24:69:30:D0:D6:29:8F:F3:39:77:D6:89:13
Confidential and proprietary
2. Select a Map activity template
google_maps_api.xml
2. Enter the API Key that you generate on developer console
On Android Studio1. Select the Google Maps Activity template
Android Studio
Confidential and proprietary
3.Set the Customized icons as Marker
// Icon Image
// GPS information
// Add Markers
AddressTempleName
“TempleName”
Confidential and proprietary
3.Utilize the Marker Cluster
Use “Manage marker clusters” Google Maps Android API Utility Library
Confidential and proprietary
4.Add Cloud Endpoint module into the project
Add Cloud endpoint module into the project on Android StudioThen, you can see the template code of backend
Confidential and proprietary
4.Test the backend module on localhost environment
Execute on localhost(http://localhost:8080)
Android Studio ブラウザ
Automatically generate the backend and could switch the backend from frontend(App)
Confidential and proprietary
How to make it ?
2.Select the Map Activity templates
3.Set the temple’s POI and utilize with the Marker Cluster
1.Activate the API key on developer console
4.Generate the Backend(Cloud Endpoint module)
Android StudioGoogle Cloud Platform
(Console/Endpoint)
5.Create API using Endpoint(Utilize the Cloud Datastore)
6.Generate backend automatically (Generate AppEngine/Datastore)
Temples POI information as CSV file type
7.Generate client module to connect server side API
Generate Backend
Setup Map
Connect
Confidential and proprietary
5.Create API throughout Endpoint
Create the API for check-in function ( MyEndPoint.java)
// Get the check-in time
// Call the datastore
// Create the data for save on datastore
// Save the data
// Return the check-in time
Confidential and proprietary
6.Deploy module to App Engine
Available to deploy from Android Studio Check the status on Browser (https://appengine.google.com/)
Confidential and proprietary
Generate the client library with API class name(MyEndpoint) on terminal for this time
7.Generate client library
Use the method of the API on MyApi class(client library)
Confidential and proprietary
7.Connect to the server side
Simple to write the Check in API method
Client libraryMyApi instance
Temple's ID
Confidential and proprietary
Complete the Development of Apps
Complete the development of the Application
Confidential and proprietary
Quick look back of what we made
Confidential and proprietary
Possible idea for the next steps● Additional functions for the Apps
○ Manage the portal for each user(OAuth)○ Add Google Maps API Web service(Geocoding API, Directions API)○ Add input(attribute/image) and search function
● Further relationship with the Apps○ Beacon
■ Visitor support application using GPS+beacons ○ Custom Street View service
■ Restaurant, shopping indoor mapping service○ Another Google Cloud Platform service
■ Real-time data sync using GeoFire
Next step for LBS application
Confidential and proprietary
Application Deployment model
Implementation technology for
Maps
Products/Service(Free/business) API
Web application Web
Google Maps API Google Maps API for Work
Dynamic Javascript API v3
Static Static Maps API
Dynamic Web service(Geocoding/Elevation/Places)
Native application(via online store or direct way such as apk, ipa)
Web (WebView)
Dynamic Javascript API v3
Static Static Maps API
NativeGoogle Maps Mobile SDKGoogle Maps Mobile SDK for Business
Android Google Maps Android API v2
iOS Google Maps SDK for iOS
Google Maps API suites
Confidential and proprietary
● Google Maps API for Work○ Internal Application or limited access for public○ Asset tracking application○ Huge amount of page view like 25,000PVs / day
● Mobile SDK (Android/iOS)○ Asset Tracking○ Internal Application on iOS○ Paid application without AppStore/ Play store
■ In-App purchase also available for free if you use online store
#1 : Which case should I use Google Maps for Work?
https://developers.google.com/maps/licensing
Confidential and proprietary
● Maps API for Work○ Service Level Agreement (99.9%)○ Manage Ads(available to hide Ads)○ Technical support included
● Mobile SDK(+Maps API for Work)○ Same license quota between iOS and Android○ Use static library(as SDK)○ No-need to use client library of Google Play service
What is Google Maps for work?
https://developers.google.com/maps/licensing
Confidential and proprietary
● Maps API Js (pageview)○ A single load of the Google Maps JavaScript API into a page○ A single request for a Google Street View Image API image or
Google Static Maps API image
● Mobile SDK(mapload)○ A map load is registered each time the related “onCreate()”
method is called.■ iOS : GMSMapView or GMSPanoramaView object■ Android:MapFragment, SupportMapFragment, MapView
#2 : How to count up the pageview(mapload)?
Confidential and proprietary
● Can I chach the data?
● Can we use the data coming from Maps API web service to other web map like Mapbox or Bing?
● If we purchase Mobile SDK license, can I use Google Maps API web service as well??
Others:FAQ
https://developers.google.com/maps/faq
○ 30 days caching allowed as a performance reasons for Directions API and Geocoding API (10.1.3).
○ No-caching allowed for the Js library(no offline as well)
○ Cannot use our data such as street view image, elevation, geocoding data for outside of Google Map (10.1.1.h)
○ Need Maps API for work license separately for web service
Confidential and proprietary
thankyou
The source file on Githubhttps://github.com/mobile-geo/CheckInShikoku