Google Maps 開始收費了該怎麼辦?
Kewang
Google Maps 開始收費了該怎麼辦?
Kewang不是講如何辦信用卡
也不是講如何 crack
Who I am
● 王慕羣 Kewang
● Java / JavaScript / PHP
● HBase / PostgreSQL
● Git / DevOps
●
熱愛開源
GitHubGitHub kewangkewang
LinkedinLinkedin kewangtwkewangtw
SlideShareSlideShare kewangkewang
GmailGmail cpckewangcpckewang
FacebookFacebook Kewang 的資訊進化論Kewang 的資訊進化論
modernwebmodernweb '18'18
devopsday taipeidevopsday taipei '17'17
hadoopconhadoopcon '14 '15'14 '15
mopconmopcon '14'14
jcconfjcconf '16 '17 '18'16 '17 '18
Funliday
●
最棒的旅遊規劃 App
● App Store 編輯精選
● 100 萬次下載、 130 萬個行程
●
輕鬆拖拉規劃完整路徑
●
行程共同編輯
●
旅遊社群
遊記平台即將上線!
7
回到正題
8
Funliday 遇到的問題
9
Funliday 遇到的問題
10
Funliday 遇到的問題
● 2018 / 7 / 16 開始, Google Maps 變更付費模型
11
Funliday 遇到的問題
● 2018 / 7 / 16 開始, Google Maps 變更付費模型
– 每個月要繳很多很多錢給 Google
12
Funliday 遇到的問題
● 2018 / 7 / 16 開始, Google Maps 變更付費模型
– 每個月要繳很多很多錢給 Google
– 不出三個月就倒閉了
13
如何解決錢的問題?
14
如何解決錢的問題?
●
不解決
15
如何解決錢的問題?
●
不解決
●
找到錢
16
如何解決錢的問題?
●
不解決
●
找到錢
– 富爸爸
17
如何解決錢的問題?
●
不解決
●
找到錢
– 富爸爸
– 給 Google 更多錢
18
如何解決錢的問題?
●
不解決
●
找到錢
– 富爸爸
– 給 Google 更多錢
●
自建景點資料庫
19
如何解決錢的問題?
●
不解決
●
找到錢
– 富爸爸
– 給 Google 更多錢
●
自建景點資料庫
– POI Bank
20
如何解決錢的問題?
●
不解決
●
找到錢
– 富爸爸
– 給 Google 更多錢
●
自建景點資料庫
– POI Bank
– 為了脫離 Google
21
如何解決錢的問題?
●
不解決
●
找到錢
– 富爸爸
– 給 Google 更多錢
●
自建景點資料庫
– POI Bank
– 為了脫離 Google
– 解耦
22
POI Bank
23
POI Bank
24
POI Bank
● OpenStreetMap (OSM)
25
POI Bank
● OpenStreetMap (OSM)
● GeoJSON
26
POI Bank
● OpenStreetMap (OSM)
● GeoJSON
● GeoHash
27
POI Bank
● OpenStreetMap (OSM)
● GeoJSON
● GeoHash
● EPSG
28
POI Bank
● OpenStreetMap (OSM)
● GeoJSON
● GeoHash
● EPSG
● PostGIS
29
POI Bank
● OpenStreetMap (OSM)
● GeoJSON
● GeoHash
● EPSG
● PostGIS
● Pelias
30
OpenStreetMap
31
OpenStreetMap
這是個好東西!
32
OpenStreetMap
33
OpenStreetMap
● Overpass turbo
34
OpenStreetMap
● Overpass turbo
● OSRM (Open Source Routing Machine)
35
Overpass turbo - OSM 的 API
36
Overpass turbo - OSM 的 API
● https://overpass.nchc.org.tw/overpass-turbo
37
Overpass turbo - OSM 的 API
● https://overpass.nchc.org.tw/overpass-turbo
● 找 POI ,包括下列資料
38
Overpass turbo - OSM 的 API
● https://overpass.nchc.org.tw/overpass-turbo
● 找 POI ,包括下列資料
– 城市
39
Overpass turbo - OSM 的 API
● https://overpass.nchc.org.tw/overpass-turbo
● 找 POI ,包括下列資料
– 城市
– 旅遊景點
40
Overpass turbo - OSM 的 API
● https://overpass.nchc.org.tw/overpass-turbo
● 找 POI ,包括下列資料
– 城市
– 旅遊景點
很強大但很難用
41
範例
42
範例
[out:json];
node[amenity]
({{bbox}});
out;
43
範例
[out:json];
node[amenity]
({{bbox}});
out;
44
範例
[out:json];
node[amenity]
({{bbox}});
out;
45
taginfo
46
taginfo
● https://taginfo.openstreetmap.org
47
taginfo
● https://taginfo.openstreetmap.org
● 常用的 tag
48
taginfo
● https://taginfo.openstreetmap.org
● 常用的 tag
49
OSRM
50
OSRM
● https://project-osrm.org
51
OSRM
● https://project-osrm.org
●
規劃路徑
52
OSRM
53
OSRM
54
GeoJSON
55
GeoJSON
56
GeoJSON
● http://geojson.io
57
GeoJSON
● http://geojson.io
● 適用於不規則邊框 (bounding box) 為主的功能
58
GeoJSON
59
GeoJSON
60
GeoHash
61
GeoHash
62
GeoHash
● http://geohash.gofreerange.com
63
GeoHash
● http://geohash.gofreerange.com
● table index
64
GeoHash
● http://geohash.gofreerange.com
● table index
●
適用以特定範圍為主的功能
65
GeoHash
● http://geohash.gofreerange.com
● table index
●
適用以特定範圍為主的功能
● TICC : wsqqqjj
66
GeoHash
● http://geohash.gofreerange.com
● table index
●
適用以特定範圍為主的功能
● TICC : wsqqqjj
● 台北車站: wsqqmpv
67
GeoHash
● http://geohash.gofreerange.com
● table index
●
適用以特定範圍為主的功能
● TICC : wsqqqjj
● 台北車站: wsqqmpv
GeoHash 長度 精確度
1 5000 * 5000 km
2 1250 * 625 km
3 156 * 156 km
4 39.1 * 19.5 km
5 4.89 * 4.89 km
6 1.22 * 0.61 km
7 153 * 153 m
8 38.2 * 19.1 m
9 4.77 * 4.77 m
10 1.19 * 0.596 m
11 149 * 149 mm
12 37.2 * 18.6 mm
68
GeoHash
69
GeoHash
70
EPSG
71
EPSG
以下很無聊 ...
72
國際上常用的座標系統代碼
73
國際上常用的座標系統代碼
● 4326 - WGS 84
74
國際上常用的座標系統代碼
● 4326 - WGS 84
– 單位:度
75
國際上常用的座標系統代碼
● 4326 - WGS 84
– 單位:度
– 常看到的經緯度,如: 121.563635, 25.038638
76
國際上常用的座標系統代碼
● 4326 - WGS 84
– 單位:度
– 常看到的經緯度,如: 121.563635, 25.038638
● 3857 - WGS 84 / Pseudo-Mercator
77
國際上常用的座標系統代碼
● 4326 - WGS 84
– 單位:度
– 常看到的經緯度,如: 121.563635, 25.038638
● 3857 - WGS 84 / Pseudo-Mercator
– 單位:公尺
78
國際上常用的座標系統代碼
● 4326 - WGS 84
– 單位:度
– 常看到的經緯度,如: 121.563635, 25.038638
● 3857 - WGS 84 / Pseudo-Mercator
– 單位:公尺
– 投影座標系
79
國際上常用的座標系統代碼
● 4326 - WGS 84
– 單位:度
– 常看到的經緯度,如: 121.563635, 25.038638
● 3857 - WGS 84 / Pseudo-Mercator
– 單位:公尺
– 投影座標系
– Google Maps 內部在用
80
國際上常用的座標系統代碼
● 4326 - WGS 84
– 單位:度
– 常看到的經緯度,如: 121.563635, 25.038638
● 3857 - WGS 84 / Pseudo-Mercator
– 單位:公尺
– 投影座標系
– Google Maps 內部在用
– 不常看到的數字,如: 13532401.95, 2880491.19
81
國際上常用的座標系統代碼
● 4326 - WGS 84
– 單位:度
– 常看到的經緯度,如: 121.563635, 25.038638
● 3857 - WGS 84 / Pseudo-Mercator
– 單位:公尺
– 投影座標系
– Google Maps 內部在用
– 不常看到的數字,如: 13532401.95, 2880491.19
不要懂,頭很痛
82
台灣常用的座標系統代碼
83
台灣常用的座標系統代碼
● 3826 - TWD97 / TM2 zone 121
84
台灣常用的座標系統代碼
● 3826 - TWD97 / TM2 zone 121
– 台灣本島專用
85
台灣常用的座標系統代碼
● 3826 - TWD97 / TM2 zone 121
– 台灣本島專用
● 3825 - TWD97 / TM2 zone 119
86
台灣常用的座標系統代碼
● 3826 - TWD97 / TM2 zone 121
– 台灣本島專用
● 3825 - TWD97 / TM2 zone 119
– 澎湖地區專用
87
台灣常用的座標系統代碼
● 3826 - TWD97 / TM2 zone 121
– 台灣本島專用
● 3825 - TWD97 / TM2 zone 119
– 澎湖地區專用
TL;DR
因為精確度不夠
所以制定新標準
88
89
TWD97 與 WGS84 轉換
90
TWD97 與 WGS84 轉換
●
差異不大,約為幾公分至數十公分
91
TWD97 與 WGS84 轉換
●
差異不大,約為幾公分至數十公分
●
可視為一致
92
PostGIS
93
PostGIS
很重要!
94
PostGIS
95
PostGIS
● 可以在 PostgreSQL 上面操作地理資料
96
PostGIS
● 可以在 PostgreSQL 上面操作地理資料
●
包含下列資料
97
PostGIS
● 可以在 PostgreSQL 上面操作地理資料
●
包含下列資料
– GeoJSON
98
PostGIS
● 可以在 PostgreSQL 上面操作地理資料
●
包含下列資料
– GeoJSON
– GeoHash
99
PostGIS
● 可以在 PostgreSQL 上面操作地理資料
●
包含下列資料
– GeoJSON
– GeoHash
– EPSG 座標轉換
100
PostGIS - 今天要講的
101
PostGIS - 今天要講的
● Geometry vs. Geography
102
PostGIS - 今天要講的
● Geometry vs. Geography
● GiST index type
103
PostGIS - 今天要講的
● Geometry vs. Geography
● GiST index type
● Cluster index
104
PostGIS - 今天要講的
● Geometry vs. Geography
● GiST index type
● Cluster index
● GeoHash
105
PostGIS - 今天要講的
● Geometry vs. Geography
● GiST index type
● Cluster index
● GeoHash
● GeoJSON
106
Geometry vs. Geography
107
Geometry vs. Geography
108
Geometry vs. Geography
dist_degree (deg) dist_spheroid (m) dist_sphere (m)
121.898285970107 9124665.27317673 9103087.98300975
109
GiST index type
110
GiST index type
● Generalized Search Tree
111
GiST index type
● Generalized Search Tree
●
適用在空間結構
112
GiST index type
● Generalized Search Tree
●
適用在空間結構
113
Cluster index
114
Cluster index
● ctid : PostgreSQL 紀錄存的物理位置
115
Cluster index
● ctid : PostgreSQL 紀錄存的物理位置
116
Cluster index
● ctid : PostgreSQL 紀錄存的物理位置
117
GeoHash
118
GeoHash
●
特定範圍的搜尋
119
GeoHash
●
特定範圍的搜尋
120
GeoHash
●
特定範圍的搜尋
121
GeoHash
●
特定範圍的搜尋
搜尋大台北的所有景點
122
GeoJSON
123
GeoJSON
●
精準範圍的搜尋
124
GeoJSON
●
精準範圍的搜尋
125
Pelias
126
Pelias
以下是失敗案例 ...
127
Pelias - Geocoder
128
Pelias - Geocoder
129
Pelias - Data Importers
130
Pelias - Data Importers
● OpenStreetMap :全球無數個 POI , 46 GB
131
Pelias - Data Importers
● OpenStreetMap :全球無數個 POI , 46 GB
● OpenAddresses :全球 5.4 億個地址, 11 GB
132
Pelias - Data Importers
● OpenStreetMap :全球無數個 POI , 46 GB
● OpenAddresses :全球 5.4 億個地址, 11 GB
● Who's on First : 500 萬個 POI , 28 GB
133
Pelias - Data Importers
● OpenStreetMap :全球無數個 POI , 46 GB
● OpenAddresses :全球 5.4 億個地址, 11 GB
● Who's on First : 500 萬個 POI , 28 GB
● Geonames : 1200 萬個地名, 1.5 GB
134
Pelias - Data Importers
● OpenStreetMap :全球無數個 POI , 46 GB
● OpenAddresses :全球 5.4 億個地址, 11 GB
● Who's on First : 500 萬個 POI , 28 GB
● Geonames : 1200 萬個地名, 1.5 GB
● Polylines :匯入 OSM 的道路資料
135
Manual install
136
Manual install
● 硬碟空間:至少 100 GB
137
Manual install
● 硬碟空間:至少 100 GB
● 記憶體空間:至少 16 GB
138
Manual install
● 硬碟空間:至少 100 GB
● 記憶體空間:至少 16 GB
● CPU :多多益善
139
Manual install
● 硬碟空間:至少 100 GB
● 記憶體空間:至少 16 GB
● CPU :多多益善
● Elasticsearch :官方文件至少版本 5.6 以上
140
Manual install
● 硬碟空間:至少 100 GB
● 記憶體空間:至少 16 GB
● CPU :多多益善
● Elasticsearch :官方文件至少版本 5.6 以上
別浪費時間手動安裝
141
Better choice
142
Better choice
● Docker
143
Better choice
● Docker
– 沒試過,成本太高
144
Reference
●
大地座標系統與二度分帶座標
●
坐標系統及WebGIS常用的坐標轉換
● Introduction to PostGIS - Geography
145
146

Google Maps 開始收費了該怎麼辦?