【问题标题】:Google maps api v2, on marker click to open a fragment on the mapGoogle maps api v2,在标记上单击以在地图上打开片段
【发布时间】:2014-05-10 18:25:39
【问题描述】:

我想实现的:

我希望我的标记(可点击)在我靠近它们时在地图顶部打开一个片段。 该片段将列出一些文字和图片。 我希望这个片段只覆盖 googlemap 的一部分并且可以关闭。

我已经在“sn-p”-thingy 中有一些基本信息,可以一键打开。 我还有一个函数,可以计算屏幕中间到某个位置的距离,并将其放入 sn-p。

我有一些代码:

    simLocatie.setLatitude((googlemap.getCameraPosition().target).latitude);
    simLocatie.setLongitude((googlemap.getCameraPosition().target).longitude);

    googlemap.addMarker(new MarkerOptions()
                  .title(een.getName())                                                    
                  .position(new LatLng(een.getLatitude(),een.getLongitude()))                                                       
                  .snippet("distance:"+simLocatie.distance(een))                                           
               .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_monument)));

提前致谢! 如果我对自己的解释不够好,请询问更多

【问题讨论】:

    标签: android android-fragments maps overlay


    【解决方案1】:

    实现 OnMarkerClickListener

    并使用此方法:(当您单击标记时会调用它)

    @Override
        public boolean onMarkerClick(Marker marker) {
            return false;
        }
    

    在这个函数中打开你的片段。

    http://developer.android.com/guide/components/fragments.html

    【讨论】:

      【解决方案2】:

      我想您的地图上的每个标记都有唯一的数据。

      当您从互联网或本地获取标记数据时,您应该将它们保存到 HashMap 中。

      HashMap<Marker, String> map=new HashMap<Marker, String>();
      for(MarkerInfo t : fetchedMarkerArray){
          /* add your markers to map, and everything what you need*/
      }
      

      当你需要访问数据时,你可以很容易地做到这一点(就像 Daan 说你应该实现 OnMarkerClickListener):

      onMarkerClick(Marker marker){
          MarkerInfo m = (MarkerInfo)map.get(marker);
          //show your fragment with data
      }
      

      如果您还有其他问题,请随时提出。

      【讨论】:

      • 是的,我们正在从本地数据库中获取不同位置(标记)的信息,我正在考虑将它们全部放在一个 ArrayList 中并使用它们的索引来获取它们。谢谢回复!
      • 因为稍后会获取数据,所以您可以更轻松地将数据保存到 HashMap 中。无论如何,您必须将索引保存到地图中,因为 Marker 类是最终的。
      猜你喜欢
      • 2013-03-30
      • 1970-01-01
      • 2012-02-04
      • 2013-04-11
      • 2013-07-19
      • 1970-01-01
      • 2013-06-03
      • 2012-12-31
      • 1970-01-01
      相关资源
      最近更新 更多