我将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]);
}
关于android - removeMapObject方法在android premium HERE SDK 3.2.2中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40122507/