2016-03-04 53 views
1

假設我已經在谷歌地圖API上設置了從A點到B點的步行路線。 我從A點開始(duh)。考慮到行走距離,我怎麼能或者有可能更新地圖上的當前位置? (我正在從Google fit SDK獲得距離)。Google Maps API - 根據行駛距離更新地圖上的當前位置

例子:

從A點到B點有1.5

(標註在谷歌地圖的路線),我已經跑450米

如何更新基於該地圖當前位置? PS:我不能使用GPS作爲我正在製作的應用程序並不顯示您真實的當前位置。這是一個虛假的位置

回答

0

好吧,這是可能的,但你需要有你的方向軸承。 爲此,您需要三件東西 -

  1. 您的移動從源到目的地的方位。
  2. 來源latlong。
  3. 行駛的距離。

如果你有這些三樣東西,那麼這是你怎麼做它 -

private LatLng getDestinationPoint (LatLng source,double brng, double dist){ 
     dist = dist/6371; 
     brng = Math.toRadians(brng); 

     double lat1 = Math.toRadians(source.latitude), lon1 = Math.toRadians(source.longitude); 
     double lat2 = Math.asin(Math.sin(lat1) * Math.cos(dist) + 
       Math.cos(lat1) * Math.sin(dist) * Math.cos(brng)); 
     double lon2 = lon1 + Math.atan2(Math.sin(brng) * Math.sin(dist) * 
         Math.cos(lat1), 
       Math.cos(dist) - Math.sin(lat1) * 
         Math.sin(lat2)); 
     if (Double.isNaN(lat2) || Double.isNaN(lon2)) { 
      return null; 
     } 
     return new LatLng(Math.toDegrees(lat2), Math.toDegrees(lon2)); 
    } 

使用來自上述功能我的代碼,並把參數的功能,作爲回報,你會得到目標經緯度。

讓我知道它是否對你有幫助。

謝謝

+0

這將是完美的,如果我有運動軸承。不幸的是我不這樣做。 我唯一的價值觀是距離旅行和所有數據谷歌地圖api提供的路線製作(包括源和目的地latlong)。 這個想法是在地圖上找出一個標記,根據行駛距離相應更新。該標記必須遵循路線集。 儘管感謝您的解決方案。 – JPL

+0

那你怎麼知道你要走哪個方向?這不僅僅是1.5公里的旅行。西南方向必須有1.5公里的東西或類似的東西。 –

+0

理念是用谷歌地圖製作路線。它會從A點到B點形成一條「線」。我想跟隨那條線 – JPL

相關問題