我想在标记的顶部上添加一个自定义布局信息窗口。 Android这里的地图基本包具有以下功能 Map.InfoBubbleAdapter(),hideInfoBubble,getInfoBubbleContents和isInfoBubbleVisible ,这些功能现在缺少 >高级 包装。
中被建议这是问题列表。
信息窗口在我尝试放大(即使我没有 )时变得可见在布局的可见性上进行强力调整调整。
infoWindow 的位置在设置为mapOverlay的 geoCordinate 上不是。 / p>
我有 20个不同的标记,我想在用户点击任意标记并关闭上一个标记时显示自定义信息窗口。 我尝试了下面的代码,但无法正常工作,并且似乎没有有关实现的文档。
@Override
public boolean onMapObjectsSelected(List<ViewObject> objects) {
for (ViewObject object : objects) {
if (object.getBaseType() == ViewObject.Type.USER_OBJECT && ((MapObject) object).getType() == MapObject.Type.MARKER) {
MapMarker mapMarker = (MapMarker) object;
if(!isMapMarkerViewVisible()){
setInfoWindow(mapMarker);
}else{
removeInfoWindow();
}
return true;
}
}
return false;
}
@Override
public boolean onTapEvent(PointF pointF) {
for (MapObject mapObject : mapObjects) {
if (mapObject.getType() == MapObject.Type.MARKER) {
removeInfoWindow();
}
}
return super.onTapEvent(pointF);
}
private void setInfoWindow(MapMarker mMark) {
infoWindowText.setText(mMark.getTitle());
infoWindowText.setTag(mMark.getTitle());
mapOverlay = new MapOverlay(infoWindowView, mMark.getCoordinate());
hereMap.addMapOverlay(mapOverlay);
}
private boolean isMapMarkerViewVisible(){
return infoWindowView.getVisibility() == View.VISIBLE;
}
private void removeInfoWindow() {
if(infoWindowView!=null) {
if (infoWindowView.getVisibility() == View.VISIBLE) {
infoWindowView.setVisibility(View.INVISIBLE);
}
}
}
以上代码的行为异常。
当我尝试放大和缩小时,信息窗口会奇怪地显示。即使我没有未设置可见性。 上面的链接包含正在运行的代码,但现在不支持。
答案 0 :(得分:0)
与MapMarkers不同,MapLabeledMarkers避免与其他用户定义的带标签的图标以及地图上的内置图标和文本重叠。通过指定IconCategory或使用图像,可以使用内置POI图标。可以为图标指定多语言文本。根据Map的当前语言和辅助语言,可以显示不同的文本语言。
MapLabeledMarker(GeoCoordinate loc)
在具有默认POI图标的特定GeoCoordinate处创建MapLabeledMarker。
MapLabeledMarker(GeoCoordinate loc, Image icon)
在具有指定图像的特定GeoCoordinate处创建一个MapLabeledMarker。
有关详细参考,请参考并升级到最新版本的SDK:https://developer.here.com/documentation/android-premium/api_reference_java/com/here/android/mpa/mapping/MapLabeledMarker.html