如何用很多图钉填充 xamarin.forms.maps - Xamarin

How to fill xamarin.forms.maps with a lot of pins - Xamarin

我在 txt 文件中有 1919 坐标和经纬度,格式如下:

    44.05215, 27.03266,
    44.05056, 27.13236,
    44.04887, 27.23206,
    44.04709, 27.33175,
    44.04522, 27.43143,
    44.04326, 27.5311,
    44.0412, 27.63077,
    44.03906, 27.73043,
    44.0345, 27.92973,
    44.10396, 22.64161,
    44.10638, 22.74137,
    44.10871, 22.84114,
    44.11095, 22.94092,
    44.1131, 23.0407,

有没有办法用这个坐标填充xamarin.forms.maps,如果可以的话,如何设置position 属性和[=中的每个(索引+ 1)的坐标15=] 属性 ?

现在我在地图上设置了一个图钉(只是为了测试):

map.MoveToRegion(MapSpan.FromCenterAndRadius(
                        new Position(42.1499994, 24.749997),
                        Distance.FromMiles(100)));

        Pin pin = new Pin
        {
            Label = "Santa Cruz",
            Address = "The city with a boardwalk",
            Type = PinType.Place,
            Position = new Position(42.1499994, 24.749997)
        };

        map.Pins.Add(pin);

       

由于我不希望通过移动设备上的文本文件读取数据,最好如何写入静态数据然后作为引脚坐标提交?

我能举个例子,说明如何在列表或数组或其他东西中设置坐标,以及如何设置引脚坐标并在标签上设置每个(索引 + 1)属性 ?

尽管其中一条评论指出,几乎总有比硬编码更好的选择。更好的选择是调用 API 来获取位置,这样当位置需要更新时应用程序就不需要重新编译。下一个最佳选择是 non-technical 团队成员可以根据需要更新的文件或资源。

但是,如果您完全决定对位置进行硬编码,我会在静态 class 中使用静态列表来完成:

public static class HardcodedLocations
{
    public static List<Position> Positions = new List<Position>
    {
        new Position(44.05215, 27.03266),
        new Position(44.05056, 27.13236),
        new Position(44.04887, 27.23206)
    };
}

然后在需要添加引脚的地方,可以使用For循环在添加引脚的同时保留索引:

for (int i = 0; i < HardcodedLocations.Positions.Count; i++)
{
    var pin = new Pin
    {
        Label = $"Santa Cruz - {i+1}",
        Address = "The city with a boardwalk",
        Type = PinType.Place,
        Position = HardcodedLocations.Positions[i]
     };

     map.Pins.Add(pin);
}

请注意,我不知道在一个循环中添加近 2000 个引脚的性能会是什么样子。