如何获取特定折线上的数据
How to get the data on a specific Polyline
我想在特定折线坐标上显示 Toast,例如,在此代码中我想在该特定折线上显示 Toast,但是,onPolylineClick Toast 显示的是最后的数据由程序读取,在本例中为 'polylineClicker2()'。
折线放置在我给定的各自坐标上,只有吐司在做程序上次读取的内容。
public void polylineClicker() {
LatLng postition1 = new LatLng(14.601796, 121.006707);
LatLng postition2 = new LatLng(14.601033, 120.998558);
PolylineOptions popOption = new PolylineOptions()
.add(postition1).add(postition2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption);
map.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
@Override
public void onPolylineClick(Polyline polyline) {
Toast.makeText(MainActivity.this, "Polyline near friends' house", Toast.LENGTH_SHORT).show();
}
});
}
public void polylineClicker2() {
LatLng position1 = new LatLng(14.617106, 120.989924);
LatLng position2 = new LatLng(14.616068, 120.990939);
PolylineOptions popOption = new PolylineOptions()
.add(position1).add(position2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption);
map.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
@Override
public void onPolylineClick(Polyline polyline) {
Toast.makeText(MainActivity.this, "Polyline near my house", Toast.LENGTH_SHORT).show();
}
});
}
您在 polylineClicker2
上设置的 GoogleMap.OnPolylineClickListener
覆盖了您在 polylineClicker
上设置的 GoogleMap.OnPolylineClickListener
(假设您在 polylineClicker
之前调用 polylineClicker2
).
您只需创建一个 GoogleMap.OnPolylineClickListener
,并且由于您需要不同的行为(不同的消息),您可以使用标签。使用您的代码:
public void polylineClicker() {
LatLng position1 = new LatLng(14.601796, 121.006707);
LatLng position2 = new LatLng(14.601033, 120.998558);
PolylineOptions popOption = new PolylineOptions()
.add(position1).add(position2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption).setTag("Polyline near friends' house");
}
public void polylineClicker2() {
LatLng position1 = new LatLng(14.617106, 120.989924);
LatLng position2 = new LatLng(14.616068, 120.990939);
PolylineOptions popOption = new PolylineOptions()
.add(position1).add(position2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption).setTag("Polyline near my house");
}
并在您需要的任何地方设置 GoogleMap.OnPolylineClickListener
,例如在调用 polylineClicker
和 polylineClicker2
之前在您的 onMapReady
上设置:
map.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
@Override
public void onPolylineClick(Polyline polyline) {
Toast.makeText(MainActivity.this, (String) polyline.getTag(), Toast.LENGTH_SHORT).show();
}
});
我想在特定折线坐标上显示 Toast,例如,在此代码中我想在该特定折线上显示 Toast,但是,onPolylineClick Toast 显示的是最后的数据由程序读取,在本例中为 'polylineClicker2()'。
折线放置在我给定的各自坐标上,只有吐司在做程序上次读取的内容。
public void polylineClicker() {
LatLng postition1 = new LatLng(14.601796, 121.006707);
LatLng postition2 = new LatLng(14.601033, 120.998558);
PolylineOptions popOption = new PolylineOptions()
.add(postition1).add(postition2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption);
map.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
@Override
public void onPolylineClick(Polyline polyline) {
Toast.makeText(MainActivity.this, "Polyline near friends' house", Toast.LENGTH_SHORT).show();
}
});
}
public void polylineClicker2() {
LatLng position1 = new LatLng(14.617106, 120.989924);
LatLng position2 = new LatLng(14.616068, 120.990939);
PolylineOptions popOption = new PolylineOptions()
.add(position1).add(position2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption);
map.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
@Override
public void onPolylineClick(Polyline polyline) {
Toast.makeText(MainActivity.this, "Polyline near my house", Toast.LENGTH_SHORT).show();
}
});
}
您在 polylineClicker2
上设置的 GoogleMap.OnPolylineClickListener
覆盖了您在 polylineClicker
上设置的 GoogleMap.OnPolylineClickListener
(假设您在 polylineClicker
之前调用 polylineClicker2
).
您只需创建一个 GoogleMap.OnPolylineClickListener
,并且由于您需要不同的行为(不同的消息),您可以使用标签。使用您的代码:
public void polylineClicker() {
LatLng position1 = new LatLng(14.601796, 121.006707);
LatLng position2 = new LatLng(14.601033, 120.998558);
PolylineOptions popOption = new PolylineOptions()
.add(position1).add(position2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption).setTag("Polyline near friends' house");
}
public void polylineClicker2() {
LatLng position1 = new LatLng(14.617106, 120.989924);
LatLng position2 = new LatLng(14.616068, 120.990939);
PolylineOptions popOption = new PolylineOptions()
.add(position1).add(position2).width(5).color(Color.YELLOW).clickable(true);
map.addPolyline(popOption).setTag("Polyline near my house");
}
并在您需要的任何地方设置 GoogleMap.OnPolylineClickListener
,例如在调用 polylineClicker
和 polylineClicker2
之前在您的 onMapReady
上设置:
map.setOnPolylineClickListener(new GoogleMap.OnPolylineClickListener() {
@Override
public void onPolylineClick(Polyline polyline) {
Toast.makeText(MainActivity.this, (String) polyline.getTag(), Toast.LENGTH_SHORT).show();
}
});