C# 如何向地图添加地图标记?Windows Phone
我已将一个GeoCoordinate变量传递到map类的页面,但当我尝试在地图上绘制一个标记时,我得到一个错误,指出C# 如何向地图添加地图标记?Windows Phone,c#,windows-phone-8,map,overlay,C#,Windows Phone 8,Map,Overlay,我已将一个GeoCoordinate变量传递到map类的页面,但当我尝试在地图上绘制一个标记时,我得到一个错误,指出GeoCoordinate是一个“类型”,但用作“变量”它也给了我的语法错误在位置原点=新点(0.5,0.5); 和关闭 我由此了解到,由于出现此错误,我的语法在添加地图标记时肯定不正确。我的问题是如何更正此方法以绘制标记? 我是以正确的方式绘制标记,还是有不同的解决方案 这是地图页面的onNaviagatedTo方法,我在其中传递坐标并尝试添加标记: protected over
GeoCoordinate是一个“类型”,但用作“变量”
它也给了我的语法错误代码>在位置原点=新点(0.5,0.5);
和关闭代码>
我由此了解到,由于出现此错误,我的语法在添加地图标记时肯定不正确。我的问题是如何更正此方法以绘制标记?
我是以正确的方式绘制标记,还是有不同的解决方案
这是地图页面的onNaviagatedTo方法,我在其中传递坐标并尝试添加标记:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (NavigationContext.QueryString.ContainsKey("GeoLat") && NavigationContext.QueryString.ContainsKey("GeoLong"))
{
var latitude = Convert.ToDouble(NavigationContext.QueryString["GeoLat"]);
var longtitude = Convert.ToDouble(NavigationContext.QueryString["GeoLong"]);
var MyGeoPosition = new GeoCoordinate(latitude, longtitude);
var overlay = new MapOverlay
{
PositionOrigin = new Point(0.5, 0.5); //syntax error
GeoCoordinate = MyGeoPosition; //error thrown here
Content = new TextBlock{Text = "My car"};
var ml = new MapLayer { overlay };
MyMap.Layers.Add(ml);
}; //syntax error
}
在我看来你少了一个等号
MapOverlay overlay = new MapOverlay()
{
PositionOrigin = new Point(0.5, 0.5),
GeoCoordinate = MyGeoPosition,
Content = new TextBlock{Text = "My car"},
};
MapLayer ml = new MapLayer { overlay };
MyMap.Layers.Add(ml);
或者,您可以使用图钉来完成此操作:
PushPin myPin = new Pushpin();
myPin.Location = MyGeoPosition;
myPin.Content = "My car";
MyMap.Children.Add(myPin);
尝试了上面的方法,GeoCoordinate是一种类型,但像变量一样使用
也给了我第一行分号和右括号处的语法错误。有什么想法吗?抱歉,我只是复制了上面的内容并添加了等号-修复了语法。我尝试了上面的方法,但在运行应用程序时出于某种原因,地图只是不居中显示,没有地图标记..在添加标记的过程中我是否错过了一些东西?是否调用MyMap.SetView将地图居中于MyGeoPosition?覆盖图为地图添加了一些内容,但据我所知,它实际上并没有改变你的地图。所以我可以使用图钉代码而不是地图覆盖图代码?我找到了你关于中心布局问题的答案,但你已经被删除了。找到答案了吗?:)