Tworzę model, który musi mieć pewność, że wszystkie wejściowe zestawy danych znajdą się w tym samym układzie współrzędnych (między innymi). Początkowo miałem zamiar wsadowo zaprojektować wszystkie zbiory danych, niezależnie od tego, czy mają być rzutowane, czy nie, ale potem pojawia się kwestia przypisania prawidłowej transformacji geograficznej. Potem przypomniałem sobie, że wszystkie dane, które są wprowadzane do zestawu danych funkcji, muszą być ten sam układ współrzędnych, więc zdecydowałem się umieścić wszystkie dane w jednym.
Moje pytanie brzmi: Kiedy klasa obiektów jest importowana do zestawu danych obiektu, który ma inny układ współrzędnych, czy automatycznie rzutuje danych? Co się dzieje?
Samodzielnie przetestowałem to na danych drogowych i wyglądało na to, że rzutuje dane, ponieważ zgadzały się one ładnie z innymi moimi danymi. Rzecz w tym, że nie była potrzebna żadna transformacja (i metoda transformacji była potrzebna, gdybym ją przewidział), więc wydaje się podejrzane, że dane są wyświetlane automatycznie. Może to najlepsze przypuszczenie?
Odpowiedź
Z pomocy w Informacje o importowaniu klas elementów :
Załóżmy chcesz zaimportować klasę elementów, która znajduje się w innym układzie współrzędnych. Na przykład, możesz chcieć zaimportować klasę elementów, która używa układu współrzędnych North American Datum (NAD) 1927 do zestawu danych elementu, który używa układu współrzędnych NAD 1983. Aby zaimportować klasę elementów, użyj narzędzia Projekt, aby jednocześnie zaimportować dane i przekonwertować je na nowy układ współrzędnych.
Jeśli importowana klasa elementów znajduje się już w układzie współrzędnych, który ma być w programie do geobazy użyj narzędzi Klasa obiektów do klasy elementów lub Klasa elementów do geobazy w celu zaimportowania danych. Klasa obiektów utworzona za pomocą tych narzędzi może być autonomiczna lub importowana do istniejącego zestawu danych obiektów.
Gdy utworzyć autonomiczną klasę obiektów, nowa klasa obiektów jest tworzona z tym samym odniesieniem przestrzennym, co klasa obiektów, którą importujesz ponownie.
Jeśli tak ponownie tworząc klasę obiektów w istniejącym zbiorze danych obiektów, nowa klasa obiektów automatycznie przyjmie to samo odniesienie przestrzenne co zbiór danych obiektów.
To sugeruje, że jest to " najlepsze przypuszczenie ". Zdecydowanie polecam ręczne określanie metody transformacji rzutowania, aby uniknąć błędów rzutowania. Zobacz " Zemsta zmiany " , aby uzyskać doskonały przegląd błędy spowodowane przez nieprawidłowe przekształcenia odwzorowania!
Odpowiedź
Kiedy FeatureClass zostanie zaimportowany do FeatureDataset, zostanie wyświetlony w układzie współrzędnych ponieważ wszystkie FeatureClasses wewnątrz FeatureDataset muszą mieć to samo odniesienie przestrzenne.
Jeśli interesuje Cię dokładny proces pod względem kodu, proces importu pobiera obiekt ISpatialReference z Destination FeatureDataset i w trakcie pętli przez każdą geometrię w źródłowym FeatureClass, wywołuje na niej IGeometry :: Project i przekazuje ten obiekt ISpatialReference jako parametr.