java - 将对象或类链接到 GoogleMap 标记

标签 java android marker google-maps-android-api-2

在 GoogleMap 应用程序中,我目前正在使用标记来标记船舶位置。我做了一艘 记录许多属性的类,例如船舶名称、纬度、经度、MMSI 代码等。当用户单击 map 上的众多标记之一时,将打开一个可单击的信息窗口。当该用户单击信息窗口时,将打开另一个 Activity ,显示有关该标记的详细信息。

好吧,至少最后一句话是我想要的。我可以提取纬度和经度位置,但仅此而已。问题是,虽然我有一个包含我需要的所有信息的 Ship 类,但它没有以任何引用方式连接到标记,我也不知道如何做这样的事情! p>

我最好的想法是让 Ship 扩展 Marker,但根据 Eclipse IDE,这是一个 final 类,因此无法扩展。

这是我的 Ship 类:

public class Ship {

    /** Ship has the following properties
     *  */
    private String shipname = "";
    private String MMSI = "XXXX";
    private double[] loc = new double[2];

    public Ship(String _shipname, String _MMSI, double[] _loc) {
        shipname = _shipname;
        MMSI = _MMSI;
        loc[0] = _loc[0]; // Latitude
        loc[1] = _loc[1]; // Longitude

    }
    public String getName() {
        return shipname;
    }
    public String getMMSI() {
        return MMSI;
    }
    public double getLat() {
        return loc[0];
    }
    public double getLongi() {
        return loc[1];
    }
}

同时,GoogleMap 标记是通过以下方式动态插入的:

public void setupRegion(GoogleMap map, ArrayList<Ship> ships) throws IOException {
        for(Ship ship : ships) {
            map.addMarker(new MarkerOptions()
               .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_red))
               .position(new LatLng(ship.getLat(), ship.getLongi()))
               .title(ship.getName())
               .snippet("Simulate"));
        }
}

最佳答案

而不是填充snippet()"Simulate" ,用您的 Ship 的一些唯一标识符填充它,这样您就可以查找 ShipDockWharfShipyardOnePercenterYachtClubHashMap<String,Ship>或您存储 Ship 的任何地方实例。

您还需要设置 InfoWindowAdapter ,因此您可以自定义信息窗口内容以不显示代码段(假设您正在使用信息窗口)。

关于java - 将对象或类链接到 GoogleMap 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14757699/

相关文章:

java - Java 与 C++ 中随机数生成实现的时间差异

c# - 一般函数题(C++/Java/C#)

java - 什么是 setTimeOut() javascript 到 Android 的等价物?

android - 如何使用通用图像加载器?

php - 使用 php 填充 javascript 数组

android - MapBox SDK如何获取marker的点击事件?

java - XML 的 XSL 排序

android - 为什么 FirebaseApp 初始化很慢,如何减少应用程序启动时间

java - 安卓java : Anonymous sign in with Firebase always fails

google-maps-api-3 - Google Maps Api 3 仅删除选定的标记