변환-geojson-topojson-csharp

GeoJSON은 비공간적 특징으로 지리적 특징을 표현하는 데 사용됩니다. 반면, TopoJSON은 토폴로지를 활용하는 GeoJSON의 확장입니다. 요구 사항에 따라 GeoJSON을 TopoJSON으로, TopoJSON을 GeoJSON으로 변환할 수 있습니다. 다음 사용 사례를 자세히 살펴보겠습니다.

GeoJSON 및 TopoJSON 상호 변환 – C# .NET API 설치

Aspose.GIS for .NET API를 사용하여 지리 데이터를 조작하거나 변환할 수 있습니다. 다운로드 섹션에서 또는 다음 설치 명령으로 NuGet 갤러리를 통해 DLL 파일을 다운로드하여 API를 쉽게 구성할 수 있습니다.

PM> Install-Package Aspose.GIS

C#을 사용하여 프로그래밍 방식으로 GeoJSON을 TopoJSON으로 변환

GeoJSON에서 TopoJSON으로 파일 변환은 지리 공간 기능을 인코딩하고 파일 크기가 더 작기 때문에 유용합니다. 토폴로지 및 중복 제거로 인해 파일 크기가 더 작습니다. 또한 공유 토폴로지가 없는 경우에도 고정 정밀도 인코딩이 GeoJSON 파일 형식의 부동 소수점 인코딩보다 훨씬 효율적입니다. 다음 단계에 따라 GeoJSON을 TopoJSON으로 변환할 수 있습니다.

  1. 입력 GeoJSON 파일 로드
  2. GeoJSON을 TopoJSON으로 변환

다음 코드 조각은 C#을 사용하여 프로그래밍 방식으로 GeoJSON을 TopoJSON으로 변환하는 방법을 보여줍니다.

// 입력 GeoJSON 파일 로드
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// GeoJSON을 TopoJSON으로 변환
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

C#을 사용하여 양자화를 사용하여 GeoJSON을 TopoJSON으로 변환

GeoJSON에서 TopoJSON으로의 변환은 고정 정밀도 효율성과 더 작은 파일 크기 때문에 널리 사용됩니다. 또한 양자화는 좌표의 정밀도를 감소시킵니다. 결과적으로 좌표를 정수로 표시하여 파일 크기를 최적화합니다. 따라서 아래 단계에 따라 양자화를 사용하여 GeoJSON을 TopoJSON으로 변환할 수 있습니다.

  1. ConversionOptions 클래스 객체 초기화
  2. 양자화 번호 지정
  3. 또는 Transform 속성을 설정합니다.
  4. 양자화를 사용하여 GeoJSON을 TopoJSON으로 변환

아래 코드는 양자화를 사용하여 GeoJSON을 TopoJSON으로 변환하는 방법을 보여줍니다. 변환을 위한 두 가지 대체 접근 방식을 설명합니다.

// 양자화를 사용하여 GeoJSON을 TopoJSON으로 변환 - 파일 크기를 줄이기 위해 double을 정수로 변환합니다.

string SampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSampleWithQuantization_out.topojson";

// ConversionOptions 클래스 개체 초기화
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // 양자화 매개변수를 설정하는 두 가지 방법이 있습니다 - Transform 속성을 사용하거나
        // 양자화 번호. 여기에서 양자화 수를 지정합니다.
        // 양자화 숫자는 결과에서 차원당 표현할 수 있는 값의 수를 지정합니다.
        // 좌표.
        QuantizationNumber = 100_000,

        // 또는 'Transform' 속성을 설정할 수 있습니다(그러나 양자화 번호와 동시에는 아님).
        // 변환 객체 및 양자화에 대한 자세한 내용은 TopoJSON 사양을 참조하십시오.
        //
        // 변환 = 새로운 TopoJsonTransform(
        //     x번역: 0,
        //     y번역: 0,
        //     xScale: 0.0001000010000100001,
        //     y스케일: 0.0001000010000100001),
    }
};

VectorLayer.Convert(SampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson, options);

C#에서 프로그래밍 방식으로 TopoJSON을 GeoJSON으로 변환

Aspose.GIS for .NET API는 TopoJSON에서 GeoJSON 파일 변환을 지원합니다. 따라서 .NET 애플리케이션에 이 기능을 추가할 수 있습니다. 또한 GeoJSON 파일은 일반적으로 토폴로지가 필요하지 않은 지오메트리의 서버 측 조작에 선호됩니다. TopoJSON에서 GeoJSON으로 변환하려면 다음 단계를 따를 수 있습니다.

  1. 입력 TopoJSON 파일 로드
  2. TopoJSON을 GeoJSON으로 변환

다음 코드는 C#을 사용하여 프로그래밍 방식으로 TopoJSON을 GeoJSON으로 변환하는 방법을 보여줍니다.

// 입력 TopoJSON 파일 로드
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// TopoJSON을 GeoJSON 파일로 변환
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

결론

이 기사에서는 GeoJSON 및 TopoJSON 파일 형식의 차이점과 적합성을 배웠습니다. 또한 요구 사항에 따라 서로 변환하는 방법을 탐색했습니다. Aspose.GIS for .NET API는 애플리케이션에서 효율적이고 빠르게 상호 변환을 수행할 수 있습니다. 또한 API 문서를 방문하여 자세히 알아볼 수 있습니다. 질문이나 우려 사항이 있는 경우 무료 지원 포럼에서 언제든지 회신해 주십시오.

또한보십시오