推 kiii210:按照文內的意思來講的話,連上Wifi要定位也不是每次都可以 06/19 19:43
→ kiii210:要看這個Wifi的路由有沒有在Apple的清單內 06/19 19:43
→ kiii210:在的話就會連上skyhook來定位 不在的話就不會.. 06/19 19:44
→ kiii210:但是還是很奇怪啊,我在同個Wifi底下,開我的app不能定位 06/19 19:44
→ kiii210:開內建地圖或是Google Map就定得到位...這是怎麼回事 06/19 19:45
→ kiii210:不過用CLLocationManager倒是可以解決問題啦.. 06/19 19:45
→ kiii210:只是我好想知道到底為什麼哪裡出了問題...@@ 06/19 19:45
→ kiii210:WeChat InstaWeather Siri facebook都可以... 06/19 19:47
→ Piceman:為什麼..你不是用 CLLocation 找位置?你是用什麼找的? 06/19 20:52
推 kiii210:先用showsUserLocation定到位置,之後處理都是用CLLocatio 06/19 20:56
→ kiii210:這樣沒錯呀~~兩個方法我記得都可以..@@ 06/19 20:56
以下憑印象
CLLocationManager 有一個 cache 會記錄你上一次的位置
這個 cache 是 system-wide value, 也就是只要你在任何時刻定過位
所有的 CLLocationManager 在要求位置時就會獲得一個 cached location
另一方面, MKMapView 的 user location 雖然也是基於 Core Location 實作
但是它並沒有保證經過 CLLocationManager
所以並不保證可以同樣獲得 cache 裡面的定位記錄
你可以先試試看在你的程式裡面用 CLLocationManager 試試看是不是能要到位置
要到之後可以看一下那個 CLLocation object 的 timestamp
如果以上解釋無誤的話, 你應該會發現這個位置並不是最新的, 只是 cache
這也是為什麼其他 apps 看起來好像神奇的獲得了你的位置
--
"問おう、貴方が私のマスターか?"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.81.146
※ 編輯: uranusjr 來自: 114.32.81.146 (06/19 23:38)
推 kiii210:謝u大回答,在stackoverflow問也有人說是cache 06/20 00:04
→ kiii210:今天要休息了,明天再試試看 06/20 00:05
→ kiii210:不過我從公司回家之後,開飛航,開Wifi,開定位, 06/20 00:05
→ kiii210:然後再開其他地圖軟體,也是馬上就定位到我家的位置.. 06/20 00:05
→ kiii210:那這個cache..從哪來..又為何只有我的app沒有cache? 06/20 00:06