【问题标题】:Draw a line over another line using google maps API使用谷歌地图 API 在另一条线上画一条线
【发布时间】:2015-03-09 13:18:39
【问题描述】:

我想使用 javascript Google 地图 API 跟踪路上的汽车。所以我用这个函数来改变汽车的位置:

function getDrivingRoute(myLatlng, arrival) {
var directionsDisplay = new google.maps.DirectionsRenderer();

map = new google.maps.Map(document.getElementById("googlemaps"), mapOptions);
startMarker = new google.maps.Marker({
    position : myLatlng,
    map : map,
    icon : '../images/taxii.png'
});
var stopMarker = new google.maps.Marker({
    position : arrival,
    map : map,
    icon : 'icon-1.png'
});

directionsDisplay.setMap(map);
directionsDisplay.setOptions({
    suppressMarkers : true,
    polylineOptions : {
        strokeWeight : 3,
        strokeOpacity : 0.7,
        strokeColor : 'green'
    }
});
request = {
    origin : myLatlng,
    destination : arrival,
    travelMode : google.maps.DirectionsTravelMode.DRIVING
};
directionsService = new google.maps.DirectionsService();
directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
    }
});
var i = 0;
// var addr1=new google.maps.LatLng('35.8416079','10.5983287');
var addr2 = new google.maps.LatLng('35.8423558', '10.5986720');
var addr3 = new google.maps.LatLng('35.8425124', '10.5992299');
var addr4 = new google.maps.LatLng('35.8423558', '10.5997664');
var addr5 = new google.maps.LatLng('35.8420775', '10.6006032');
var position_driver = [ addr2, addr3, addr4, addr5 ];
var myVar = setInterval(
        function() {
            myLatlng = position_driver[i];

            if (myLatlng.lat() == arrival.lat()
                    && myLatlng.lng() == arrival.lng()) {
                changePosition(myLatlng.lat(), myLatlng.lng());
                window.clearInterval(myVar);


            } else {

            startMarker.setPosition(new google.maps.LatLng(myLatlng.lat(), myLatlng.lng());
            }
            i++;
        }, 8000);

}

汽车标记改变它的位置并在地图上获得正确的位置,但路线没有改变,我想消失已行驶的距离或用另一种颜色显示它并用不同的颜色显示未行驶的距离。那可能吗?我试图用另一个覆盖现有行,但它没有显示。

【问题讨论】:

    标签: javascript google-maps cordova


    【解决方案1】:

    您可以尝试用新的折线覆盖不同颜色的路径

     var reRouteOptions = {
            path: position_driver.getPath(),
            strokeColor: 'grey',
            strokeWeight: 1
        };
        var reRoute = new google.maps.Polyline(reRouteOptions);
        reRoute.setMap(map);
    

    【讨论】:

    • 它显示了我设置的位置之间的直线。如果我有一条非线性道路,那我该怎么办?
    • 您的 position_driver 不应该包含折线的所有点吗?
    • 不是全部,它包含我的实际位置和我1分钟前的位置。
    猜你喜欢
    • 2011-01-11
    • 1970-01-01
    • 2012-11-06
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多