Ejemplo 4 – Utilización de los parámetros del Leaflet
Es posible utilizar funciones o parámetros de Leaflet que aún no tienen equivalentes en la API Javascript de Maplink. Para ello, acceda a su objeto de mapa a través de las propiedades L y map, respectivamente.
const L = maplink.L; const map = maplink.map;
En este ejemplo, se tomó una ruta con la Trip API con tres paradas. Se utilizó la biblioteca Leaflet para los marcadores y la ruta se visualizó utilizando el método line.
Utilizamos L.icon de Leaflet para cargar el marcador con figuras personalizadas donde figura_origem.png es la figura del punto de origen y figura_destino.png es la figura de los puntos de destino.
Puede ver que el formato de las coordenadas de latitud/longitud para localizar el marcador es el siguiente: L.marker([-23.503939, -46.498419].
La ruta seguida por Trip API tiene dos tramos, que representan los tramos entre las paradas.
Así que utilizamos el método con el color verde para la sección 1 line y el color rojo para la sección 2 (maplink.line(route1, {color: "green"})). (maplink.line(route2, {color: "red"}))
<html>
<head>
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
<script src="https://maps.maplink.global"></script>
<style>
#map {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script type="text/javascript">
const apiKey = "SUA CHAVE DE API";
const maplink = new MaplinkMap(apiKey, "map", { center: [-23.503939, -46.498419] });
const L = maplink.L;
const map = maplink.map;
var iconCD = L.icon({
iconUrl: 'figura_origem.png',
iconSize: [32, 32],
shadowSize: [0, 0],
iconAnchor: [15, 30],
shadowAnchor: [0, 0],
popupAnchor: [-3, -32]
});
markerCD = new L.marker([-23.503939, -46.498419], { icon: iconCD })
.bindPopup("<strong>CD</strong>")
.addTo(map);
var locations = [
["Cliente1", -23.506608, -46.499145],
["Cliente2", -23.509059, -46.501193]
];
var Icon = L.icon({
iconUrl: 'figura_destino.png',
iconSize: [32, 32],
shadowSize: [0, 0],
iconAnchor: [15, 30],
shadowAnchor: [0, 0],
popupAnchor: [-3, -32]
});
for (var i = 0; i < locations.length; i++) {
marker = new L.marker([locations[i][1], locations[i][2]], { icon: Icon })
.bindPopup(locations[i][0])
.addTo(map);
}
const tripSolution = JSON.parse(`{
"id": "6099c6a8fec03d33f22a7f6f",
"clientId": "0wfdGfgEOFpME1RcsrBj4U5yAAJjeqFG",
"totalDistance": 1112,
"totalNominalDuration": 200,
"averageSpeed": 20.02,
"legs": [
{
"distance": 431,
"nominalDuration": 77,
"averageSpeed": 20.15,
"points": [
{
"latitude": -23.50393569920035,
"longitude": -46.49834851821927
},
{
"latitude": -23.504808,
"longitude": -46.4983
},
{
"latitude": -23.504995,
"longitude": -46.498282
},
{
"latitude": -23.505813,
"longitude": -46.497989
},
{
"latitude": -23.505986,
"longitude": -46.4979
},
{
"latitude": -23.50618,
"longitude": -46.497763
},
{
"latitude": -23.506368,
"longitude": -46.497882
},
{
"latitude": -23.506625,
"longitude": -46.498025
},
{
"latitude": -23.50668540374243,
"longitude": -46.499140809791456
}
]
},
{
"distance": 681,
"nominalDuration": 122,
"averageSpeed": 20.1,
"points": [
{
"latitude": -23.50668540374243,
"longitude": -46.499140809791456
},
{
"latitude": -23.506716,
"longitude": -46.499706
},
{
"latitude": -23.506868,
"longitude": -46.499674
},
{
"latitude": -23.506996,
"longitude": -46.499642
},
{
"latitude": -23.507011,
"longitude": -46.499851
},
{
"latitude": -23.507045,
"longitude": -46.500116
},
{
"latitude": -23.507072,
"longitude": -46.500522
},
{
"latitude": -23.507717,
"longitude": -46.500408
},
{
"latitude": -23.507846,
"longitude": -46.500378
},
{
"latitude": -23.50791,
"longitude": -46.50036
},
{
"latitude": -23.507977,
"longitude": -46.500331
},
{
"latitude": -23.508232,
"longitude": -46.500178
},
{
"latitude": -23.508343,
"longitude": -46.50029
},
{
"latitude": -23.508603,
"longitude": -46.500606
},
{
"latitude": -23.508761,
"longitude": -46.50085
},
{
"latitude": -23.508798,
"longitude": -46.500916
},
{
"latitude": -23.508833,
"longitude": -46.500991
},
{
"latitude": -23.50888690756477,
"longitude": -46.501212952746116
}
]
}
],
"source": "MAPLINK",
"createdAt": 1620690601541
}`);
const route1 = tripSolution.legs[0].points;
maplink.line(route1, {
color: "green"
});
const route2 = tripSolution.legs[1].points;
maplink.line(route2, {
color: "red"
});
</script>
</body>
</html>