【问题标题】:get data from ballon on ballon tap from google map从谷歌地图的气球胶带上获取气球的数据
【发布时间】:2015-03-20 18:42:48
【问题描述】:

当我点击标记时,我在谷歌地图中显示了纬度和经度,它会显示一个气球,上面写着画廊名称和地址 我想当我点击气球时获取画廊名称如何实现以下是我的代码:

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    mapView = (MapView) findViewById(R.id.map);
    mapView.setBuiltInZoomControls(true);
    mapOverlays = mapView.getOverlays();
    drawable1 = getResources().getDrawable(R.drawable.greenballon);
    itemizedOverlay = new MyItemizedOverlay(drawable1, mapView);
    drawable2 = getResources().getDrawable(R.drawable.blueballon);
    itemizedOverlay2 = new MyItemizedOverlay(drawable2, mapView);
    drawable3 = getResources().getDrawable(R.drawable.redballon);
    itemizedOverlay3 = new MyItemizedOverlay(drawable3, mapView);

    for(int i=0;i<20;i++)
    {
            if(sitesList.getType().get(i).equalsIgnoreCase("Centros Culturales"))
            {

         name = sitesList.getLatitude().get(i);
         name1 = sitesList.getLongitude().get(i);
        Log.i("centos culturales lat" + i,name);
        Log.i("culturarls longitiitude"+i,name1);
        point = new GeoPoint((int) (Double.parseDouble(name) * 1E6),
                    (int) (Double.parseDouble(name1) * 1E6));
        OverlayItem overlayItem = new OverlayItem(point, sitesList.getGalleryname().get(i), 
                             sitesList.getAddress().get(i));
                     itemizedOverlay.addOverlay(overlayItem);
    }
    }
for(int i=0;i<sitesList.getLatitude().size();i++)
        {
                if(sitesList.getType().get(i).equalsIgnoreCase("Centros Culturales"))
                {

             name = sitesList.getLatitude().get(i);
             name1 = sitesList.getLongitude().get(i);
            Log.i("centos culturales lat" + i,name);
            Log.i("culturarls longitiitude"+i,name1);
            point = new GeoPoint((int) (Double.parseDouble(name) * 1E6),
                        (int) (Double.parseDouble(name1) * 1E6));
            OverlayItem overlayItem = new OverlayItem(point, sitesList.getGalleryname().get(i), 
                                 sitesList.getAddress().get(i));
                         itemizedOverlay.addOverlay(overlayItem);
        }
        }
        for(int i=0;i<sitesList.getLatitude().size();i++)
        {
                if(sitesList.getType().get(i).equalsIgnoreCase("Residencias"))
                {

             name = sitesList.getLatitude().get(i);
             name1 = sitesList.getLongitude().get(i);
            Log.i("residencias latitute" + i,name);
             Log.i("residencias longitiitude"+i,name1);
             point3 = new GeoPoint((int) (Double.parseDouble(name) * 1E6),
                        (int) (Double.parseDouble(name1) * 1E6));
                         OverlayItem overlayItem = new OverlayItem(point3,        sitesList.getGalleryname().get(i), 
                                 sitesList.getAddress().get(i));
                         itemizedOverlay2.addOverlay(overlayItem);
        }
        }
                mapOverlays.add(itemizedOverlay);
        mapOverlays.add(itemizedOverlay2);
**//actuaaly i show lat long in google map according to "gallery type"..so here how to get data on tap of baloon...??????**
               @Override
        protected boolean onBalloonTap(int index, OverlayItem item) {


    for(int i=0;i<sitesList.getLatitude().size();i++)
                    {
                            if(sitesList.getType().get(i).equalsIgnoreCase("Centros Culturales"))
                            {

                                  array_galleryname1 = new String[sitesList.getGalleryname().size()];
                                  array_galleryurl1 = new String[sitesList.getImagesurl().size()];
                                  galleryname = sitesList.getGalleryname().get(i);
                                  galleryurl = sitesList.getImagesurl().get(i);
                                  array_galleryname1[index] = galleryname;
                                  array_galleryurl1[index] = galleryurl;



                            }

                 }
                    Toast.makeText(c,  array_galleryname1[index] + index,
                            Toast.LENGTH_LONG).show();  

                    for(int i=0;i<sitesList.getLatitude().size();i++)
                    {                                    if(sitesList.getType().get(i).equalsIgnoreCase("Residencias"))
                            {
                array_galleryname = new String[sitesList.getGalleryname().size()];
                  array_galleryurl1 = new     String[sitesList.getImagesurl().size()];
                                  galleryname = sitesList.getGalleryname().get(i);
                                  galleryurl = sitesList.getImagesurl().get(i);

                    array_galleryname[index] = galleryname;
                    array_galleryurl1[index] = galleryurl;



                            }



                 }

【问题讨论】:

  • 看到这个question你肯定会得到你的答案...
  • stackoverflow.com/questions/4486864/… 这是您可以回答的链接。我希望这会有所帮助。
  • ballon 有三个主要的类文件.. 使用它.. 在你的主 MapActivty 中添加这一行..Drawable drawable = ctx.getResources().getDrawable(R.drawable.pin2); itemizedOverlay = new MyItemizedOverlay(drawable, myMap); OverlayItem overlayItem = new OverlayItem(gp, name,address); itemizedOverlay.addOverlay(overlayItem); mapOverlays.add(itemizedOverlay); myMC.setCenter(gp); myMC.setZoom(16);
  • 这正是我所做的,但现在的问题是如何从气球中获取数据以显示在吐司中或以其他方式使用...意味着我的覆盖项包含名称和地址如何在气球上点击它,..请解释一下
  • 我可以在点击标记时显示气球的弹出窗口,但现在问题是如何获取气球中的数据?????请解释一下??

标签: android


【解决方案1】:

你必须重写 onTap() 。 请参阅此链接。 http://developer.android.com/resources/tutorials/views/hello-mapview.html

【讨论】:

  • 我做了更多的事情,因为点击标记它会显示气球,我已经在上面填写了一些信息现在qus是如何在气球上点击这些数据??
  • 亲爱的,实际上我正在显示按“类型”分类的不同颜色的标记,并且在叠加项目上我填写了一些信息,这些信息显示在气球中,现在我想在点击气球时获得这个值。 .
猜你喜欢
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多