This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function processarMultiRotas() { | |
var mapa = new MMap2(document.getElementById('divMap')); | |
var multiRouteManager = new MMultiRouteManager(mapa); | |
var opcoesRota = obterDefinicoesDaRota(); | |
var requisicoesMultiRotas = obterRequisicoesMultiRotas(); | |
multiRouteManager.createMultiRoute(requisicoesMultiRotas, opcoesRota, | |
function (retornoMultiRotas) { | |
if (typeof retornoMultiRotas == "object") { | |
var retornoMultiRotas = formatarResultadoMultiRotas(retornoMultiRotas.singleRouteTotals); | |
document.getElementById("divMap").style.display = "block"; | |
document.getElementById("divInfo").style.display = "block"; | |
document.getElementById("divInfo").innerHTML = retornoMultiRotas; | |
} | |
else if (typeof retornoMultiRotas == "string") { | |
alert(retornoMultiRotas); | |
} | |
else { | |
alert("Retorno inválido"); | |
} | |
}); | |
} | |
function obterRequisicoesMultiRotas() { | |
var requisicaoMultiRotas = new Array(); | |
var corLinhaRota = "EF0505"; | |
var origem = new MRouteStop(); | |
origem.description = "Ponto de Origem 1 - R. Joao Vieira Prioste, 1007-1049 - Carrao, Sao Paulo, 03429-000"; | |
origem.point = new MPoint(); | |
origem.point.x = -46.53755750000005; | |
origem.point.y = -23.553159863543108; | |
var destino = new MRouteStop(); | |
destino.description = "Ponto de Destino 1 - Av Pres Wilson, Vila Prudente, Sao Paulo, 04220-000"; | |
destino.point = new MPoint(); | |
destino.point.x = -46.597320; | |
destino.point.y = -23.583209; | |
requisicaoMultiRotas[requisicaoMultiRotas.length] = new MMultiRouteRequest(origem, destino, corLinhaRota); | |
destino = new MRouteStop(); | |
destino.description = "Ponto de Destino 2 - R. Rubens do Amaral, 362 - Morumbi, Sao Paulo, 05653-010"; | |
destino.point = new MPoint(); | |
destino.point.x = -46.71819599999998; | |
destino.point.y = -23.603133817178684; | |
corLinhaRota = "083ADB"; | |
requisicaoMultiRotas[requisicaoMultiRotas.length] = new MMultiRouteRequest(origem, destino, corLinhaRota); | |
destino = new MRouteStop(); | |
destino.description = "Ponto de Destino 3 - R. Massaca, 107-301 - Alto de Pinheiros, Sao Paulo, 05465-050"; | |
destino.point = new MPoint(); | |
destino.point.x = -46.71403369999996; | |
destino.point.y = -23.553785908554442; | |
corLinhaRota = "2D9B08"; | |
requisicaoMultiRotas[requisicaoMultiRotas.length] = new MMultiRouteRequest(origem, destino, corLinhaRota); | |
destino = new MRouteStop(); | |
destino.description = "Ponto de Destino 4 - Alameda dos Guatas, 501 - Saude, Sao Paulo, 04053-042"; | |
destino.point = new MPoint(); | |
destino.point.x = -46.6426634; | |
destino.point.y = -23.614729492036876; | |
corLinhaRota = "EF8009"; | |
requisicaoMultiRotas[requisicaoMultiRotas.length] = new MMultiRouteRequest(origem, destino, corLinhaRota); | |
destino = new MRouteStop(); | |
destino.description = "Ponto de Destino 5 - Av Pompeia, 290 - Perdizes, Sao Paulo, 050022-000"; | |
destino.point = new MPoint(); | |
destino.point.x = -46.683256; | |
destino.point.y = -23.527649; | |
corLinhaRota = "EF09DC" | |
requisicaoMultiRotas[requisicaoMultiRotas.length] = new MMultiRouteRequest(origem, destino, corLinhaRota); | |
return requisicaoMultiRotas; | |
} | |
function obterDefinicoesDaRota() { | |
var routeOptions = new MRouteOptions(); | |
routeOptions.language = "portugues"; | |
routeOptions.vehicle = obterDadosDeVeiculo(); | |
routeOptions.routeDetails = obterDetalhesDaRota(); | |
return routeOptions; | |
} | |
function obterDadosDeVeiculo() { | |
var vehicle = new MVehicle(); | |
vehicle.tankCapacity = 70; | |
vehicle.averageConsumption = 9; | |
vehicle.fuelPrice = 2.60; | |
vehicle.averageSpeed = 65; | |
vehicle.tollFeeCat = 2; | |
return vehicle; | |
} | |
function obterDetalhesDaRota() { | |
var detalhesDaRota = new MRouteDetails(); | |
detalhesDaRota.optimizeRoute = false; | |
detalhesDaRota.routeType = 0; | |
detalhesDaRota.descriptionType = 0; | |
return detalhesDaRota; | |
} | |
function formatarResultadoMultiRotas(multiRoute) { | |
var resultado = ""; | |
numeroRotasRetornadas = multiRoute.length; | |
for (var i = 0; i < numeroRotasRetornadas; i++) { | |
resultado += "<br><br>->>> Rota [" + (i + 1) + "]<br>"; | |
resultado += "[Origem]<br>"; | |
resultado += formatarTextoPontoDeParada(multiRoute[i].origin); | |
resultado += "<br>[Destino]<br>"; | |
resultado += formatarTextoPontoDeParada(multiRoute[i].destin); | |
resultado += "<br>[RouteID]<br>" | |
resultado += multiRoute[i].logRouteId; | |
resultado += "<br>[Dados sumarizados]"; | |
resultado += formatarTextoDadosSumarizados(multiRoute[i].routeTotals); | |
} | |
return resultado; | |
} | |
function formatarTextoDadosSumarizados(routeTotals) { | |
var textoDadosSumarizados = "<br>totalDistance: " + routeTotals.totalDistance; | |
textoDadosSumarizados += "<br>totalTime: " + routeTotals.totalTime; | |
textoDadosSumarizados += "<br>totalFuelUsed: " + routeTotals.totalFuelUsed; | |
textoDadosSumarizados += "<br>totaltollFeeCost: " + routeTotals.totaltollFeeCost; | |
textoDadosSumarizados += "<br>totalFuelUsed: " + routeTotals.totalFuelUsed; | |
textoDadosSumarizados += "<br>totalCost: " + routeTotals.totalCost; | |
textoDadosSumarizados += "<br>taxiFare1: " + routeTotals.taxiFare1; | |
textoDadosSumarizados += "<br>taxiFare2: " + routeTotals.taxiFare2; | |
return textoDadosSumarizados; | |
} | |
function formatarTextoPontoDeParada(pontoParada) { | |
var textoPontoDeParada = "Descricao: " + pontoParada.description; | |
textoPontoDeParada += "<br>Ponto (x, y): " + pontoParada.point.x + ", " + pontoParada.point.y | |
return textoPontoDeParada; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment