如何在按标记时显示名称?
问题描述:
我一直在与osmdroidbonus工作,但与例如我必须显示完整的信息,如名称和说明。 我只想显示名称而不是描述。 是否有可能在某些变量中存储mname的值?如何在按标记时显示名称?
//Get OpenStreetMap content as KML with Overpass API:
OverpassAPIProvider overpassProvider = new OverpassAPIProvider();
BoundingBox oBB = new BoundingBox(startPoint.getLatitude() + 0.25, startPoint.getLongitude() + 0.25,
startPoint.getLatitude() - 0.25, startPoint.getLongitude() - 0.25);
String oUrl = overpassProvider.urlForTagSearchKml("amenity="+school, oBB, 100, 100);
boolean ok = overpassProvider.addInKmlFolder(mKmlDocument.mKmlRoot, oUrl);
if (ok) {
//13.1 Simple styling
Drawable defaultMarker = ResourcesCompat.getDrawable(getResources(), R.drawable.marker_kml_point, null);
Bitmap defaultBitmap = ((BitmapDrawable) defaultMarker).getBitmap();
Style defaultStyle = new Style(defaultBitmap, 0x911010AA, 50.0f, 0x20CC1010);
//13.2 Advanced styling with Styler
KmlFeature.Styler styler = new MyKmlStyler(defaultStyle);
FolderOverlay kmlOverlay = (FolderOverlay) mKmlDocument.mKmlRoot.buildOverlay(map, defaultStyle, styler, mKmlDocument);
map.getOverlays().add(kmlOverlay);
BoundingBox bb = mKmlDocument.mKmlRoot.getBoundingBox();
if (bb != null) {
//map.zoomToBoundingBox(bb, false); //=> not working in onCreate - this is a well-known osmdroid issue.
//Workaround:
setInitialViewOn(bb);
/* String a = mKmlDocument.mKmlRoot.mName;
Log.d(TAG,a);*/
}
}
答
“我只想显示名称而不是描述。” =>实际上,没有设置描述。只有子描述被设置。来自KML标签。 因此,一个可能的解决方案:在overpassProvider.addInKmlFolder之后,构建覆盖之前,通过mKmlDocument.mKmlRoot地标循环,并删除每个地标的扩展数据(thePlacemark.mExtendedData = null)。
“是否可以将mname的值存储在某个变量中?” =>请说明你的需要。
您能否更详细地解释解决方案。我刚开始使用osmdroid和osmbonus包。 “是否可以将mname的值存储在某个变量中?” =>请说明你的需要。 我想存储在某些字符串变量中点击标记时显示的名称和描述,以便我可以对其进行处理。 – rahullab
它们已经存储在字符串变量中,并且您已经可以操作它们了......尝试更明确地说明您想实现的目标。 – MKer