Un requisito de nuestra aplicación web es actualizar automáticamente un servicio de mapa dinámico particular en un temporizador.
El requisito se refiere a un cliente que tiene una MS dinámica que constantemente recibe actualizaciones de los sensores GPS.
Olvidemos los Servicios de funciones por ahora, y los servicios WMS o de imagen que podrían cambiar con frecuencia.
En cuanto a la codificación, fue bastante sencillo lograr esto.
Nuestros evaluadores ahora quieren un servicio de mapas dinámicos que cambie con frecuencia (idealmente al menos cada 15 segundos) para que puedan ver cómo se ve esto en la parte frontal. También nos ayudará a demostrar la nueva capacidad a nuestro cliente.
He estado rastreando los servidores de muestra de Esri pero no puedo encontrar uno.
¿Alguien sabe de un servicio público que podríamos usar para algunas pruebas rápidas?
Si la respuesta es no, debe haber secuencias de comandos para emular el movimiento de rastreo GPS, tal vez para seguir cambiando la ubicación de algunos puntos. Entonces podemos configurar mi propio servicio.
fuente
Respuestas:
Hice una pregunta similar recientemente. Las respuestas allí pueden ayudarte.
P: Fuentes de datos espaciales en tiempo real.
fuente
Si está utilizando la API REST, me parece que podría hacerlo sin el servidor arcgis. Cuando llega una solicitud de un mapa, devuelve una cadena json que cumpla con la especificación REST API , que representa nuevas ubicaciones.
Con Windows, esto podría hacerse implementando un servicio WCF Rest . El servicio mantendría una gran variedad de vehículos en la memoria. Cada vehículo tendría ubicación, rumbo, velocidad y marca de tiempo. Cuando llega una solicitud, la ubicación se actualizará en función del tiempo transcurrido desde la última marca de tiempo, compensando cierta distancia en función de la velocidad y el rumbo.
Si sus vehículos necesitan seguir caminos, puede volcar un camino para cada vehículo en un archivo (x, y y tiempo). El servicio REST podría usar el archivo para devolver actualizaciones de posición que siguen a lo largo de esas rutas.
Su cliente necesitaría un temporizador para realizar una solicitud cada 15 segundos. Incluya una marca de tiempo en la URL para evitar el almacenamiento en caché.
Editar
Otra alternativa sería utilizar una extensión en capas. Cree un mxd que apunte a una capa ficticia. La primera vez que se llame a ILayerExtensionDraw.BeforeLayerDraw , haga que reemplace IFeatureLayer.Featureclass con una clase de características en memoria (creada usando inmemoryworkspacefactory ). La clase de entidad de puntos representaría ubicaciones de vehículos, con campos para Encabezado, Velocidad y Marca de tiempo. Cada vez que se llama BeforeLayerDraw, las ubicaciones se actualizan en función de la velocidad, la dirección y el tiempo desde la última marca de tiempo. No olvide hacer que su extensión laye implemente IPersistStream .
fuente
La naturaleza de un servicio de mapas dinámicos es que se presta sobre la marcha, por solicitud. Para ver cualquier cambio en el lado del cliente, se debe emitir una nueva solicitud de mapa.
De forma predeterminada, un servicio de mapas dinámicos alojado a través de ArcGIS Server colocará un "Bloqueo de esquema" en los datos, lo que no permitirá las ediciones en los datos de origen mientras se ejecuta el servicio.
Esto se puede superar editando propiedades en el archivo de configuración de servicios de mapas (.cfg). Una
<SchemaLockingEnabled>false</SchemaLockingEnabled>
entrada permitirá cambios en los datos de origen mientras se ejecuta el servicio.Ver http://help.arcgis.com/en/arcgisserver/10.0/help/arcgis_server_dotnet_help/index.html#//0093000000mr000000
fuente