Ho un MapView che sto visualizzando un "raggio utile" (penso alla precisione delle coordinate) pollici. L'utilizzo diProjectionmetersToEquatorPixels, che è ammesso solo per la distanza equatoriale) non mi sta dando una distanza sufficientemente precisa (in pixel). Come lo calcoleresti se volessi visualizzare un cerchio attorno alle tue coordinate, dato il raggio?Come calcolare un raggio attorno a un punto in un MapView Android?
risposta
Quindi, Google Maps utilizza uno Mercator projection. Ciò significa che più si ottiene dall'equatore più le distanze diventano distorte. Secondo this discussion, il modo corretto per convertire per le distanze è qualcosa di simile:
public static int metersToRadius(float meters, MapView map, double latitude) {
return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));
}
Grazie per la risposta. Ma avevo una domanda su questa equazione. Questa equazione è abbastanza pesante da rallentare le prestazioni di un'app? Solo curioso. – Ahmed
L'unica parte che può richiedere molto tempo della formula è Math.cos(). Puoi utilizzare la funzione android.util.FloatMath.cos() per velocizzare le cose, o anche mantenere una tabella di fattori precomputi, ad es. per ogni grado. Quindi potresti semplicemente dire return (int) (map.getProjection(). MetersToEquatorPixels (metri) * factor [(int) latitude]. – Ridcully
projection.toPixels(GeoP, pt);
float radius = projection.metersToEquatorPixels(50);
Provate questo e vedere ... ho usato sul mio MapRadius e sembra funzionare
Se vedi la mia risposta vedrai esattamente perché questo non funzionerà in tutti i casi –
mMap.addCircle(
new CircleOptions().center(
new LatLng(
bounds.getCenter().latitude,
bounds.getCenter().longitude
)
)
.radius(50000)
.strokeWidth(0f)
.fillColor(0x550000FF)
);
La risposta richiede formattazione e aggiunge un po 'più di contesto su come funziona il tuo codice e come risolve il problema di OP! – abhiarora
- 1. Raggio attorno a un punto nella mappa di Google
- 2. disegno un cerchio di raggio R attorno ad un punto
- 3. Ruota un punto attorno a un altro punto
- 4. Come calcolare un punto con un dato centro, angolo e raggio?
- 5. come ruotare attorno a un punto specificato in fabric.js?
- 6. : 1km quadrato attorno ad un punto
- 7. Rotazione di un oggetto attorno a un punto vettore centrale2
- 8. Trova il punto su un cerchio con un dato punto centrale, raggio e grado
- 9. Come aggiungere un cerchio come raggio attorno all'annotazione
- 10. Come posso disegnare un raggio attorno a un indicatore di mappa utilizzando l'SDK di Google Maps (Swift/iOS)?
- 11. Come ruotare l'oggetto attorno a un punto usando i quaternioni?
- 12. come mettere un confine attorno a un relativelayout Android?
- 13. Come posso creare un bordo attorno a un LinearLayout Android?
- 14. Calcolare il raggio in metri utilizzando mapkit
- 15. Spostamento delle icone su un MapView Android
- 16. Rotazione attorno a un punto arbitrario: HTML5 Canvas
- 17. three.js - come faccio a ruotare un cilindro attorno a un punto specifico?
- 18. Android, Come posso ruotare una freccia (immagine) attorno a un punto fisso?
- 19. Una trasformazione affine in un passaggio per la rotazione attorno a un punto?
- 20. Come allineare QPassare drawText attorno a un punto, non un rettangolo?
- 21. Come ruotare un oggetto avanti e indietro attorno a un punto specifico?
- 22. Come disegnare un MKPolyline su un MapView?
- 23. Come si calcola un punto sulla circonferenza di un cerchio?
- 24. Come convertire un punto di vista GeoPoint in un punto dello schermo dell'hardware
- 25. Come si crea un bordo personalizzato attorno a un UIView?
- 26. AS3 Ruota un oggetto attorno al suo punto centrale
- 27. Come disegnare un bordo attorno a un pulsante NSTexturedSquareBezelStyle
- 28. Determinare i punti all'interno di un algoritmo di raggio dato
- 29. Come si inserisce un bordo attorno a un tag tr?
- 30. Aggiungere un collegamento attorno a un file Flash incorporato
Questo potrebbe anche, probabilmente, essere dichiarato come: Ho una coordinata GPS e una distanza, come posso disegnare un cerchio che comprende il raggio dal punto GPS? –
Non sono sicuro di aver capito il problema - cosa intendi quando dici che non ti sta dando una distanza sufficientemente precisa? Che intendevi dire per 100m ma mostra solo un cerchio a 50m o qualcosa del genere? –
Sì. È fuori da una quantità significativa. –