Extracting data from CSV file (fusion table and kml workaround)

前端 未结 3 1122
难免孤独
难免孤独 2021-01-17 23:04

In Xamarin google maps for Android using C# you can create polygons like so based on this tutorial:

    public void OnMapReady(GoogleMap googleMap)
    {
            


        
3条回答
  •  耶瑟儿~
    2021-01-17 23:10

    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.IO;
    using System.Linq;
    using System.Xml.Linq;
    
    namespace ConsoleApplication35
    {
        public class LatLng
        {
            public LatLng(double lat, double lng)
            {
            }
        }
    
        class Program
        {
            private static IEnumerable GetCoordinates(string polygon)
            {
                var xElement = XElement.Parse(polygon);
                //var innerBoundaryCoordinates = xElement.Elements("innerBoundaryIs").FirstOrDefault()?.Value ?? "";
                var outerBoundaryCoordinates = xElement.Elements("outerBoundaryIs").Single()?.Value ?? "";
                return outerBoundaryCoordinates
                    .Split(' ')
                    .Select(latLng =>
                    {
                        var splits = latLng.Split(',');
                        var lat = double.Parse(splits[0], CultureInfo.InvariantCulture);
                        var lng = double.Parse(splits[1], CultureInfo.InvariantCulture);
                        return new LatLng(lat, lng);
                    });
            }
    
            static void Main()
            {
                const string header = "description,name,label,geometry";
                var latLngs = File.ReadLines("file.csv")
                                  .SelectMany(x => x.Split(new[] { header }, StringSplitOptions.RemoveEmptyEntries)) //all geometry`s in one array
                                  .Select(x => x.Split('"'))
                                  .SelectMany(x => GetCoordinates(x[1]))
                                  .ToArray();
            }
        }
    }
    

提交回复
热议问题