使用Xamarin Mapbox的折线和标记问题

时间:2016-08-16 21:53:30

标签: xamarin mapbox

我正在使用Xamarin并添加了Google地图。 出于许可原因,我想用替代方法替换google maps api。

我找到了MapBox,它工作得很好。 我仍然遇到MapBox的一些问题。

  • 折线
    我需要更改线条的颜色,但PolyLine.Color是只读的 如何更改颜色?

  • 折线
    我需要切换可见性。这个功能似乎还没有实现。
    它似乎最近被添加到#5663的mapbox / mapbox-gl-native下 任何想法,何时由Xamarin选择?

  • 折线
    之后我需要更改积分。再次点数只是只读 有没有办法访问积分?(例如使用句柄?!?)

  • 标记
    我需要切换可见性。也没有实施方法 解决方法的任何想法?

1 个答案:

答案 0 :(得分:0)

过了一会儿,我想出了Android的这些功能:

    void PolylineOptions_SetWidth(PolylineOptions obj, float width)
    {
        try
        {
            Java.Lang.Reflect.Method method = obj.Class.GetMethod("width", new Java.Lang.Class[] { Java.Lang.Float.Type });
            method.Invoke(obj, new Java.Lang.Object[] { (Java.Lang.Float)(float)width });
        }
        catch (Java.Lang.SecurityException e)
        {
            // exception handling here
        }
        catch (Java.Lang.NoSuchMethodException e)
        {
            // exception handling here
        }
    }

    void PolylineOptions_SetColor(PolylineOptions obj, int col)
    {
        try
        {
            Java.Lang.Reflect.Method method = obj.Class.GetMethod("color", new Java.Lang.Class[] { Java.Lang.Integer.Type });
            method.Invoke(obj, new Java.Lang.Object[] { col });
        }
        catch (Java.Lang.SecurityException e)
        {
            // exception handling here
        }
        catch (Java.Lang.NoSuchMethodException e)
        {
            // exception handling here
        }
    }

    void PolylineOptions_SetAlpha(PolylineOptions obj, float col)
    {
        try
        {
            Java.Lang.Reflect.Method method = obj.Class.GetMethod("alpha", new Java.Lang.Class[] { Java.Lang.Float.Type });
            method.Invoke(obj, new Java.Lang.Object[] { col });
        }
        catch (Java.Lang.SecurityException e)
        {
            // exception handling here
        }
        catch (Java.Lang.NoSuchMethodException e)
        {
            // exception handling here
        }
    }

    void Polyline_SetAlpha(Polyline obj, float col)
    {
        try
        {
            Java.Lang.Reflect.Method method = obj.Class.GetMethod("alpha", new Java.Lang.Class[] { Java.Lang.Float.Type });
            method.Invoke(obj, new Java.Lang.Object[] { col });
        }
        catch (Java.Lang.SecurityException e)
        {
            // exception handling here
        }
        catch (Java.Lang.NoSuchMethodException e)
        {
            // exception handling here
        }
    }