Ваша проблема (не используя целочисленную арифметику) была подметена под вашим ковром для вас 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
?
У меня была та же проблема, и я решил это, повторно инициализируя карту google перед каждой ничьей.
map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: { lat: 24.549798, lng: 46.5473599 }
});
Держите ссылки на все объекты 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);
}
DirectionsRenderer
.
– geocodezip
29 November 2015 в 21:46
Попробуйте следующее:
directionsDisplay.setMap(null);
Здесь вы можете увидеть пример кода http://code.google.com/apis/maps/documentation/javascript/examples/directions-simple. HTML