Как упростить пины на картах - PullRequest
0 голосов
/ 07 августа 2020

Итак, я реализовал Google Maps в моем проекте VS Xamarin. Я знаю, что есть способ упростить мой код, но не знаю, как еще можно это сделать. У меня есть несколько маркеров на моей карте, и каждый раз, когда я создаю один, я создаю его целиком, поэтому я хочу упростить этот процесс и, если возможно, извлечь информацию из файла excel.

Мой код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Maps;

namespace ------
{
    
    [DesignTimeVisible(false)]
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            Position position = new Position(36.9628066, -122.0194722);
            MapSpan mapSpan = new MapSpan(position, 0.01, 0.01);
            Map map = new Map(mapSpan)
            {
               MapType = MapType.Hybrid
            
            };
            Content = map;
            Pin pin = new Pin
            {
                Label = "Santa HEY MAN",
                Address = "The city with a boardwalk",
                Type = PinType.Place,
                Position = new Position(36.9628066, -122.0194722)
            };
            map.Pins.Add(pin);

            Pin pin2 = new Pin
            {
                Label = "USA",
                Address = "2020",
                Type = PinType.Place,
                Position = new Position(36.9628066, -122.0194722)
            };
            map.Pins.Add(pin2);


        }

    }
}

Здесь я показываю только 2 контакта, а на самом деле у меня их 30. Как я могу сделать это проще? Большое спасибо! :)

1 Ответ

0 голосов
/ 07 августа 2020

примечание это все псевдокод, синтаксически неправильный json / C#

сначала создайте файл json с вашими данными и включите его в свой проект

[ 
  { Label = "USA" Address = "2020", Lat = "36.9628066" Long = "-122.0194722" },
  ... 
  { Label = ""Santa HEY MAN", Address = "The city with a boardwalk", Lat = "36.9628066" Long = "-122.0194722} }
]

тогда в вашем коде

// read the file
var json = File.ReadAllText(path);

// deserialize using NewtonSoft
var places = DeserializeObject<List<Place>>(json);

// then create pins
foreach (var place in places)
{
   var pin = new Pin
        {
            Label = place.Label,
            Address = place.Address,
            Type = PinType.Place,
            Position = new Position(place.Lat, place.Long)
        };
   map.Pins.Add(pin);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...