Удалите маршруты Google Maps Dynamic DirectionRenderer [дубликат]

Ваша проблема (не используя целочисленную арифметику) была подметена под вашим ковром для вас Python 3.2:

Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 15511210043330985984000000 / (479001600 * 6227020800)
5200300.0
>>> repr(15511210043330985984000000 / (479001600 * 6227020800))
'5200300.0'
>>> int(15511210043330985984000000 / (479001600 * 6227020800))
5200300

Python 3.1.3 (r313:86834, Nov 27 2010, 18:30:53) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 15511210043330985984000000 / (479001600 * 6227020800)
5200299.999999999
>>> repr(15511210043330985984000000 / (479001600 * 6227020800))
'5200299.999999999'
>>> int(15511210043330985984000000 / (479001600 * 6227020800))
5200299

Я озадачен: предположительно вы использовали int(), потому что поняли, что это создавая ответ float. Почему вы не приняли (очевидный?) Следующий шаг округления, например

[3.1.3]
>>> int(round(15511210043330985984000000 / (479001600 * 6227020800)))
5200300

?

1
задан Burak Özdemir 1 December 2015 в 00:57
поделиться

3 ответа

У меня была та же проблема, и я решил это, повторно инициализируя карту google перед каждой ничьей.

       map = new google.maps.Map(document.getElementById('map'), {
            zoom: 10,
            center: { lat: 24.549798, lng: 46.5473599 }
        });
0
ответ дан Dongolo Jeno 15 August 2018 в 19:37
поделиться

Держите ссылки на все объекты DirectionsRenderer и установите для всех своих свойств карты значение null.

function requestDirections(start, end, routeToDisplay, main_route) {
    // remove any old renderers from the map
    for (var i = 0; i < directionsRenderers.length; i++) {
        directionsRenderers[i].setMap(null);
    }
    // clear out the directionsRenderers array
    directionsRenderers = [];

    var request = {
        origin: start,
        destination: end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING,
        provideRouteAlternatives: main_route
    };

    directionsService.route(request, function (result, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            if (main_route) {
                var rendererOptions = getRendererOptions(true);
                for (var i = 0; i < result.routes.length; i++) {
                    renderDirections(result, rendererOptions, i);
                }
            } else {
                var rendererOptions = getRendererOptions(false);
                renderDirections(result, rendererOptions, routeToDisplay);
            }
        }
    });
}

function renderDirections(result, rendererOptions, routeToDisplay) {

    if (routeToDisplay == 0) {
        var _colour = '#00458E';
        var _strokeWeight = 4;
        var _strokeOpacity = 1.0;
        var _suppressMarkers = false;
    } else {
        var _colour = '#ED1C24';
        var _strokeWeight = 4;
        var _strokeOpacity = 0.7;
        var _suppressMarkers = false;
    }

    // create new renderer object
    var directionsRenderer = new google.maps.DirectionsRenderer({
        draggable: false,
        suppressMarkers: _suppressMarkers,
        polylineOptions: {
            strokeColor: _colour,
            strokeWeight: _strokeWeight,
            strokeOpacity: _strokeOpacity
        }
    })
    directionsRenderer.setMap(map);
    directionsRenderer.setDirections(result);
    directionsRenderer.setRouteIndex(routeToDisplay);

    // push new renderer onto directionsRenderers array;
    directionsRenderers.push(directionsRenderer);
}

доказательство концепции fiddle

1
ответ дан geocodezip 15 August 2018 в 19:37
поделиться
  • 1
    В какой функции? – Burak Özdemir 29 November 2015 в 21:44
  • 2
    Вы только разместили одну функцию, которая использует DirectionsRenderer. – geocodezip 29 November 2015 в 21:46
  • 3
    renderDirections () использует DirectionsRenderer. Но как узнать, что нужен новый маршрут? (Я использую два окна поиска и автозаполнение для этих полей) – Burak Özdemir 29 November 2015 в 21:54
  • 4
    См. Мой комментарий по вашему вопросу, если вам нужно больше контекста ответа (предоставить минимальный, конкурирующий, проверенный пример, демонстрирующий проблему). – geocodezip 29 November 2015 в 22:46

Попробуйте следующее:

directionsDisplay.setMap(null);

Здесь вы можете увидеть пример кода http://code.google.com/apis/maps/documentation/javascript/examples/directions-simple. HTML

0
ответ дан ske57 15 August 2018 в 19:37
поделиться
  • 1
    Я пробовал это, но он не работает на альтернативных маршрутах. Вы можете увидеть исходный код альтернативной маршрутизации на сайте геокодирования zip. – Burak Özdemir 29 November 2015 в 21:31
Другие вопросы по тегам:

Похожие вопросы: