在 GoogleMap 应用程序中,我目前正在使用标记来标记船舶位置。我创建了一个Ship
记录许多属性的类,例如船名、纬度、经度、MMSI 代码等。当用户单击地图上的许多标记之一时,将打开一个生成的可单击信息窗口。当该用户单击信息窗口时,会打开另一个 Activity,显示有关该标记的详细信息。
好吧,至少最后一句话是我想要的。我可以提取纬度和经度位置,但其他的不多。问题是,虽然我有一个Ship
包含我需要的所有信息的类,但它没有以任何参考方式连接到标记,我也不知道如何做这样的事情!
我最好的想法是Ship
扩展 Marker,但这是一个final
根据 Eclipse IDE 的类,因此不能扩展。
这是我的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"));
}
}