He calculado un destino a partir del rumbo/distancia (pies) usando cheap-ruler.js https://github.com/mapbox/cheap-ruler
Console.log() devuelve esta matriz del cálculo..
[-87.36328091530362, 37.78808138412046]
A continuación, estoy tratando de añadir el resultado al mapa utilizando...
var ruler = cheapRuler(35.2, 'feet');
var bearing = document.getElementById('bearing').value;
var distance = document.getElementById('distance').value;
var calc = ruler.destination(lnglat, 0.1, 90);
destlnglat = [calc[0], calc[1]];
var myIcon = L.divIcon({className: 'css-icon'});
// Pass array to layer...
var destinationPoint = L.geoJson(destlnglat, {
pointToLayer: function (feature, destlnglat) {
return new L.Marker(destlnglat, {icon: myIcon });
}
}).addTo(map);
¿Qué no devuelve ningún error en la consola? ¿Cómo puedo pasar correctamente de nuevo a L.geoJson()?
Editar: He conseguido que esto funcione utilizando el siguiente..
function calculateDestinationFt() {
var ruler = cheapRuler(35.2, 'feet');
var bearing = document.getElementById('bearing').value;
var distance = document.getElementById('distance').value;
var calc = ruler.destination(lnglat, bearing, distance);
var myIcon = L.divIcon({className: 'css-icon'});
var m_coords = {
lng: calc[0],
lat: calc[1]
};
var destination = {
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
},
"geometry": {
"type": "Point",
"coordinates": [m_coords.lng,m_coords.lat]
}
}]
}
var destinationPoint = L.geoJson(destination, {
pointToLayer: function (feature, lnglat) {
return new L.Marker(lnglat, {icon: myIcon });
}
}).addTo(map);
}
¿Pero mis resultados están muy lejos? Obtuve estos resultados introduciendo un rumbo: 270 y una distancia de 5280 pies. Ni los pies ni el rumbo parecen correctos. ¡¡AaAH!!