所以我在我的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个管脚。我怎样才能让这更简单?非常感谢!:)
请注意,这都是伪代码,语法不正确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);
}
问题内容: 我想使用GSON将下面的Example类序列化为JSON。 我期望得到以下输出: 但是调用函数返回 看来GSON无法在Map 内序列化Map 。这是GSON的限制,还是我在这里做错了? 问题答案: Nishant的答案之所以起作用,是因为Gson的默认构造函数默认启用所有类型的东西,否则您将不得不使用GsonBuilder手动启用它们。 从JavaDocs: 使用默认配置构造一个Gso
问题内容: 我的直觉告诉我,必须以某种方式将其转换为字符串或byte [](在Go中甚至可能是相同的东西?),然后将其保存到磁盘。 我找到了这个包(http://golang.org/pkg/encoding/gob/),但似乎仅用于结构? 问题答案: 序列化数据有多种方法,Go为此提供了许多软件包。某些常见编码方式的软件包: 处理地图很好。以下示例显示了地图的编码/解码: 操场
自定义地图上两点,绘制出两点直接的路径。使用MKPolyline绘制路径,支持长按(long press)地图自定义两点坐标。 作者说:参照http://code.google.com/p/ashiphone/downloads/detail?name=MapWithRoutes.zip
问题内容: 我想在单个语句(可能包含多个嵌套语句)中声明一个完全填充的地图字段,如下所示: 匿名初始化程序不会这样做,原因与调用返回新填充映射的函数不会这样做的原因相同:匿名初始化程序需要两个顶级语句:一个用于变量声明,一个用于方法或初始化器。 双花括号(和)惯用语可以工作,但是它创建了一个Extended的新类,而我不喜欢由此表示的开销。 Java 8的lambda也许提供了一种更好的方法来实现
问题内容: 你将如何在Java中初始化静态变量? 方法一:静态初始化器 方法二:实例初始化器(匿名子类)或其他方法? 各自的优缺点是什么? 这是说明两种方法的示例: 问题答案: 在这种情况下,实例初始化器只是语法糖,对吗?我不明白为什么你只需要一个额外的匿名类即可进行初始化。如果正在创建的类是最终的,那将是行不通的。 你也可以使用静态初始化程序创建不可变映射:
问题内容: 我想使用GSON将下面的Example类序列化为JSON。 我期望得到以下输出: 但是调用函数返回 看来GSON无法在Map 内序列化Map 。这是GSON的限制,还是我在这里做错了? 问题答案: Nishant的答案之所以起作用,是因为Gson的默认构造函数默认启用了所有东西,否则您将不得不使用GsonBuilder手动启用它们。 从JavaDocs: 使用默认配置构造一个Gson对