如何在按标记时显示名称?

问题描述:

我一直在与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的值存储在某个变量中?” =>请说明你的需要。

+0

您能否更详细地解释解决方案。我刚开始使用osmdroid和osmbonus包。 “是否可以将mname的值存储在某个变量中?” =>请说明你的需要。 我想存储在某些字符串变量中点击标记时显示的名称和描述,以便我可以对其进行处理。 – rahullab

+0

它们已经存储在字符串变量中,并且您已经可以操作它们了......尝试更明确地说明您想实现的目标。 – MKer