Tengo una polilínea que se divide en imágenes prediseñadas y estas partes no están bien ordenadas, por lo que la ID del vértice no sigue el trazado de la polilínea.
Esta polilínea representa una línea de autobús y necesito que el trazado siga el camino de conducción del autobús. ¿Me gustaría saber cómo fusionar las imágenes prediseñadas de esta polilínea?
Ya he tratado de dividir y no dividir, así como de multiparte a una sola parte, unión, fusión, etc., pero nadie me está dando el resultado que quiero.
Respuestas:
Veo por sus etiquetas que está ejecutando ArcGIS 10. He utilizado el siguiente método para una tarea similar:
1) Usar multiparte para una sola parte
2) Use Unsplit
Para que esto funcione (es decir, para que tenga las líneas en el orden correcto), es posible que deba dividir la línea en los puntos finales constituyentes y luego cambiar la dirección en función de un atributo (por ejemplo, 1 = inicio, 2 = final) - puede usar esto para conectar condicionalmente solo aquellos puntos que son diferentes (si 1 + 2, entonces cree líneas de conexión).
Si está trabajando con un IDE, el código para hacerlo es bastante largo, pero haré todo lo posible para ayudarlo si tiene preguntas específicas.
fuente
Tuve que hacer exactamente lo mismo hace bastante tiempo usando AV 3.xy Avenue. Eché un vistazo rápido al código pero no pude encontrarlo. Si recuerdo correctamente, la lógica fue algo como esto: (también tenía las paradas de autobús y las terminales como un archivo de forma de punto diferente, por lo que pude determinar las partes inicial y final):
Para obtener la primera parte:
2a. Obtenga la parte más cercana a la terminal de inicio
2b. Obtenga las distancias del nodo inicial y final de esta parte al terminal de inicio. Si el vértice de inicio es el más cercano, agregue esta parte a la 'polilínea ordenada'. Si es el final, inviértalo y luego agréguelo.
... ¡o algo así! :-)
Avíseme si esto tiene sentido para usted y puedo intentar encontrar mi código original de Avenue.
fuente
Trabajé en un proyecto algo similar a esto, usé ArcObjects. Mi objetivo era conectar dos polilíneas adyacentes si uno de sus puntos finales es el punto de partida de otro para hacer dos polilíneas cortas en una sola polilínea. Mi proceso fue:
Ambas clases anulan los métodos "Equals" y "GetHashCode".
Mediante estos procesos hice dos diccionarios. Después de crear diccionarios, verifico si ambos diccionarios contienen el mismo punto y en ambos diccionarios, esa clave solo tiene una característica en la lista de características, luego creé una nueva polilínea con esas dos polilíneas y eliminé dos polilíneas cortas.
Para unir dos polilíneas en una:
fuente
Tuve exactamente el mismo problema debido a las actualizaciones que realicé en las rutas de autobuses con la herramienta "Rehacer función". Disolver, fusionar y no dividir no funcionaban porque las características de varias partes no coincidían.
Si aún no se ha dado cuenta de esto, eche un vistazo más de cerca a los vértices que deben coincidir entre sus entidades multiparte. Extienda, recorte o cambie la forma según sea necesario y luego use cualquiera de las herramientas mencionadas anteriormente.
fuente