Tengo una base de datos que contiene pedidos y cada pedido tiene una ubicación asociada. Actualmente, cuando un usuario inicia sesión, estoy usando Bing Maps API para geocodificar cada ubicación de pedido y luego calcular la distancia de manejo para el usuario que ha iniciado sesión. En función de estas distancias, el usuario a través de un cuadro desplegable puede especificar las distancias máximas con los resultados que se muestran en una vista de cuadrícula. Sin embargo, con más de 100 pedidos, el proceso se vuelve extremadamente lento. Agradecería algunos consejos sobre la optimización de las consultas bing, posiblemente el almacenamiento en caché de los resultados (para que puedan ser reutilizados sin volver a procesar la API de Bing Maps) o la utilización de Ajax para procesar de alguna manera los pedidos. Gracias.Optimización de las solicitudes de geocodificación y RouteMapping de Bing Maps
Respuesta
Tengo la intención de hacer algo similar en un futuro muy cercano, así que tengo algunas sugerencias, pero ningún código real para compartir todavía. Espero que sea útil.
espero para almacenar la latitud/longitud para cada artículo en mi db (por lo que se geocodifique sólo una vez). Para seleccionar elementos dentro de una cierta distancia desde un punto, calcularé los números lat/lon que son 'x' millas norte/sur/este/oeste de mi punto central. Entonces, la selección se convierte en una simple cuestión de elegir registros donde los valores lat/lon caen entre los valores de mi cuadrado.
Y sí, sé que técnicamente debería utilizar un círculo de controlar con precisión la distancia, pero esto es mucho más fácil y más rápido. Si realmente necesita usar un círculo para un límite más preciso, primero use este método, luego use cálculos más complejos para eliminar los elementos fuera del círculo en las esquinas.
No estoy familiarizado con la concesión de licencias de Bing, pero si no recuerdo mal acerca de Google, es necesario tener una licencia pagada (comercial) para almacenar los resultados de geocodificación. Y no es barato. Entonces eso puede negar cualquier valor que mi sugerencia pueda haber tenido :(
Editar; Acabo de leer la pregunta con un poco más de cuidado, y veo que está hablando de conducir millas, no millas lineales. Entonces, mi respuesta no es t realmente aplicable, a menos que desee utilizarlo como una forma de reducir el número de cálculos de distancia de conducción que tiene que hacer.
Además, en materia de geocodificación y licencias, puede consultar geocoder.us que es bastante barato
Lo que probablemente quiera hacer es crear un árbol de expansión mínimo suponiendo que tiene la misma ubicación de destino para el usuario. El MST sigue siendo O (V^2), pero está efectivamente almacenando en caché muchos de los caminos más cortos ya que muchos de ellos reutilizarán los mismos caminos.
Otra opción es estimar distancias lineales usando por primera vez como un sustituto de millas de carretera, pero que todo depende de lo que va a enviar de vuelta al usuario.
¡Buena suerte!
- 1. API de Google Maps vs API Multimapa/Bing Maps
- 2. Google Maps, Bing Maps, OpenStreetMap y MapQuest limitación
- 3. ¿De dónde obtienen Google Maps/Bing Maps sus imágenes satelitales?
- 4. Infobox en WPF Bing Maps
- 5. ¿Hay alguna forma de acceder a la API de geocodificación de Bing Maps a través de REST?
- 6. Google maps optimización de polígono
- 7. Google Maps API - tabla de precisión de geocodificación?
- 8. Google Maps geocodificación y marcadores en el bucle
- 9. Optimización de solicitudes cartesianas con costos afines
- 10. Error de credenciales no válidas de WP7 Bing Maps
- 11. geocodificación en R con Google Maps
- 12. Bing Maps Ajax API https url?
- 13. Cómo manejar un gran número de marcadores en Bing Maps
- 14. ¿Quién paga la factura de las llamadas a la API de Bing Maps?
- 15. estructura de datos para admitir google/bing maps
- 16. ¿Cómo utilizar los servicios REST de Bing Maps en BlackBerry?
- 17. Código de geocodificación inversa
- 18. Geocodificación .... hice algo mal?
- 19. API de traducción PHP y Bing
- 20. Soluciones escalables de geocodificación internacional
- 21. Google Maps v3 geocodificación del lado del servidor
- 22. Optimización de solicitudes HTTP: ¿Cuál es el límite?
- 23. Infobox en polígonos en Bing Maps Android SDK
- 24. ¿Cuál es la diferencia entre estos dos URL de la API de geocodificación de Google Maps?
- 25. ¿Es posible obtener direcciones de Google Maps usando solicitudes HTTP?
- 26. Buscando consejo de geocodificación/mapas para desarrollo de iPad
- 27. Python: optimización de las importaciones
- 28. Servicios de geocodificación - límites - Google vs Yahoo vs otros?
- 29. ¿La API de geocodificación de Google Maps v3 tiene un campo que representa la precisión?
- 30. Creación de mapas de calor para la aplicación Silverlight de Bing Maps
¿Cómo te ayudará un MST en las rutas más cortas? ¿Cómo decidir si puede ir a lo largo del MST y usar el 'caché' o no? – Karussell