36
Confidential and proprietary Develop LBS application with utilizing Maps API Geospatial Sales Engineer, Google Maps for Work Tomoyasu Maruyama

[English] Create Mobile LBS Application Using Maps API

Embed Size (px)

Citation preview

Confidential and proprietary

Develop LBS application with utilizing Maps APIGeospatial Sales Engineer, Google Maps for WorkTomoyasu Maruyama

Confidential and proprietary

Ingress

Confidential and proprietary

Ingress ??

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

1.Google Maps API (and Mobile SDK)

10th anniversary!!

Confidential and proprietary

10th anniversary!!

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

The solution image

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.Overlapping each icon...

How to resolve the situation?

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

3.Understand our ToS and license

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