【问题标题】:Linking an object or class to GoogleMap marker将对象或类链接到 GoogleMap 标记
【发布时间】:2013-02-07 17:54:43
【问题描述】:

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

至少最后一句话是我想要的。我可以提取纬度和经度位置,但其他的不多。问题是,虽然我有一个 Ship 类,其中包含我需要的所有信息,但它并没有以任何参考方式连接到标记,我也不知道该怎么做!

我最好的想法是让 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"));
        }
}

【问题讨论】:

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


    【解决方案1】:

    不要用"Simulate" 填充snippet(),而是用你的Ship 的一些唯一标识符填充它,这样你就可以在DockWharfShipyard 中查找ShipOnePercenterYachtClubHashMap&lt;String,Ship&gt; 或您存储 Ship 实例的任何位置。

    您还需要设置InfoWindowAdapter,因此您可以自定义信息窗口内容以不显示 sn-p,假设您正在使用信息窗口。

    【讨论】:

      【解决方案2】:

      一种常用的解决方案是在您的 Activity 中保留 Map&lt;Marker, Ship&gt;,并在 onInfoWindowClick 回调(或任何其他方法)中执行 map.get(marker)

      你也可以试试我的库,它添加了 Marker.setData(Object)Marker.getData() 函数,这样你就可以在创建标记后将 Ship 实例放在那里并将它们放回 onInfoWindowClick 回调中。

      http://code.google.com/p/android-maps-extensions/

      【讨论】:

        猜你喜欢
        • 2011-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-09
        相关资源
        最近更新 更多