removeMapObject方法在android premium HERE SDK 3.2.2中不起作用

时间:2016-10-19 05:01:10

标签: android here-api

我将android premium HERE SDK 3.2.1更改为3.2.2现在我遇到了明确路线的问题。

for(int i = 0 ; i < list_routes.size() ; i++)
{
    MapRoute mapRoute = new MapRoute(list_routes.get(i).getRoute());
    m_map.removeMapObject(mapRoute);
}

此代码段适用于3.2.1但不适用于3.2.2。我在项目中替换了3.2.2的 jniLibs文件夹 HERE-sdk jar

1 个答案:

答案 0 :(得分:2)

无论3.2.1和3.2.2如何,这都不应该有效。这可能是它之前甚至有效的错误。

在MapRoute上调用new会为本机支持的对象创建句柄。您的示例代码意味着您也以这种方式添加了MapRoute,但从未保留过它们的句柄。

每个MapRoute对象都是唯一的,因此&#34; new&#34; keyword与之前添加的任何对象都没有关联。

正确的解决方案应该是:

    // Keep the list of MapRoute Objects.
    List<MapRoute> routes = new ArrayList<MapRoute>();
    for(int i = 0 ; i < list_routes.size() ; i++)
    {
        MapRoute mapRoute = new MapRoute(list_routes.get(i).getRoute());
        routes.add(mapRoute);
        m_map.addMapObject(mapRoute);
    }
    // Later when you want to remove the routes.
    for(int i = 0 ; i < list_routes.size() ; i++)
    {
        m_map.removeMapObject(routes[i]);
    }