旧版本有方法showInfoBubble()但在此地图的sdk 3.6中已弃用,现在如何在标记上显示信息。
以下是代码。
MapMarker marker = new MapMarker();
GeoCoordinate geoCoordinate = new GeoCoordinate(c.getLat(), c.getLng());
marker.setCoordinate(geoCoordinate);
marker.setTitle(c.getTicket());
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Name : " + (TextUtils.isEmpty(c.getName()) ? "N/A" : c.getName().trim()) + "\n");
stringBuilder.append("Address : " + (TextUtils.isEmpty(c.getStreetAddress()) ? "N/A" : c.getStreetAddress().trim()) + "\n");
stringBuilder.append("Telephone : " + (TextUtils.isEmpty(c.getTelephone()) ? "N/A" : c.getTelephone().trim()));
marker.setDescription(stringBuilder.toString());
mMap.addMapObject(marker);
MapOverlay mapOverlay = new MapOverlay(view,marker.getCoordinate());
mMapOverlay.put(c.getId(), mapOverlay);
答案 0 :(得分:1)
HEREMobileSDK中的infoBubble已经推荐了很长时间。在弃用消息中,建议切换到MapOverlay:https://developer.here.com/documentation/android-premium/topics_api_nlp_hybrid_plus/com-here-android-mpa-mapping-mapoverlay.html#topic-apiref
那么,这意味着什么: 您应该使用MapOverlay,而不是在HERE mSDK中显示非常静态/预定义的信息块,这样您就可以将完整的View对象(Android视图)作为叠加层添加到地图上的固定位置。
在您的情况下,您可能希望收听标记点击事件,如果发生这种情况,则添加一个Android视图,该视图将您希望它作为MapOverlay的方式添加到地图中。 Map叠加层的构造如下:MapOverlay(视图视图,GeoCoordinate坐标)并将固定到给定位置。
保留对MapOverlay的引用,因为当它出现和消失时你需要自己处理。