It’s kind of a strange problem im running into. My application requires a LOT of waypoints. I load all my locations in via a self-constructed API. My application sometimes shows them seemingly popping up, before dissapearing once again. I’m kind of new to the tomtom api, which makes this extra difficult. Here is my code:
import "../../Style/bootstrap/css/bootstrap.min.css";
import * as React from "react";
import { useState, useEffect, useRef } from "react";
import "@tomtom-international/web-sdk-maps/dist/maps.css";
import * as tt from "@tomtom-international/web-sdk-maps";
function NaviFrame() {
const mapElement = useRef();
const [map, setMap] = useState({});
let arrayvanpunten = []
let latitude = 0;
let longitude = 0;
let lnglat = {lng: 0, lat: 0}
let arrayvanlnglat = [{lng: Number, lat: Number}]
let arrayvanlnglat2 = [{latitude, longitude}]
async function FetchPunten(){
var kaas = await fetch("https://localhost:7155/api/RouteAanvraag", {
method: "POST",
headers: {
'Content-type': 'application/json',
mode: 'cors'
},
body: JSON.stringify({"optimaleRoute": true, "wayPoints": true,"routeNr": 4})
})
var json = await kaas.json();
var nogeenverder = await json.route.supportingPoints;
var nogeentjedan = await json.wayPoints;
nogeentjedan.forEach(element => {
arrayvanlnglat2.push({latitude: element.latitude, longitude: element.longitude})
});
nogeenverder.forEach(element => {
arrayvanlnglat2.push({latitude: element.latitude, longitude: element.longitude})
});
return json
}
useEffect(() => {
const MyLocation = *Dont bother about this, this one works
let map = tt.map({
key: My Key,
container: mapElement.current,
center: MyLocation
zoom: 14
});
const tussenstap = async () => {
await FetchPunten()
arrayvanlnglat2.forEach(element => {
});
// arrayvanpunten = await FetchPunten();
arrayvanlnglat2.forEach(element => {
lnglat = {lng: element.longitude, lat: element.latitude};
console.log(lnglat)
let lengte = arrayvanlnglat.push(lnglat);
console.log(lengte);
map.on('load', () => {
var marker = new tt.Marker().setLngLat(arrayvanlnglat[lengte]).addTo(map)
})
setMap(map);
});
}
tussenstap()
setMap(map);
return () => map.remove();
}, []);
return (
<div className="App">
<div className="mapContainer">
<div ref={mapElement} className="mapDiv" />
</div>
</div>
);
}
export default NaviFrame;
Is there somebody here to help me out?