我可以在地图标记中包含哪些参数

What arguments can I include with a map marker

我正在创建一个显示 Parse 查询结果的地图。我可以将信息直接传递到标记中,例如标题或 lat/long,但我想包含一些附加信息(不显示),当用户单击标记时我可以使用这些信息。 例如,当用户单击标记时,我想从 Parse 查询(它只是一个字符串)中找到用户的 objectId。 我在标记 onClickListener 中尝试了以下代码以将字符串作为参数放入:

destPosition = marker.getPosition();
destLat = destPosition.latitude;
destLong = destPosition.longitude;
MarkerDialogFragment markerDialogFragment = new MarkerDialogFragment();
Bundle args = new Bundle();
args.putString("id", marker.getId());
args.putString("userId", userId);
args.putString("title", marker.getTitle());
args.putDouble("latitude", destLat);
args.putDouble("longitude", destLong);
markerDialogFragment.setArguments(args);

当我尝试通过获取参数在 "other side" 上提取此数据时,userId 始终显示为 null...我已将 userId 定义为:

 final String userId = parseUsers.get(i).getObjectId();

我什至尝试过对 userId 中的字符串进行硬编码,但当我尝试获取参数时它仍然返回 null:

 final String userId = "test userId";

这是标记 onCreateDialog 方法的获取参数代码:

builder = new AlertDialog.Builder(getActivity());
    final String markerId = getArguments().getString("id");
    final String userId = getArguments().getString("userId");
    final String title = getArguments().getString("title");
    final double destLat = getArguments().getDouble("latitude");
    final double destLong = getArguments().getDouble("longitude");        
    builder.setTitle(title)

当我使用调试器停止代码以查看值时,所有数据都按预期设置,并且我对除 userId 之外的每个项目都有值。谁能帮我指出正确的方向?我只是想传递一个与变量关联的值,并将其绑定到地图上创建的每个标记。谢谢!

您不能再向标记添加数据。 因此,如果您想向标记添加更多数据,则必须将其存储在具有标记 ID (getID())

的外部变量中

如-

HashMap<int,Object> extramarkerData = new HashMap<int,Object>();

并将数据放入hashmap

extramarkerData.put(marker.getId(),"additional data");