sto usando MongoDB geospaziali query - $near
, geoNear
, ecc - e mi piacerebbe sapere come trasformare il dis
risultato del comando geoNear
così come il radius
argomento per le query $within
a/da unità leggibili come miglia o chilometri.MongoDB geo distanza/distanza per unità utili
risposta
se i dati sono in coordinate geografiche (ad esempio 30.47921 N -121.45724 W), allora è necessario convertire la proiezione sottostante con le unità che si desidera (scegliere una proiezione che mantiene la distanza) o è necessario convertire la distanza in coordinate a qualcosa come miglia.
Utilizzare la formula per il calcolo Haversine http://www.movable-type.co.uk/scripts/latlong.html
Grazie per la tua risposta! I miei dati sono in effetti punti di latitudine/longitudine, e sono stato in grado di utilizzare la formula di Haversine per calcolare la distanza tra i risultati e il punto di origine collegando entrambi i set di punti lat/lon, ma non sono ancora sicuro su cosa fare in particolare con 'dis' e 'raggio'. Potresti chiarire cosa intendevi per "convertire la proiezione sottostante"? Sembra che potrebbe essere più semplice convertire 'dis' piuttosto che collegare entrambi i set di lat/lon, no? Avrei bisogno di riorganizzare la formula di Haversine per soddisfare le mie esigenze qui? In tal caso, quale variabile (s) nell'equazione potrebbe "dis"/"radius" inserire? –
Ciao Chris, ho avuto una domanda simile (http://stackoverflow.com/questions/3878702/mongodb-bound-queries-how-do-i-convert-mile-to-radian). Se non vi dispiace, potete spiegare più dettagliatamente la soluzione? Devi usare la mappa/ridurre? Grazie ancora! – Abe
Se state usando Mongo> 1.8 potete usare il modello sferico: http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-TheEarthisRoundbutMapsareFlat – TheSteve0
utilizzando il comando geoNear per un valore dis chilometriche aggiungere il parametro:
distanceMultiplier: (6371 * Math::PI/180.0)
Nota Se si utilizza MongoDB versione 2.6.0 c'è un bug che consente sempre al nuovo comportamento dei sistemi di coordinate sferiche di restituire la distanza in metri (in base alle coordinate WGS84).
La documentazione afferma che fornire il parametro $near
nelle coordinate legacy anziché su GeoJSON deve comunque restituire i radianti. Questo è stato corretto nelle versioni più recenti.
Il bug report: Bug #13540
- 1. MongoDB allineati geo riquadro
- 2. Unità da utilizzare per maxdistance e MongoDB?
- 3. MongoDB: Can notical can not query: BadValue geo query errata
- 4. Quale unità di misura viene utilizzata per determinare la precisione del GPS con l'API geo HTML5?
- 5. Mocking connessione MongoDB per test delle unità applicative MEAN
- 6. Unità di lavoro in mongodb e C#
- 7. Google Maps Risultati GEO
- 8. Calcola distanza geo in elasticsearch
- 9. Geo: intent con un placeid
- 10. CAP/Coordinate Paese a Geo
- 11. Esercitazione su Android GEO Location
- 12. Mongoid "nessun indice geo :(" errore
- 13. errore MongoDB: non è possibile estrarre le chiavi geo da oggetto, geometria malformate?
- 14. librerie utili per asp.net mvc applicazione
- 15. Le immagini vettoriali sono utili per Android?
- 16. Reperable geo-ip location Servizi
- 17. MongoDB: database diversi possono essere posizionati su unità separate?
- 18. Progetti utili in Haskell
- 19. Eclipse: refactoring più utili
- 20. Ganci Mercurial utili
- 21. Esistono utili quadri Silverlight?
- 22. JS volantino: Come passare (Geo) ID JSON per l'evento click?
- 23. test funzionale Android; invia geo posizione all'emulatore
- 24. Volume per unità fisica
- 25. Stampa geo-localizzazioni su Worldmap con Matlab
- 26. Classi Java più interessanti/utili?
- 27. Google dispone di un servizio IP Geo?
- 28. Pacchetti/librerie ActionScript più utili
- 29. Strumenti di codifica Java utili
- 30. MongoDB 'impossibile trovare l'indice per $ geoNear query'
Sembra che ci sia una risposta molto migliore di quella contrassegnata corretta. È possibile cambiarlo? – JohnAllen