幻灯片 1

Similar documents
主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

epub83-1

Microsoft Word - TC Student Handbook12-13 MK.doc

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

Android Service

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

Dynamic Layout in Android

coverage2.ppt

Microsoft Word zw

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

K7VT2_QIG_v3

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

Untitiled

1.ai

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

untitled

untitled

Microsoft Word - (web)_F.1_Notes_&_Application_Form(Chi)(non-SPCCPS)_16-17.doc

目次 

摘 要 本 校 多 媒 體 設 計 系 與 上 海 戲 劇 學 院 創 意 學 院 在 多 次 聯 繫 交 流 之 下, 已 簽 署 合 作 備 忘 錄, 積 極 尋 求 兩 校 合 作 教 學 與 共 同 創 作 之 機 會 藉 由 本 系 學 生 作 品 腦 殘 公 寓 入 圍 第 五 屆 中

RecyclerView and CardVew

Logitech Wireless Combo MK45 English

Android Android Android SDK iv

Microsoft Word doc

建立Android新專案

Microsoft PowerPoint - Aqua-Sim.pptx

状 态, 规 划 车 辆 行 驶 路 径, 可 进 入 网 站 充 电 服 务 栏 目 (2) 查 询 位 置 联 系 方 式 营 业 时 间 等 信 息, 可 进 入 网 站 服 务 指 南 栏 目 建 议 您 出 行 前 通 过 易 充 电 互 动 网 站 提 前 了 解 所 经 高 速 快 充

財金資訊-83期.indd

EJB-Programming-4-cn.doc

2 黑 色 皇 后 兵 向 前 移 動 兩 格 3 白 色 主 教 兵 4 黑 色 皇 后 對 角 移 動 到 對 吃 掉 白 色 國 王 的 位 置 在 這 個 章 節 中 你 會 學 到 1 打 開 設 定 關 鍵 (Set Key) 模 式 2 使 用 在 檢 視 軌 跡 中 的 可 設 定

Revit Revit Revit BIM BIM 7-9 3D 1 BIM BIM 6 Revit 0 4D 1 2 Revit Revit 2. 1 Revit Revit Revit Revit 2 2 Autodesk Revit Aut

簡報技巧

mvc

国 际 视 野 中 国 立 场 原 创 诉 求 专 业 精 神 读 者 寄 语 Readers of the Message

4. 每 组 学 生 将 写 有 习 语 和 含 义 的 两 组 卡 片 分 别 洗 牌, 将 顺 序 打 乱, 然 后 将 两 组 卡 片 反 面 朝 上 置 于 课 桌 上 5. 学 生 依 次 从 两 组 卡 片 中 各 抽 取 一 张, 展 示 给 小 组 成 员, 并 大 声 朗 读 卡

建模与图形思考

A dissertation for Master s degree Metro Indoor Coverage Systems Analysis And Design Author s Name: Sheng Hailiang speciality: Supervisor:Prof.Li Hui,

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

Microsoft PowerPoint ARIS_Platform_en.ppt

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

<4D F736F F D205F FB942A5CEA668B443C5E9BB73A740B5D8A4E5B8C9A552B1D0A7F75FA6BFB1A4ACFC2E646F63>

Microsoft Word - Datastream5.1_使用說明201110


, : III


<4D F736F F D20AE61AC462DBFAFADB9AD70B565BB50BB73A740B1D0AED7>

清 华 大 学

( Version 0.4 ) 1

Android + NFC

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

唐彪《讀書作文譜》述略

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

掌盟 SoEasy SDK 开发者帮助文档 1. 接入前项目检查 根据游戏接入后出现的问题, 对游戏项目做以下几点要求 : a) AndroidManifest.xml 中 android:targetsdkversion="19" b) 如果 AndroidManifest.xml 有 insta

相 關 技 術, 在 裝 置 上 創 造 出 一 個 令 人 驚 豔 虛 擬 的 幻 境 ; 除 此 之 外, 還 能 與 虛 擬 出 來 的 物 件 進 行 互 動, 已 陸 陸 續 續 被 應 用 在 教 育 研 究 娛 樂 生 活 等 各 個 方 面 認 知 風 格 (Cognitive St

Construction of Chinese pediatric standard database A Dissertation Submitted for the Master s Degree Candidate:linan Adviser:Prof. Han Xinmin Nanjing

<4D F736F F F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074>

<4D F736F F D20312D312020B9ABBFAAD7AAC8C3CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A92E646F63>

untitled

清华大学2013年毕业生就业质量报告

編 者 的 話 文 字 / KK 人 天 生 便 具 有 好 奇 心, 想 對 週 遭 事 物 更 加 瞭 解, 以 滿 足 自 己 的 求 知 渴 望 孩 子 可 以 透 過 父 母 的 敘 說 表 演, 激 發 想 像 創 造 邏 輯 推 理 判 斷 等 能 力 父 母 最 能 夠 了 解 子

高雄市左營國民小學八十九學年度第一學期一年級總體課程教學進度表

資料HDR作1-03 HDR技術動向

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至

Microsoft Word - 104決算總說明_一__彙整_02.03主秘版.doc

Some experiences in working with Madagascar: installa7on & development Tengfei Wang, Peng Zou Tongji university

096STUT DOC

(Pattern Recognition) 1 1. CCD

Microsoft Word - TIP006SCH Uni-edit Writing Tip - Presentperfecttenseandpasttenseinyourintroduction readytopublish

3.1 num = 3 ch = 'C' 2

Android Fragment

闲 旅 游 现 已 成 为 城 市 居 民 日 常 生 活 的 重 要 部 分 袁 它 的 出 现 标 志 着 现 代 社 会 文 明 的 进 步 遥 据 国 外 学 者 预 测 袁 2015 年 左 右 袁 发 达 国 家 将 陆 续 进 入 野 休 闲 时 代 冶 袁 发 展 中 国 家 也 将

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8

通 用 申 请 填 写 流 程 简 图 首 次 登 陆 已 注 册 用 户 登 录 ( 最 终 提 交 前 可 无 限 次 登 录 修 改 ) 注 册 账 户 College Search 中 添 加 New York University Common App 填 写 ( 包 含 两 篇 写 作

University of Science and Technology of China A dissertation for master s degree Research of e-learning style for public servants under the context of

概述

第 一 屆 香 港 嬰 幼 兒 產 業 及 嬰 幼 兒 教 育 及 護 理 分 享 會 目 標 : 增 加 各 專 業 及 商 家 對 嬰 幼 兒 早 教 及 護 理 的 認 識 及 交 流, 發 掘 嬰 幼 兒 早 教 產 業 機 會 增 進 嬰 幼 兒 產 業 的 發 展 簡 介 : 香 港 的

2015年4月11日雅思阅读预测机经(新东方版)

從 PISA 閱 讀 歷 程 談 比 較 閱 讀 敎 學 策 略 以 紙 船 印 象 背 影 為 例 行 兒 童 晨 間 閱 讀 運 動 世 界 已 進 入 知 識 經 濟 的 時 代, 一 切 的 競 爭 與 價 值 都 以 知 識 為 主, 而 一 切 知 識 的 基 礎 都 始 自 閱 讀 1

epub 66-4

序 言 時 值 105 年 丙 申 農 曆 猴 年, 農 曆 春 節 是 一 個 充 滿 溫 情 的 節 日, 本 局 消 防 弟 兄 犠 牲 過 年 全 家 圍 爐 團 圓 的 歡 樂 時 刻, 堅 守 崗 位 24 小 時 不 打 烊, 全 天 候 守 護 市 民 安 全, 提 供 即 時 到

PaPaGO! PaPaGO! PaPaGO! PaPaGO! PaPaGO! PaPaGO!

星河33期.FIT)

Transcription:

Delivering accurate maps to Chinese Android users 为中国安卓用户提供准确的地图服务

Work at Mapbox includes: Android apps, demos, starter kits, documentation, support, syncing Android team with other departments, etc. 工作包括 : 安卓 app 演示 初学者工具包 客户服务 等 Lived in Beijing from 2011-2015 2011 到 2015, 我住在北京!

Today s talk: 简报主题 :

Today s talk: 简报主题 : 1. Design 地图设计决策

Today s talk: 简报主题 : 1. Design 地图设计决策 1. Location data 位置数据服务

Today s talk: 简报主题 : 1. Design 地图设计决策 1. Location data 位置数据服务 1. How to create an app with Mapbox 通过 Mapbox, 怎么开发一个安卓应用?

Design decisions 地图设计决策

Does the map have too much information? Too little? Wrong type of information? 太多信息? 太少?

Correct zoom level for a hotel? 酒店的位置 : 正确的缩放级别?

Right layers and information? Correct UI/UX? 你要给用户什么选择?

App user has 13 choices including the map. Right amount of options? Right type? 应用用户有十三个选择 适量选择吗? 说不定...

App user has 16 choices including the map(!) 十六个选择 (!)

Right info displayed for a bicyclist? 骑自行车的人需要看什么信息?

What's important here? Schools? Hotel prices? Subway stations? 什么是重要的? 大学的位置? 酒店的价格? 每一个地铁站?

Don t show subway lines if in driving mode? Buildings 如果开车的话, 不用看地铁线? 不用看每一个大楼?

Marker clustering 标记群集

Static image decision (markers, camera position, etc.) 静止的地图决策 ( 标记 视角位置 等 )

What s the difference? 有什么区别?

Navigation 导航 >

Daily life 日常生活 >

Asking for permissions 位置权限

Location data + context 位置数据服务

导航

位置搜索 ( 地理编码 )

智能手表

AR( 增强现实 ) 游戏

物流

社交媒体

Location data platform for developers 开发者而建的地图平台

Location data platform for developers 开发者而建的地图平台 Maps 地图

Vector tiles + video game technology (OpenGL) 矢量瓦片 + 动画游戏技术

Location data platform for developers 开发者而建的地图平台 Maps 地图 Location search 位置搜索 ( 地理编码 )

Location data platform for developers 开发者而建的地图平台 Maps 地图 Location search 位置搜索 ( 地理编码 ) Navigation (driving, walking, biking) 导航 ( 开车 走路 骑车 )

Open-source tools (700 public Github repos) 开源的安卓产品

SDKs for Android, ios, Unity, Qt (for cars), & React Native 软件开发包 : 安卓 苹果公司 Unity Qt ( 一种汽车平台 ) & React Native.

Extrusions 三维外形

Dancing buildings 三维外形 + 麦克风

AR(Core) 增强现实

AR(Core) 增强现实

In-app nav 应用里导航

Offline 离线下载

Heatmaps 热点地图

Let s build! 咱们开始!

Set up basic project

App-level build.gradle file dependencies {... compile('com.mapbox.mapboxsdk:mapbox-android-sdk:5.2.0-beta.4@aar') { transitive = true}... }

App-level build.gradle file dependencies {... compile('com.mapbox.mapboxsdk:mapbox-android-sdk:5.2.0-beta.4@aar') { transitive = true}... }

Maps SDK size 软件开发包大小 Less than 1MB 可能小于 1MB SDKs final impact is dependent on other app decisions

strings.xml file 字符串的文件 Add your key to the strings file 加你 Mapbox 的访问令牌 <resources>... <string name="access_token">mapbox_access_token</string>... </resources> Your first 50,000 mobile users are free! 你前面五万的移动用户是免费的!

XML layout file XML 布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:mapbox="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <com.mapbox.mapboxsdk.maps.mapview android:id="@+id/mapview" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout>

More XML attributes 更多 XML 属性 github.com/mapbox/mapbox-glnative/blob/master/platform/android/mapboxglandroidsdk/src/main/res/value s/attrs.xml Additional map XML attributes 更多 XML 属性 <com.mapbox.mapboxsdk.maps.mapview android:id="@+id/mapview" android:layout_width="match_parent" android:layout_height="match_parent" mapbox:mapbox_cameratargetlat="19.948045" mapbox:mapbox_cameratargetlng="-84.654463" mapbox:mapbox_camerazoom="3.371717" mapbox:mapbox_cameratilt="50" mapbox:mapbox_styleurl="@string/mapbox_style_mapbox_streets"/>

Activity file Activity 文件 public class MainActivity extends AppCompatActivity { @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); Mapbox.getInstance(this, getstring(r.string.access_token)); } setcontentview(r.layout.activity_main);

public class MainActivity extends AppCompatActivity { private MapView mapview; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); Mapbox.getInstance(this, getstring(r.string.access_token)); setcontentview(r.layout.activity_main); mapview = (MapView) findviewbyid(r.id.runtime_mapview); mapview.oncreate(savedinstancestate); mapview.getmapasync(new OnMapReadyCallback() { @Override public void onmapready(final MapboxMap mapboxmap) { // Customize map with markers, polylines, etc. } } });

Method overrides 重写此方法 @Override public void onresume() { super.onresume(); mapview.onresume(); } @Override protected void onstart() { super.onstart(); mapview.onstart(); } @Override protected void onstop() { super.onstop(); mapview.onstop(); } @Override public void onpause() { super.onpause(); mapview.onpause(); } @Override public void onlowmemory() { super.onlowmemory(); mapview.onlowmemory(); } @Override protected void ondestroy() { super.ondestroy(); mapview.ondestroy(); } @Override protected void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outstate); mapview.onsaveinstancestate(outstate); }

The result! 结果!

Run-time styling 运行时地图模式

mapview.oncreate(savedinstancestate); mapview.getmapasync(new OnMapReadyCallback() { @Override public void onmapready(final MapboxMap mapboxmap) { final Layer waterlayer = mapboxmap.getlayer("water"); } });

mapview.oncreate(savedinstancestate); mapview.getmapasync(new OnMapReadyCallback() { @Override public void onmapready(final MapboxMap mapboxmap) { final Layer waterlayer = mapboxmap.getlayer("water"); } findviewbyid(r.id.floatingactionbutton).setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { if (waterlayer!= null) { waterlayer.setproperties(propertyfactory.fillcolor(color.parsecolor("#023689"))); } } });

mapview.oncreate(savedinstancestate); mapview.getmapasync(new OnMapReadyCallback() { @Override public void onmapready(final MapboxMap mapboxmap) { final Layer waterlayer = mapboxmap.getlayer("water"); } findviewbyid(r.id.floatingactionbutton).setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { if (waterlayer!= null) { waterlayer.setproperties(propertyfactory.fillcolor(color.parsecolor("#023689"))); } } });

findviewbyid(r.id.floatingactionbutton).setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { if (waterlayer!= null) { waterlayer.setproperties(propertyfactory.fillcolor(color.parsecolor("#023689"))); } }); for (Layer singlemaplayer : mapboxmap.getlayers()) { if (singlemaplayer.getid().contains("marine")) { singlemaplayer.setproperties( PropertyFactory.textHaloBlur(10f), PropertyFactory.textSize(25f), PropertyFactory.textColor(Color.parseColor("#00FF08")), PropertyFactory.textOpacity(1f)); } } }

findviewbyid(r.id.floatingactionbutton).setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { if (waterlayer!= null) { waterlayer.setproperties(propertyfactory.fillcolor(color.parsecolor("#023689"))); } for (Layer singlemaplayer : mapboxmap.getlayers()) { if (singlemaplayer.getid().contains("marine")) { }); singlemaplayer.setproperties( PropertyFactory.textHaloBlur(10f), PropertyFactory.textSize(25f), PropertyFactory.textColor(Color.parseColor("#00FF08")), PropertyFactory.textOpacity(1f)); } } }

Retrieving a single map style s layer names mapview.oncreate(savedinstancestate); mapview.getmapasync(new OnMapReadyCallback() { @Override public void onmapready(final MapboxMap mapboxmap) { for (Layer singlemaplayer : mapboxmap.getlayers()) { } Log.d("MainActivity", "onmapready: layer name = "+ singlemaplayer.getid()); } });

Data-driven styling

Some current customers 现有的客户

Want to learn more? 你想了解更多吗?

Android documentation 技术资料 mapbox.com/android-docs 中文资料 : mapbox.cn/help/first-steps-android-sdk/ & mapbox.cn/android-sdk

Blog 博客 blog.mapbox.com 微信公众号 :Mapbox

Location + context 最后, 位置数据服务是最重要的