簡體   English   中英

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

[英]removeMapObject method does not work in android premium HERE SDK 3.2.2

我將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。 我在項目中替換了jniLibs文件夾和3.2.2的HERE-SDK jar

無論3.2.1和3.2.2,這都不應該起作用。 這可能是以前甚至可以解決的錯誤。

在MapRoute上調用new會創建一個本機支持的對象的句柄。 您的示例代碼暗示您也以這種方式添加了MapRoute,但從未對其進行處理。

每個MapRoute對象都是唯一的,因此“ new”關鍵字與任何以前添加的對象都沒有關聯。

正確的解決方案應該是:

    // 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]);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM