Sto creando un modello che deve garantire che tutti i set di dati di input finiscano nello stesso sistema di coordinate (tra le altre cose). Inizialmente avevo intenzione di proiettare in batch tutti i set di dati, indipendentemente dal fatto che debbano essere proiettati o meno, ma poi cè il problema di assegnare la trasformazione geografica corretta. Poi mi sono ricordato che tutti i dati che vengono inseriti in un set di dati di funzionalità devono essere lo stesso sistema di coordinate, quindi ho deciso di mettere tutti i dati in uno.
La mia domanda è: quando una classe di entità geografiche viene importata in un set di dati di entità geografiche di un sistema di coordinate diverso, proietta automaticamente dati? Cosa succede?
Lho testato io stesso sui dati delle strade e sembrava proiettare i dati, poiché erano perfettamente allineati con gli altri miei dati. Il fatto è che non era necessaria alcuna trasformazione (e un metodo di trasformazione era necessario se lavessi proiettato), quindi sembra strano che i dati vengano proiettati automaticamente. Forse è una supposizione migliore?
Risposta
Dalla guida su Informazioni sullimportazione di classi di entità geografiche :
Supponi si desidera importare una classe di entità geografiche che è in un altro sistema di coordinate. Ad esempio, potresti voler importare una classe di entità geografiche che utilizza il sistema di coordinate 1927 North American Datum (NAD) in un set di dati di entità geografiche che utilizza il sistema di coordinate NAD 1983. Per importare la classe di entità geografiche, utilizza lo strumento Progetto per importare simultaneamente i dati e convertirli nel nuovo sistema di coordinate.
Se la classe di entità geografiche che stai importando è già nel sistema di coordinate, desideri che sia per il geodatabase, utilizzare gli strumenti Feature Class To Feature Class o Feature Class To Geodatabase per importare i dati. La feature class creata con questi strumenti può essere autonoma o importata in un dataset di feature esistente.
Quando si creare una feature class autonoma, la nuova feature class viene creata con lo stesso riferimento spaziale della feature class che “reimportate.
Se si” Quando crei una feature class in un dataset esistente, la nuova feature class assumerà automaticamente lo stesso riferimento spaziale del feature dataset.
Quindi questo suggerisce che esegue una " migliore ipotesi ". Consiglio vivamente specificando manualmente il metodo di trasformazione della proiezione se si desidera evitare errori di proiezione. Vedi " Revenge of the Shift " per uneccellente panoramica di gli errori introdotti da trasformazioni di proiezione errate!
Risposta
Quando la FeatureClass viene importata in un FeatureDataset, viene proiettata nel sistema di coordinate perché tutte le FeatureClasses allinterno di un FeatureDataset devono avere lo stesso riferimento spaziale.
Se sei curioso del processo esatto in termini di codice, il processo di importazione acquisisce loggetto ISpatialReference dal FeatureDataset di destinazione e, mentre scorre attraverso ogni singola geometria nella FeatureClass di origine, chiama IGeometry :: Project su di essa e passa quelloggetto ISpatialReference come parametro.