30 votes

Android GeoPoint avec valeurs lat / long

J'essaie d'obtenir un GeoPoint pour -23.4456 par 45.44334

Quelles valeurs dois-je transmettre au constructeur du GeoPoint car il ne prend que des Ints.

73voto

Itsik Points 2472

Les coordonnées GeoPoint sont basées sur des micro-degrés (degrés * 1e6) - écrites ici

 float lat = -23.4456f;
float lng = 45.44334f;
GeoPoint gp = new GeoPoint((int)(lat * 1E6), (int)(lng * 1E6));
 

30voto

Ross M Points 281

plutôt que de répéter les calculs dans toute mon application, je préfère créer un LatLonPoint:

 private static final class LatLonPoint extends GeoPoint {
    public LatLonPoint(double latitude, double longitude) {
        super((int) (latitude * 1E6), (int) (longitude * 1E6));
    }
}
 

alors partout où j'ai besoin de créer un GeoPoint et j'ai un lat / lon je fais juste

 GeoPoint point = new LatLonPoint(37.234569, -122.123456);
 

il devrait vraiment y avoir un constructeur lat / long sur GeoPoint en premier lieu.

6voto

ben0bi Points 61

J'ai pris le lat / long de cette page et l'ai écrit sans aucun point ... ça a très bien fonctionné, ma maison est là, où elle devrait être;)

donc au lieu de (ci-dessus) 34.234569 il suffit d'écrire 34234569 ... rappelez-vous: 1e6 est 1000000, rien d'autre;)

2voto

AndroEmbedded Points 750

Je trouve que la solution pourrait vous aider.

1) D'abord, vous avez des données (Lieu) sous forme de diplôme. 2) Par l'équation, vous devez le multiplier par 1000000 3) maintenant, vous avez un emplacement GEO POINT particulier.

Comme ici, si j'ai un emplacement comme: Latitude: 23.0395677 et Longitude: 72.5660045 ° Donc, votre GeoPoint (23039568,72566045);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X