0

我正在使用 Mono For Android MapsAndLocationDemo 并且有一个问题。

我可以帮忙在当前地图上的某些经度和纬度点上放置一些“标记”吗?另外,当点击每个“标记”时,是否能够执行一些代码?

谢谢

4

1 回答 1

0

您需要添加地图叠加层。是一个教程

您可以实施ItemizedOverlay

class MonkeyItemizedOverlay: ItemizedOverlay
{
   List<OverlayItem> _items;

   Context context;

   public MonkeyItemizedOverlay (Drawable monkey, Context context) : base(monkey)
   {     
          this.context = context;

          // populate some sample location data for the overlay items
          _items = new List<OverlayItem>{
                  new OverlayItem (new GeoPoint ((int)40.741773E6,
                         (int)-74.004986E6), null, null),
                  new OverlayItem (new GeoPoint ((int)41.051696E6,
                         (int)-73.545667E6), null, null),
                  new OverlayItem (new GeoPoint ((int)41.311197E6,
                         (int)-72.902646E6), null, null)
          };

          BoundCenterBottom(monkey);
          Populate();
   }
}

然后像这样使用它

var monkey = Resources.GetDrawable (Resource.Drawable.monkey);  
var monkeyOverlay = new MonkeyItemizedOverlay (monkey, Context);
map.Overlays.Add (monkeyOverlay);

如果你想添加点击功能覆盖 OnTap(int)

protected override bool OnTap(int index)
{
    var item = _items[index];

    Toast.MakeText(context, index.ToString(), ToastLength.Short).Show();

    return true;
}
于 2012-11-13T11:04:26.063 回答