2015-03-30 54 views
-1

我想找到一種方法來添加折線作爲座標變化,我嘗試過每種可能的猜測組合,我可以想到,也包括Google自己的文檔「複雜折線」,我有沒有運氣。watchPosition結合折線

如果任何人都可以照亮一些光,它會非常appriciated,因爲我現在完全卡住了!

function startTrack() { 
    var options = { enableHighAccuracy: true, maximumAge: 0, timeout : 5000 }; 
    watchID = navigator.geolocation.watchPosition(onSuccessTrack, onErrorTrack, options); 

    var polyOptions = { 
     strokeColor: '#000000', 
     strokeOpacity: 1.0, 
     strokeWeight: 3 
    }; 
    poly = new google.maps.Polyline(polyOptions); 
    poly.setMap(map); 

} 

function onSuccessTrack(position) { 
     var latitude = position.coords.latitude; 
     var longitude = position.coords.longitude; 

var path = poly.getPath(); 

path.push(google.maps.LatLng(latitude, longitude)); 
} 

回答

1

必須更新折線的路徑:

function startTrack() { 
    var options = { enableHighAccuracy: true, maximumAge: 0, timeout : 5000 }; 
    watchID = navigator.geolocation.watchPosition(onSuccessTrack, onErrorTrack, options); 

    var polyOptions = { 
     strokeColor: '#000000', 
     strokeOpacity: 1.0, 
     strokeWeight: 3 
    }; 
    poly = new google.maps.Polyline(polyOptions); 
    poly.setMap(map); 

} 

function onSuccessTrack(position) { 
     var latitude = position.coords.latitude; 
     var longitude = position.coords.longitude; 

    var path = poly.getPath(); 

    path.push(google.maps.LatLng(latitude, longitude)); 
    poly.setPath(path); // ** update path for polyline ** 
} 
+0

的確,我以前錯過了咬下我嘗試的東西出來狂潮! 現在我正在從我的js錯誤文件以及VM12015我只能推測是一些相關的映射它們是: '未捕獲InvalidValueError:在索引0:64遺漏的類型錯誤:不是LatLng' 'VM12015實例:無法讀取未定義的屬性'lat' – 2015-03-30 20:17:27

+0

如果您有其他問題,則需要提供一個[最小,完整,測試和可讀的示例](http://stackoverflow.com/help/mcve),以說明這些問題。 – geocodezip 2015-03-30 20:35:14

+0

我想我已經解決了這個問題,用於填充座標的數組位於onSuccess函數中,我也重新安排了代碼,並在startTrack之前調用了onSuccess並將代碼移到了旁邊,現在工作。 我不認爲這是一種增加什麼時候檢查一組新座標的方法?我試過使用maximumAge,它似乎忽略它,並在座標改變後立即添加一個新的poly點 – 2015-03-30 22:06:50