2015-03-30 26 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