<html>
<head>
<meta content="text/html; charset=Big5" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">嗨 Supaplex<br>
<br>
你是說 iPhone 嗎?我只熟 iPhone. =/<br>
<br>
我那是為了打包離線地圖的 app 才費工夫去做這有的沒的。<br>
<br>
只是要手機 app 看 OSM 地圖的話,我記得有人有給我看過 app 可以作這個啊?<br>
那 app 好像也有搭配的 server (或者就是從 OSM 拉) 可以直接傳 tiles 進手機裡面存好。<br>
<br>
所以我不太懂你的意思?<br>
<br>
Timothy<br>
<br>
On 2/26/13 9:01 AM, Dennis Raylin Chen wrote:<br>
</div>
<blockquote
cite="mid:CALK=LD3qwA4kJQ4U=ZaJ66LHgvPks8Rs90qXZai1sOH2Gj5zyA@mail.gmail.com"
type="cite">哇!<br>
TImothy我要好好向你請教<br>
<br>
我最近要生出一份可以輸出的生態地圖<br>
這個區域的<br>
<a moz-do-not-send="true"
href="http://www.openstreetmap.org/?lat=24.95185&lon=121.53415&zoom=17&layers=M">http://www.openstreetmap.org/?lat=24.95185&lon=121.53415&zoom=17&layers=M</a><br>
<br>
基本上路都記錄的差不多了,涼亭也會在近質放上去<br>
要怎樣能夠快速生出可以拿在手上按圖索驥的地圖?<br>
<br>
<br>
Supaplex<br>
<br>
<div class="gmail_quote">2013/2/25 Timothy Wu <span dir="ltr"><<a
moz-do-not-send="true" href="mailto:g39328006@ym.edu.tw"
target="_blank">g39328006@ym.edu.tw</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
哈,弄那個圖算是雕蟲小技啦..<br>
<br>
用 Landez 一個 Python 程式,從抓 Stamen server 抓 watercolor 的 tiles。<br>
可以直接抓成 mbtiles,一種 SQLite database 存 tiles 的格式。<br>
<br>
但這個沒有文字只有水彩顏色底圖。所以只好用 TileMill render 文字。<br>
<br>
Tilemill 是 MapBox提供的 render 工具 (好像底層也是用 Mapnik 的 code?),<br>
吃的是 CartoCSS 格式,這格式是從 Cascadenik<br>
(<a moz-do-not-send="true"
href="http://wiki.openstreetmap.org/wiki/Cascadenik"
target="_blank">http://wiki.openstreetmap.org/wiki/Cascadenik</a>)
改的,跟 Cascadenik 很類似。<br>
<br>
因為雖然 CartoCSS 較 Mapnik style sheet 簡單得多,但想多花點時間寫<br>
iPhone code 也沒時間去搞 style sheet,所以,就用 MapBox 提供寫好的<br>
OSM-Bright<br>
來 render。TileMill 很容易控制,把底層圖都不要 render 只 render 那些文字<br>
label,也做成 mbtiles。<br>
<br>
Landez 又有個功能是可以把兩個 mbtiles 的 tiles 疊起來。所以我就用 watercolor<br>
當底層,OSM-Bright 的 label 當上層。然後疊起來再做成一個 mbtiles。<br>
<br>
比較難的部份是我的 iPhone app 部分。把 tiles 弄上 iPhone 算簡單,直接<br>
利用 MapBox-iOS-sdk 做。(這 sdk 主要也是開源貢獻,就是 route-me)。<br>
至於 routing 就不好做了,是利用 GraphServer 的routing engine 來做。<br>
GraphServer 是一個 server 的軟體作 routing 的系統。下 query,給你 json。<br>
他的資料來源可以用 OSM,公車資訊是用 GTFS。<br>
code 分 C 跟 Python code。C 部分是 graph 資料結構的建構<br>
跟最短路徑找尋。Python 這邊作資料處理跟 server hosting 的 code。這邊 C code<br>
我直接拿來使用,Python 部分幾乎依樣化葫蘆改寫 Objective-C。<br>
大概過去七個月幾乎全職的時間在做這個 app。app性質是要做旅遊地區<br>
(例如香港)的離線地圖導航,不過...香港的公車沒有 GTFS 格式,資料不好取。<br>
另外我也還有一些大小問題待解。因為我現在是 indie developer 目的是想要藉由<br>
跟 hotel 拆帳賺點小錢,不過拆帳這邊我也還沒時間作。<br>
<br>
目前有其他其他的計畫,所以這 hotel 拆帳也暫時不會弄。要是 code 都能搞定<br>
就先挑個區域 release 純routing 工具出來,就是 San Francisco 附近的 Alameda<br>
County 試試看。台北因為路的資料太少,準確性太低,做也沒什麼意義就比較可<br>
惜了。<br>
<br>
國外做 Offline routing 作得比較好的我知道是 Embark 跟 iTrans,他們還有即<br>
時狀況,<br>
例如捷運 delay 了都還有通知。Embark 至少兩三年前就做了,也是改寫<br>
GraphServer。<br>
iTrans 就不清楚。不過好像兩個都沒有做到一般道路上的導航,不過我沒有 survey<br>
的很確切就是了。<br>
<span><font color="#888888"><br>
<br>
Timothy</font></span><br>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>