在Google Maps API中设置标记图标

时间:2014-01-08 07:12:29

标签: android xamarin google-maps-markers drawable google-maps-android-api-2

我正在使用Xamarin并使用SimpleMapDemo,我有一个关于将MarkerOptions对象设置为具有不同图标的问题。

这是我目前的代码:

marker1.Icon(SetFeatureDrawable('Icon.png'));

以上代码无效。

我可以帮助您将图标设置为Drawable文件夹中名为'Icon.png'的图标吗?

提前致谢

修改

这是我的代码:

marker1.Icon(BitmapDescriptorFactory.FromResource(Resource.Drawable.monkey));

这是我得到的错误:

Non-invocable member 'Android.Gms.Maps.Model.MarkerOptions.Icon' cannot be used like a method

以下是我尝试设置图标的代码:

marker1.Icon = BitmapDescriptorFactory.FromResource(Resource.Drawable.monkey);

这是我得到的错误:

CS0200: Property or indexer 'Android.Gms.Maps.Model.MarkerOptions.Icon' cannot be assigned to -- it is read only (CS0200)

3 个答案:

答案 0 :(得分:3)

请尝试使用此代码:

marker1.InvokeIcon(SetFeatureDrawable('Icon.png'));

通常,Xamarin尝试将Java setter / getters绑定到属性。在这种情况下,虽然MarkerOption.icon看起来像C#眼睛的属性,但它实际上是一种Java方法。在这种情况下,绑定已将类似属性的Java方法“转换”为MarkerOption.InvokeIcon,以尝试符合C#设计准则。

答案 1 :(得分:2)

尝试这种方式:

double latitude = 0.0;
double longitude = 0.0;

MarkerOptions mapMarker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Your title will be here");

mapMarker .icon(BitmapDescriptorFactory.fromResource(R.drawable.icon)));

mapView.addMarker(mapMarker );

答案 2 :(得分:2)

尝试这个,使用此我可以将可绘制资源中的自定义图标显示为地图中的标记

    MarkerOptions markerOptions = new MarkerOptions();

    // Setting position on the MarkerOptions
    markerOptions.SetPosition(lt);
    markerOptions.InvokeIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.pin));

custom map marker in google map