禁用 Google API DirectionsService 中的两个可拖动标记之一

Posted

技术标签:

【中文标题】禁用 Google API DirectionsService 中的两个可拖动标记之一【英文标题】:Disable one of two draggable Markers in Google API DirectionsService 【发布时间】:2015-10-01 10:01:40 【问题描述】:

我正在使用 Google API 路线服务,我想禁用地图中的两个标记之一。当我使用渲染选项并将可拖动设置为 false 时,两个标记都设置为 false,但我想禁用其中一个标记为 false,而不是两者。

function initialize() 
        var mapOptions = 
            zoom: 15,
            center: orgn
        ;
        map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
        directionsDisplay.setMap(map);
        google.maps.event.addListener(directionsDisplay, 'directions_changed', function () 
            computeTotalDistance(directionsDisplay.getDirections());
        );
        calcRoute();
        map.setZoom(15);
        map.setCenter(orgn);
    

    function calcRoute() 
        var request = 
            origin: orgn,
            destination: 'دبیرستان شهدا، Ahvaz, Khuzestan, Iran',
            travelMode: google.maps.TravelMode.DRIVING
        ;
        directionsService.route(request, function (response, status) 
            if (status == google.maps.DirectionsStatus.OK) 
                directionsDisplay.setDirections(response);
            
        );
    

    function computeTotalDistance(result) 
        var total = 0;
        var myroute = result.routes[0];
        for (var i = 0; i < myroute.legs.length; i++) 
            total += myroute.legs[i].distance.value;
        
        total = total / 1000.0;
        document.getElementById('total').innerhtml = total + ' Km';
        $('#<%= tt.ClientID %>').val(total);
    
    var orgn = new google.maps.LatLng(31.321173, 48.672320);
    var mapOptions = 
        zoom: 13,
        center: orgn
    ;

    var rendererOptions = 
        draggable: true
    ;
    var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
    var directionsService = new google.maps.DirectionsService();
    google.maps.event.addDomListener(window, 'load', initialize);

    $(document).ready(function () 
        $('#<%= SchoolDD.ClientID %>').bind('change', function () 
            $.ajax(
                url: "ajax.ashx?m=" + $(this).val(),
                success: function (result) 
                    if (result == '(0)') 
                        $('#std').hide();
                        $('#schoolpoint').fadeIn();
                    
                    else 
                        orgn = result;
                        calcRoute();
                    
                
            );
        );

【问题讨论】:

你试过我的建议了吗? 【参考方案1】:

寻找可拖动的参数。用于此的参数。

var marker = new google.maps.Marker(
    position: latlng,
    draggable:<this>, 
    map: map,
    shadow: iconShadow,
    icon: getMarkerImage(color),
    shape: iconShape,
    title: label,
    zIndex: Math.round(latlng.lat()*-100000)<<5
);

工作:http://www.geocodezip.com/v3_directions_custom_icons_draggableStart.html

【讨论】:

以上是关于禁用 Google API DirectionsService 中的两个可拖动标记之一的主要内容,如果未能解决你的问题,请参考以下文章

禁用 Google API DirectionsService 中的两个可拖动标记之一

地图加载后 Google Maps API v3 不会禁用滚轮

使用 Google Maps API v3 禁用兴趣点信息窗口

Google Recaptcha 启用禁用的提交按钮

Google API - 使用 Google_Service_MyBusinessBusinessInformation 获取位置

Google API 项目的小问题