3 votos

Conjunto de coordenadas a capa utilizando cheap-ruler

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!!

enter image description here

2voto

Ricardo Reyes Puntos 3428

Respuesta sencilla.

Te has equivocado de rumbo y de distancia. De los documentos: https://github.com/mapbox/cheap-ruler#destinationp-dist-bearing

Cita:

destino(p, dist, rumbo)

Devuelve un nuevo punto dada la distancia y el rumbo desde el punto inicial.

var point = ruler.destination([30.5, 50.5], 0.1, 90);

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X