Android工作室;将 .title 和 .snippet 信息添加到 ArrayList <LatLng>
Android studio; add .title and .snippet info to ArrayList <LatLng>
所以我想通过 Arraylist 显示各种经纬度位置以作为标记显示在我的地图上,并显示它们的名称 + 自定义信息(在这个例子中我只显示两个位置):
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
ArrayList <LatLng> arrayList=new ArrayList<LatLng>();
LatLng basketball = new LatLng(50.375199, 5.883950);
LatLng football = new LatLng(50.370330, 5.901570);
添加他们:
arrayList.add(basketball);
arrayList.add(football);
并将它们显示为标记:
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
for (int i=0;i<arrayList.size();i++) {
mMap.addMarker(new MarkerOptions().position(arrayList.get(i)).title("Basketball Court").snippet("It's a sunny square"));
mMap.animateCamera(CameraUpdateFactory.zoomTo(15.0f));
mMap.moveCamera(CameraUpdateFactory.newLatLng(arrayList.get(i))); }
虽然这可行,但问题显然是我所有的标记都具有相同的标题和 .snippet 信息。
我的问题是:如何将信息添加到我的 arrayList 中的每个位置,并通过 .title 和 .snippet 在每个标记上显示它。
我真的很期待一些答案,但似乎找不到任何答案。提前致谢:)
我想您需要创建自定义包装器 class。像
class MyModel{
LatLng latLng;
String title;
String snippet;
}
然后使用 ArrayList<MyModel> list
并根据列表中的位置填充标题和摘要。
所以我找到了一个方法:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener()
{
@Override
public void onInfoWindowClick(Marker arg0) {
}
});
LatLng basketb = new LatLng(52.275000, 4.28000);
LatLng footb = new LatLng(52.575441, 4.514373);
// etc. etc. etc.
mMap.addMarker(new MarkerOptions()
.position(basketb)
.title("Basketball Court")
.snippet("Its a sunny place."));
mMap.addMarker(new MarkerOptions()
.position(footb)
.title("Football Court")
.snippet("It's a crowdy place."));
// etc. etc. etc.
mMap.moveCamera(CameraUpdateFactory.newLatLng(basketb));
mMap.moveCamera(CameraUpdateFactory.newLatLng(footb));
所以我想通过 Arraylist 显示各种经纬度位置以作为标记显示在我的地图上,并显示它们的名称 + 自定义信息(在这个例子中我只显示两个位置):
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
ArrayList <LatLng> arrayList=new ArrayList<LatLng>();
LatLng basketball = new LatLng(50.375199, 5.883950);
LatLng football = new LatLng(50.370330, 5.901570);
添加他们:
arrayList.add(basketball);
arrayList.add(football);
并将它们显示为标记:
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
for (int i=0;i<arrayList.size();i++) {
mMap.addMarker(new MarkerOptions().position(arrayList.get(i)).title("Basketball Court").snippet("It's a sunny square"));
mMap.animateCamera(CameraUpdateFactory.zoomTo(15.0f));
mMap.moveCamera(CameraUpdateFactory.newLatLng(arrayList.get(i))); }
虽然这可行,但问题显然是我所有的标记都具有相同的标题和 .snippet 信息。
我的问题是:如何将信息添加到我的 arrayList 中的每个位置,并通过 .title 和 .snippet 在每个标记上显示它。
我真的很期待一些答案,但似乎找不到任何答案。提前致谢:)
我想您需要创建自定义包装器 class。像
class MyModel{
LatLng latLng;
String title;
String snippet;
}
然后使用 ArrayList<MyModel> list
并根据列表中的位置填充标题和摘要。
所以我找到了一个方法:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener()
{
@Override
public void onInfoWindowClick(Marker arg0) {
}
});
LatLng basketb = new LatLng(52.275000, 4.28000);
LatLng footb = new LatLng(52.575441, 4.514373);
// etc. etc. etc.
mMap.addMarker(new MarkerOptions()
.position(basketb)
.title("Basketball Court")
.snippet("Its a sunny place."));
mMap.addMarker(new MarkerOptions()
.position(footb)
.title("Football Court")
.snippet("It's a crowdy place."));
// etc. etc. etc.
mMap.moveCamera(CameraUpdateFactory.newLatLng(basketb));
mMap.moveCamera(CameraUpdateFactory.newLatLng(footb));