Estou criando um modelo que precisa garantir que todos os conjuntos de dados de entrada terminem no mesmo sistema de coordenadas (entre outras coisas). Eu ia originalmente projetar em lote todos os conjuntos de dados, quer eles precisassem ser projetados ou não, mas então há o problema de atribuir a transformação geográfica correta. Então me lembrei que todos os dados que são inseridos em um conjunto de dados de recursos devem ser o mesmo sistema de coordenadas, então decidi colocar todos os dados em um.
Minha pergunta é: quando uma classe de recurso é importada para um conjunto de dados de recurso que é de um sistema de coordenadas diferente, ele projeta automaticamente o dados? O que acontece?
Eu mesmo testei isso em dados de estradas e parecia projetar os dados, pois eles se alinhavam perfeitamente com meus outros dados. O fato é que nenhuma transformação foi necessária (e um método de transformação era necessário se eu tivesse projetado), então parece duvidoso que os dados sejam projetados apenas automaticamente. Talvez seja a melhor estimativa?
Resposta
Da ajuda em Sobre a importação de classes de recursos :
Suponha você deseja importar uma classe de recurso que está em outro sistema de coordenadas. Por exemplo, você pode querer importar uma classe de recurso que usa o sistema de coordenadas North American Datum (NAD) 1927 para um conjunto de dados de recurso que usa o sistema de coordenadas NAD 1983. Para importar a classe de feições, use a ferramenta Project para importar simultaneamente os dados e convertê-los para o novo sistema de coordenadas.
Se a classe de feições que você está importando já estiver no sistema de coordenadas que você deseja para o geodatabase, use as ferramentas Feature Class to Feature Class ou Feature Class to Geodatabase para importar os dados. A classe de recurso que você cria com essas ferramentas pode ser autônoma ou importar para um conjunto de dados de recurso existente.
Quando você criar uma classe de recurso autônoma, a nova classe de recurso é criada com a mesma referência espacial da classe de recurso que você está importando.
Se você ” Ao recriar uma classe de recurso em um conjunto de dados de recurso existente, a nova classe de recurso assumirá automaticamente a mesma referência espacial do conjunto de dados de recurso.
Portanto, isso sugere que ele faz uma " melhor palpite ". Eu recomendo fortemente especificando o método de transformação de projeção manualmente se você deseja evitar erros de projeção. Consulte " Vingança da mudança " para uma excelente visão geral de os erros introduzidos por transformações de projeção incorretas!
Resposta
Quando o FeatureClass é importado para um FeatureDataset, ele é projetado para o sistema de coordenadas porque todas as FeatureClasses dentro de um FeatureDataset devem ter a mesma referência espacial.
Se você estiver curioso quanto ao processo exato em termos de código, o processo de importação pega o objeto ISpatialReference do FeatureDataset de destino e, enquanto faz um loop por meio de cada geometria na FeatureClass de origem, ele chama IGeometry :: Project nele e passa esse objeto ISpatialReference como o parâmetro.