Pode haver situações em que você precise converter arquivos KML para o formato GeoJSON ou vice-versa. Para esses casos, este artigo ensinará como converter arquivos KML para o formato GeoJSON e arquivos GeoJSON para o formato KML usando C#.
- API C# para converter KML em GeoJSON e vice-versa
- Converter arquivos KML para o formato GeoJSON usando C#
- Converter arquivos GeoJSON para o formato KML usando C#
API C# para converter KML em GeoJSON e vice-versa
Aspose.GIS for .NET API permite renderizar mapas e criar, ler e converter dados geográficos sem software adicional. Além disso, a API permite converter arquivos KML para o formato GeoJSON e vice-versa. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.
PM> Install-Package Aspose.GIS
Converter KML para GeoJSON em C#
A seguir estão as etapas para converter arquivos KML para o formato GeoJSON.
- Crie uma instância da classe ConversionOptions.
- Atribua o SpatialReferenceSystem.Wgs84 ao objeto ConversionOptions usando a propriedade DestinationSpatialReferenceSystem.
- Converta o arquivo KML para o formato GeoJSON usando o método VectorLayer.Convert(string sourcePath, FileDriver sourceDriver, string destinationPath, FileDriver destinationDriver, ConversionOptions options).
O código de exemplo a seguir mostra como converter um arquivo KML para o formato GeoJSON usando C#.
string dataDir = RunExamples.GetDataDir();
string sourceFile = dataDir + "Kml_File.kml";
string outputFile = dataDir + "output.geojson";
// Especifique as configurações de conversão, se necessário. É opcional.
ConversionOptions options = null;
// Esta opção atribui Wgs84 à camada de destino.
// A conversão pode gerar erro se a camada de destino não suportar a referência espacial Wgs84. Então precisa verificar.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
options = new ConversionOptions()
{
DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
};
}
// Converter formato de arquivo de KML para GeoJSON
VectorLayer.Convert(sourceFile, Drivers.Kml, outputFile, Drivers.GeoJson, options);
Converter GeoJSON para KML em C#
A seguir estão as etapas para converter arquivos GeoJSON para o formato KML.
- Crie uma instância da classe ConversionOptions.
- Atribua o SpatialReferenceSystem.Wgs84 ao objeto ConversionOptions usando a propriedade DestinationSpatialReferenceSystem.
- Converta o arquivo GeoJSON para o formato KML usando o método VectorLayer.Convert(string sourcePath, FileDriver sourceDriver, string destinationPath, FileDriver destinationDriver, ConversionOptions options).
O código de exemplo a seguir mostra como converter um arquivo GeoJSON para o formato KML usando C#.
string dataDir = RunExamples.GetDataDir();
string sourceFile = dataDir + "intersection.geojson";
string outputFile = dataDir + "output.kml";
// Especifique as configurações de conversão, se necessário. É opcional.
ConversionOptions options = null;
// Esta opção atribui Wgs84 à camada de destino.
// A conversão pode gerar erro se a camada de destino não suportar a referência espacial Wgs84. Então precisa verificar.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
options = new ConversionOptions()
{
DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
};
}
// Converta o formato de arquivo de GeoJSON para KML.
VectorLayer.Convert(sourceFile, Drivers.GeoJson, outputFile, Drivers.Kml, options);
Obtenha uma licença gratuita
Para experimentar a API sem limitações de avaliação, você pode obter uma licença temporária gratuita.
Conclusão
Neste artigo, você aprendeu como converter arquivos KML para o formato GeoJSON e vice-versa usando C#. Os snippets de código compartilhados demonstram como conseguir essas conversões com apenas algumas linhas de código. Aspose.GIS for .NET é uma API robusta e rica em recursos que auxilia você a trabalhar com dados geoespaciais. Você pode explorar a API em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.