[英]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.