La aplicación Realtor para iPad ha hecho un muy buen trabajo al implementar una herramienta de dibujo personalizada sobre el mapa de mapas que utilizan para consultar un área para hogares. Estoy familiarizado con Mapkit y sus clases asociadas, pero no estoy al tanto de cómo podría hacer un dibujo personalizado con mi dedo y hacer que se traduzca en una consulta geoespacial. ¿Cómo hacerlo?¿Cómo puedo implementar la herramienta de búsqueda de dibujos personalizada que se usa en la aplicación Realtor iPad?
Respuesta
No estoy seguro de qué tan avanzado usted lo ha hecho con esto, pero el algoritmo básico debería tener este aspecto:
dibujar un polígono overtop su mapa, y luego convertir las coordenadas de ese polígono para "mapear" las coordenadas. Para hacerlo, probablemente necesite escuchar gestos en una vista que no sea la instancia de MKMapKit. Con mi conocimiento limitado del manejo de eventos táctiles de MapKit, es posible que tenga que superponer una vista transparente diferente en el mapa cuando quiera dibujar, para que los eventos táctiles no se transmitan a MapKit (si eso tiene sentido). Usas tu dedo para pellizcar, hacer zoom, mover y no querrás esa funcionalidad si estás tratando de dibujar. En esa vista, dibujará la forma que rastrea el dedo del usuario y luego trasladará los puntos dibujados a los puntos del mapa.
Los documentos indican que puede traducir puntos de pantalla a puntos de mapa utilizando el método
convertPoint:toCoordinateFromView:
en MKMapView.Comprobar este enlace para obtener información sobre lo siguiente: Trouble converting MapKit user coordinates to screen coordinates
Este puesto proporciona un enlace que pueden ayudar con el dibujo del polígono: To draw polygon on google map with MapKit framework
Después de que ha dibujado el polígono querrá "espacialmente" consultar sus datos. Podrías hacer eso de varias maneras. Localmente en el dispositivo o a través de un servicio web son dos opciones. Si sus datos son locales para el dispositivo, tendrá que hacer los cálculos cartográficos en su dispositivo. También deberá asegurarse de que los datos de sus puntos (las X, Y) estén en la misma proyección y espacio de coordenadas que la información de su polígono. La matemática de intersección de polígonos es relativamente fácil de hacer, cuando sus proyecciones y sistemas de coordenadas se alinean.
Aquí hay un enlace que puede ayudarte con las matemáticas.
https://math.stackexchange.com/questions/237/how-do-you-determine-if-a-point-sits-inside-a-polygon
Si lo prefiere puede establecer algún servicio web que toma sus datos de polígono y realiza las mismas matemáticas cartográfica en un servidor y devuelve los resultados al dispositivo. De cualquier manera, es necesario realizar las mismas operaciones matemáticas. Tomará los datos de ese polígono y determinará qué registros de sus datos se cruzan con ese polígono.
Esto es bastante alto nivel, lo sé, pero debería ser todo lo que necesita hacer.
Otra consideración es si sus datos están habilitados espacialmente con spatialite compilado para SQLite en su dispositivo o SQL Server Spatial en su servidor. Debería poder consultar los datos usando esos datos de polígono. Sin embargo, debería formatear la consulta correctamente.
Por último, le sugiero que consulte el ESRI SDK para iOS. ESRI proporciona herramientas de dibujo y dibujo de la caja.No es demasiado difícil de usar pero una desventaja es que usted tendría que aprender un nuevo API:
- 1. Cómo implementar la aplicación del teléfono en el ipad/iphone
- 2. ¿Cómo se usa el sstableloader de la herramienta Cassandra?
- 3. ¿Cómo implementar una herramienta personalizada de Visual Studio?
- 4. ¿Existe alguna aplicación de búsqueda personalizada GRATIS como la búsqueda personalizada de Google?
- 5. ¿Cómo puedo hacer una aplicación universal de iPhone/iPad que usa programáticamente UISplitViewController y UINavigationController?
- 6. ¿Cómo puedo implementar la búsqueda binaria en Perl?
- 7. ¿Cómo implementar la búsqueda en jqgrid?
- 8. facebook php, ¿cómo se usa la búsqueda de resultados?
- 9. Aplicación para iPad descartada, mientras que el Instrumento de asignación muestra que no se usa la memoria de forma inusual.
- 10. ¿Cómo puedo hacer una búsqueda con la API de búsqueda personalizada de Google para .NET?
- 11. Cómo implementar la búsqueda como Stack Overflow
- 12. Implementar la barrera de java personalizada
- 13. ¿Cómo implementar la aplicación que depende de las bibliotecas dinámicas?
- 14. ¿Cómo se puede usar ElasticSearch para implementar la búsqueda social?
- 15. ¿Cómo implementar la búsqueda de texto completo en Django?
- 16. pestaña de búsqueda personalizada en la búsqueda del menú de inicio de Windows con C#
- 17. Cómo implementar la funcionalidad de búsqueda en C#/ASP.NET MVC
- 18. Búsqueda de video HTML5 en el iPad
- 19. ¿Cómo puedo buscar en toda la web desde la Búsqueda personalizada de Google?
- 20. Normal Búsqueda personalizada de Google
- 21. La pantalla de bienvenida personalizada de Java se "congela" hasta que se carga toda la aplicación
- 22. Desarrollo iOS: ¿Cómo puedo evitar que un iPad ejecute una aplicación universal en el modo iPad?
- 23. ¿Cómo implementar la aplicación Flask en Webfaction?
- 24. agregar una ruta de búsqueda DLL personalizada @ aplicación de inicio
- 25. Ejecutar herramienta personalizada para la solución completa
- 26. ¿Cómo se prohíbe la compra en la aplicación de moneda virtual pero se usa ampliamente?
- 27. ¿Qué herramienta de perfiles de Java usa y qué herramienta cree que es la mejor?
- 28. Cómo implementar una api más rápida de búsqueda como tipo (SAYT) en la aplicación Rails 3
- 29. Depuración de la aplicación web en el simulador de iPad
- 30. ¿Cómo se pueden implementar las sugerencias de búsqueda/búsqueda en vivo usando Dojo?
¿Alguna vez encontrar la manera de hacer esto como que estoy teniendo el mismo problema? – Exist
Nunca lo hice, ojalá pudiera. – kyleplattner