cartographie Latitude longitude avec l'image de ma maison
-
26-09-2019 - |
Question
J'ai top image vue de ma maison et la longitude latitude pour savoir pixel en haut à gauche i.e. 0,0 maintenant comment obtenir des valeurs de longitude latitude d'autres pixels?
Alors que googler je suis tombé sur ce qui suit:
function longToX(longitudeDegrees)
{
var longitude =degreesToRadians(longitudeDegrees);
return (radius * longitude);
}
function latToY(latitudeDegrees)
{
var latitude =degreesToRadians(latitudeDegrees);
var newy = radius/2.0 *
Math.log( (1.0 + Math.sin(latitude)) /
(1.0 - Math.sin(latitude)) );
return newy;
}
function xToLong(xx)
{
var longRadians = xx/radius;
var longDegrees = radiansToDegrees(longRadians);
/* The user could have panned around the world a lot of times.
Lat long goes from -180 to 180. So every time a user gets
to 181 we want to subtract 360 degrees. Every time a user
gets to -181 we want to add 360 degrees. */
var rotations = Math.floor((longDegrees + 180)/360)
var longitude = longDegrees - (rotations * 360)
return longitude;
}
function yToLat(yo)
{
var latitude = (Math.PI/2) -
(2 * Math.atan(
Math.exp(-1.0 * yo / radius)));
return radiansToDegrees(latitude);
}
= rayon 6371 km rayon de la terre .. mais si je passe je reçois 0,0 0,0 Comment fixer la longitude latitude pour 0,0 et en tirer d'autres valeurs
La solution
Vous devez connaître la distance entre les pixels. Pour convertir la distance en degrés, vous pouvez utiliser le fait qu'une minute nautique (1/60 de degré) latitude est 1.852 mètres, soit environ 6076 pieds. La longitude est la même à l'équateur, mais vous devez multiplier par le cosinus de la latitude ailleurs.
Un degré de latitude = 1852 mètres
Un degré de longitude = 1852 mètres * cos (latitude)
(Vous pourriez avoir besoin de multiplier les degrés de latitude par pi / 180 pour les convertir en radians pour la fonction cosinus.)