如何用很多图钉填充 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 个引脚的性能会是什么样子。
我在 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 个引脚的性能会是什么样子。