Necesito una implementación compatible con los comerciales (licencia Apache, LGPL, Mozilla Public License, etc.) R-tree en Java, para sustituir el servicio web geonames por zonas horarias, como se sugiere en la pregunta "Determine timezone from latitude/longitude without using web services like Geonames.org". Tengo foundsomearound, pero me preguntaba si alguien los ha evaluado o usado en la práctica.¿Implementación de R-tree compatible con Java?
Respuesta
Antes que nada permítanme señalarles que si busca la ciudad más cercana a partir de las coordenadas dadas, ¡podría no estar en el mismo huso horario! Lo que realmente necesita, en mi opinión, es una información sobre su afiliación administrativa: el mínimo sería un país, pero en algunos casos debería ser incluso más que eso, es decir, estado. Esa información puede recuperarse con la API de Google Maps y luego correlacionarse con información de TZ más detallada.
hay una alternativa gratuita a GeoNames - EarthTools. Existen algunas limitaciones para el servicio en sí (número de solicitudes, etc.), pero aún así es bueno, probado y funciona bien para mí.
En segundo lugar, existe una alternativa gratuita a GeoNames - EarthTools. Existen algunas limitaciones para el servicio en sí (número de solicitudes, etc.), pero aún así es bueno, probado y funciona bien para mí.
En tercer lugar, si le interesa importar los datos en DB, la mayoría de las implementaciones de DB actuales proporcionan índices geoespaciales que puede usar. Si necesita esa información incluida en Su aplicación, puede usar H2Database (embebido Java DB) con H2Spatial además, aunque lo he intentado y no puedo recomendarlo del todo. Neo4j tiene una gran implementación del índice espacial
Además, puede usar Solr para GeoSpatial searches. Es agradable, es rápido y fácil de implementar. En realidad estoy en el medio del proceso de migración de mis búsquedas de base de datos a Solr ...
Por último, pero no menos importante, a continuación encontrará algunos de los que he probado hace un tiempo:
- JSI - LGPL
- GeoTools - LGPL, una exageración, le dará mucho más de lo que necesita ... pero es genial!
Posiblemente poco más allá, pero los que he probado hasta ahora ...
Gracias por la respuesta. Encontré EarthTools cuando estaba investigando, pero lo que me disuadió fue que "el uso de estos servicios es * actualmente * de forma gratuita". Esto fue un obstáculo para mí, ya que necesitaba saber que la solución permanecerá libre indefinidamente. –
Me gustaría ir con Solr o GeoTools entonces - ambos son geniales. –
https://github.com/rweeks/util/blob/master/src/com/newbrightidea/util/RTree.java - aplicación LGPL de R-Tree de Russ Weeks. Se ve muy simple y claro y no depende de bibliotecas externas.
http://www.mischiefblog.com/?p=171 http://www.mischiefbox.com/blog/uploads/rtree.jar aplicación LGPL de R-árbol por Chris Jones. Otra solución simple y clara.
http://www.khelekore.org/prtree/ CPL 1,0 implementación de Prioridad RTree por Robert Olofsson
http://jsi.sourceforge.net/ LGPL - proyecto tiene como objetivo mantener una versión de Java de alto rendimiento del algoritmo de indexación espacial RTree.
RTree sencilla clase Java creado por mí: https://github.com/hadmir/rtree/blob/master/RTree.java
Todos los objetos se almacenan dentro de dos matrices int [], por lo que es muy fácil de persistir (presentar). Además, el hecho de que agregar nuevas rectas no crea ningún objeto significa que puede insertar millones de rectángulos en RTree y JVM no se quemará en llamas. Esto es útil para proyectos geográficos, donde el recuento de objetos suele ser enorme.
Solo se almacenan los rectángulos 2D (por lo que para objetos complejos debe encontrar un rectángulo delimitador). Query devuelve todas las rects (IDs de rects) que se cruzan o superponen con "query rectangle".
- 1. ¿Cuán compatible es exactamente la implementación Java de Android?
- 2. ¿LevelDB es compatible con Java?
- 3. cómo construir un RTree usando los puntos de datos dados
- 4. Implementación autónoma compatible con STL de std :: vector
- 5. Función de cksum compatible con Java
- 6. Versión Unicode compatible con Java 6
- 7. Implementación de archivos Java
- 8. Implementación de Java REST: Jersey vs CXF
- 9. Compatible con Android JDBC
- 10. Implementación de Java Primitive
- 11. Hashing de contraseña compatible con Java y PHP
- 12. ¿El modelo de seguridad Java EE es compatible con ACL?
- 13. IntervalTree DeleteNode Implementación de Java
- 14. Implementación JAVA JNA WindowProc
- 15. implementación de diff en Java
- 16. Implementación de KDTree en Java
- 17. Implementación de Java de ... ¿JVM?
- 18. Implementación de OCR de Java
- 19. ¿Cómo es compatible Java 16 bits con Unicode?
- 20. ¿Tomcat 7 ahora es compatible con Java 7?
- 21. ¿Mejor implementación de Java Queue?
- 22. Implementación de Java N-Tuple
- 23. Implementación java segmento de árbol
- 24. Implementación de PCA en Java
- 25. Implementación de Java Array HashCode
- 26. Implementación de MPI para Java
- 27. ¿Es posible que la implementación libpcre de Lua no sea compatible con '\ d'?
- 28. ¿Es compatible el bytecode de Java con diferentes actualizaciones de la misma versión de Java?
- 29. OpenCL compatible con DSP
- 30. Dashboard compatible con d3
¿Puede explicar lo que es aceptablemente "comercialmente amigable"? – trashgod
Java Topology Suite (JTS) de Vivid Solutions con licencia LGPL contiene una implementación de R-Tree. He utilizado con éxito JTS en mis aplicaciones pero no en la implementación de JTS R-Tree. Ver http://www.vividsolutions.com/jts/javadoc/com/vividsolutions/jts/index/strtree/STRtree.html –
No directamente una implementación de R-tree, pero las versiones recientes de Apache Lucene tienen soporte para búsquedas geoespaciales eficientes. Ver por ejemplo http://www.ibm.com/developerworks/opensource/library/j-spatial/ para más detalles. –