如何在Android中将标记设置为Google Map的标记?

Zin*_*tet 23 android google-maps

我正在尝试根据POJO id为每个匹配 API的标记设置onInfoWindowClickListener.这就是我在设置onInfoWindowClick事件时发现的.

googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {

        @Override
        public void onInfoWindowClick(Marker marker) {
            // TODO Auto-generated method stub

        }
    });
Run Code Online (Sandbox Code Playgroud)

不过,我需要设置相关的POJO的ID作为标签相关的标志物我之前做googleMap.addMarker(marker).但没有这样的事情marker.setTag().如何在不设置标签的情况下放置我的ID?

Bal*_*yak 74

现在你可以这样做

将您的Google Play服务版本更新为

com.google.android.gms:play-services:9.4.0

Marker marker=mMap.addmarker(new MarkerOptions(LatLang));
// set object as tag
marker.setTag(your object)

// to retrieve the marker
marker.getTag();// Type cast to your object type;
Run Code Online (Sandbox Code Playgroud)

  • 这是宝贵的信息.顺便说一句,谢谢你. (6认同)
  • 更新"Google Play服务"为我做了这件事.然而,在使用`gradle` sync将版本更改为9.4.0后,我出错了.我不得不关闭`Android Studio`,打开`SDK Manager`,更新`Google Repository`.之后`gradle`同步工作. (2认同)

M D*_*M D 5

我有一个方法.只需HashMap使用您的主要Marker和另一个创建,并根据特定 点击POJO Class返回您POJO ClassMarkergetInfoContents(.....)


Moh*_*sim 5

尝试在地图标记上调用 setTag() 方法,而不是在 MarkerOptions 对象上调用。例如,

private void addMk(LatLng latLng, String title, String snips,String tagId) {
 MarkerOptions options = new MarkerOptions()
                .position(latLng)
                .title(title)
                .snippet(snips);
        
                 googleMap                 //Google googleMap object for map reference
                .addMarker(options)
                .setTag(tagId);

    }

googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {

        @Override
        public void onInfoWindowClick(Marker marker) {
            // TODO Auto-generated method stub
              
               String tagId= String.valueOf(marker.getTag());
                Log.d(TAG, "onInfoWindowClick: TAG_ID "+tagId);
        }
    }); 
Run Code Online (Sandbox Code Playgroud)

希望,这有效!