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。我在我的项目中替换了3.2.2的jniLibs文件夹和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 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。
不管 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]);
}