BWill ile hemfikirim. Ana probleminiz her çoklu hattın kökenini tanımlamaktır. 'Nehir' ne oluşturur? A bir kolun, kolun 0-> uzunluğundan başlayarak bağımsız bir "rota" olduğu varsayımını yapacaktır. Sonra ana nehirler için de aynısını yaparım, ancak bu durumda tüm kurucu poliilinlerden birleştirilmiş bir çoklu çizgi oluşturacağım. Bence bir kez sen orada 'neredeyse' olduğunu. Daha sonra: Birleştirilen tüm çoklu çizgilerin kollar dahil Ölçülen çoklu çizgilere (PolylineM) dönüştürün. Daha sonra 'rota ağınıza' sahipsiniz. O andan itibaren her bir istasyon için rotanız üzerindeki mesafeyi bulma meselesi. Sanýrým istasyon yerleri XY'lerde tanýmlý mý? Ayrıca - başka bir tahmin - tam olarak nehrin üstüne düşmezler, onlar mı? Her durumda, istasyonun her bir nehrin veya kolun başlangıcından mesafesini bulmanın bir yoluna ihtiyacınız olacaktır. Teorik olarak, bir istasyon nehrin ve kolun kesişim noktasındaysa, 2 yere sahip olabilir (her biri için bir tane).
Bu konumu bulmak için ArcMap araçlarını kullanabilirsiniz, ancak bir süredir kullanmadım, bu yüzden kafamın üstünü hatırlayamıyorum. Eğer PostGIS içine shapefiles (?) İçe eğer Öte yandan kullanabilirsiniz ST_Line_Locate_Point . Bu işlev:
Toplam 2d çizgi uzunluğunun bir kesri olarak, LineString üzerinde belirli bir noktaya en yakın noktanın konumunu temsil eden 0 ile 1 arasında bir kayan nokta döndürür.
Bu, daha sonra, birleştirilmiş nehir uzunluğu ile bulduklarınızı çoğaltarak nehir boyunca konumu bulabileceğiniz anlamına gelir. Son bir not: PostGIS kullanıyorsanız, PolylineM'yi oluşturma adımından geçmeniz gerekmez - sadece ArcGIS doğrusal referans için bunu gerektirir.
Umarım bu mantıklıdır!