0

大家好,这段代码的作用如下所述。

下面有一些预定义的函数,即 getMapOption 和其他


function initialize(){
    var divCalcDis = $('divCalcDis');
    var pdist = $('pdist');
    var pTimeTaken = $('pTimeTaken');
    var txtLatLon = $('divLatLon');
    var lblDistance = $('lblDistance');
    var mapOption = mapHandler.getMapOption(that.LonLatCoordinates[0], 15, "Default");
    map = mapHandler.getMap('map_canvas', mapOption);
    var renderOption = { draggable: true };
    directionsDisplay = new google.maps.DirectionsRenderer(renderOption);
    directionsDisplay.setMap(map);
    google.maps.event.addListener(directionsDisplay, 'directions_changed', function () {        for (i = 0; i < directionsDisplay.directions.routes.length; i++) {
        //getting latlon
    txtLatLon.innerHTML = "";
                console.log(directionsDisplay.directions.routes[i].overview_path.length);
                var latLng = directionsDisplay.directions.routes[i].overview_path[k];
            var latLng = directionsDisplay.directions.routes[i].overview_path[directionsDisplay.directions.routes[i].overview_path.length - 1].toString();
            latLng = latLng.split('(')[1];
            latLng = latLng.split(')')[0];
            latLng = latLng.split(' ');
            latLng = latLng[0] + latLng[1];
            txtLatLon.innerHTML += latLng;
        }
    });
    startMap();
}

function startMap() {
    var i=0;
    google.maps.event.addListener(map, 'click', function (event) {
        i++;
        if(i === 1){
            mapHandler.setMarker(event.latLng, map, "http://www.google.com/intl/en_us/mapfiles/ms/micons/green-dot.png", null, null, null, that.permanentMarkers, false);
            that.origin = event.latLng;      //comma seperated values of lat,lon
        }
        else if(i > 1){
            mapHandler.setMarker(event.latLng, map, "http://www.google.com/intl/en_us/mapfiles/ms/micons/green-dot.png", null, null, null, that.permanentMarkers, false);
            if (i === 2) {
                that.dest = event.latLng;      //comma seperated values of lat,lon
            }
            else if (i > 2) {
                that.wayPTs.push({
                    location: that.dest,
                    stopover: true
                });
                that.dest = event.latLng;
            }
            that.calcRoute();
        }});
};

function calcRoute() {
    var divCalcDis = stringHandler._id('divCalcDis');
    var pdist = stringHandler._id('pdist');
    var pTimeTaken = stringHandler._id('pTimeTaken');
    var txtLatLon = stringHandler._id('divLatLon');
    txtLatLon.innerHTML = "";
    if (!that.wayPTs.length > 1) {
        this.wayPTs = null;
    }
    var request = this.directionsRequest(this.origin,this.dest,google.maps.DirectionsTravelMode.DRIVING,this.wayPTs,false,true,true,google.maps.DirectionsUnitSystem.METRIC);

    that.directionsResponse.route(request, function (response, status) {
        //console.log(response);
        if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
        }
      });
 };



** 我正在使用 Google Maps API V3 Directions 库制作一个项目,当用户单击地图上的某个地方时,我正在其中创建一条路线
这是一个屏幕截图
** 拖动前的图像


现在,当我拖动方向绘制的线时,它工作顺利,并正确地给了我纬度和经度。
这是一个截图
拖动时的图像


但是问题是,当我单击地图上的任何其他位置(拖动后)时,航路点会刷新,并且我会在下一站获得旧的无拖动路线,如下所示
这是一个屏幕截图


点击下一站后的图片


如何保存航路点的纬度,以便在创建新点后可用
Thx

4

1 回答 1

1

您需要将坐标推送到路线数组中,以便它们始终可用。因此,拖动时按,单击时按。可能对你有帮助。祝你好运。

于 2013-10-16T16:05:48.910 回答