我已经使用数据库动态创建带有多个标记的Google Map,现在任何人都可以建议我如何单独创建每个标记的点击事件?如何处理Google地图标记点击?
回答
你可以这样做
private Marker marker1;
marker1 = mMap.addMarker(new MarkerOptions()
.position(LatLng(-31.952854, 115.857342))
.title("Title");
marker1.setTag(0);
mMap.setOnMarkerClickListener(this);
,并在实施监听的
@Override
public boolean onMarkerClick(final Marker marker) {
//marker.getTag()
}
使用此为多个标记:
首先让你的应用程序来实现GoogleMap.OnMarkerClickListener然后创建一个标记阵列:
Marker[] marker = new Marker[20]; //change length of array according to you
然后里面
onMapReady(){
mMap.setOnMarkerClickListener(this);
for(int i = 0 ; i < yourMarkerListsize ; i++) {
marker[i] = mMap.addMarker(new MarkerOptions()
.position(new LatLng(list(i).getLat(), list(i).getLon())
.anchor(0.5f, 0.5f)
.title(title)
.snippet(snippet)
.icon(yourIcon));
}
然后最后
@Override
public boolean onMarkerClick(Marker marker) {
//you can get assests of the clicked marker
return false;
}
希望它可以帮助!
谢谢你的建议,但我需要一个使用Xamarin而不是Java的C#代码,它是一个Java代码。 –
如果你正在寻找的这个Xamarin代码,以下是你如何做到这一点
GoogleMaps Gmap;
GMap.MarkerClick += GMap_MarkerClick;
GMap.InfoWindowClick += GMap_InfoWindowClick;
private void GMap_MarkerClick(object sender, GoogleMap.MarkerClickEventArgs e)
{
Marker marker = e.Marker;
marker.ShowInfoWindow();
}
private void GMap_InfoWindowClick(object sender, GoogleMap.InfoWindowClickEventArgs e)
{
}
这是你如何处理xamarin Android的希望都标记和标记信息的窗口中点击事件这可以帮助你。
谢谢您的建议,但您的代码只有一个标记值,这是我已经完成的。使用下面的代码 MarkerOptions options = new MarkerOptions()。SetPosition(latlng).SetTitle(dt.Rows [i] [“rating”]。ToString()+“:Click to request”); GMap.AddMarker(options); GMap.AddMarker(options); GMap = googleMap; –
所以你想要一个代码插入多个标记我想!? @PrashantBhatt –
是的,我们的谷歌地图屏幕中有多个标记,我们希望所有标记都有单独的标记点击事件。标记位置从数据库中设置,并使用FOR循环显示在地图上。 –
我觉得下面的方法可以帮助你:
正如其他人所说,你可以设置一个OnMarkerClickListener
到标记,以对标记点击事件,并使用URL添加发射活动,是指here。 因此,您可以将活动网址存储在数据库中。 当动态创建标记时,维护其关键将为Marker
类的对象的映射,并且值将为String
的URL。
如此,里面onMarkerClick()
方法:
@Override
public boolean onMarkerClick(Marker marker) {
String activityUrl = markerURLMap.get(marker);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(activityUrl));
startActivity(intent);
}
为了安装每点击标记唯一的网址,你需要如下附加您内Marker.Tag标签的对象:
UrlObject url = new UrlObject()
{
Url = "enteryoururlhere"
};
marker.Tag = UrlObject;
然后,您将通过呼叫以下内容获取每个标记唯一的网址:
public boolean onMarkerClick(Marker marker) {
UrlObject obj = marker.Tag;
String activityUrl = obj.Url;
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(activityUrl));
startActivity(intent);
}
你UrlObject类将是易于安装:
class UrlObject : Java.Lang.Object
{
public string Url { get; set; }
}
编辑:你会做标记,在你的每一个循环的标记。这样,当每个标记被创建时,它都被正确地标记为每个url。
- 1. 如何获得标记点击Google地图内的标记setOnInfoWindowClickListener
- 2. 如何处理Google地图android上的GeoJsonLayer上的标记点击事件?
- 3. 防止Google地图标记被点击
- 4. 在Google地图中标记点击
- 5. Google地图和透明点击标记
- 6. 如何在点击此处时更改标记图标地图
- 7. Google可视化API Geomap:如何处理标记点击事件?
- 8. 如何在点击Google地图标记时执行jquery回调?
- 9. 如何“模拟”Google地图标记上的点击?
- 10. 如何处理点击扩展图标?
- 11. 点击Google地图上的谷歌地图标记
- 12. 当标记点击Google地图时,如何从标记获取数据到BottomSheet
- 13. 点击标记时获取地址 - Google地图
- 14. 谷歌地图V3 “如何创建在地图标记点击”
- 15. 保存点击Google地图标记ID - 重置下一个标记图标点击
- 16. Google Maps API v3,点击时如何更改标记图标
- 17. Google地图标记
- 18. 谷歌地图 - 点击标记点击加载窗口点击
- 19. 如何更改地图框中点击标记的标记颜色和图标?
- 20. Google-Maps-for-Rails点击地图创建新标记
- 21. 使用角度Google地图标记点击事件
- 22. Google地图集群显示标记上的泡泡点击
- 23. 如何使用Google地图平滑地标记标记?
- 24. 处理大部分Google地图3标记
- 25. 如何使用Apple Carbon处理停靠点图标点击
- 26. 标记事件点击谷歌地图
- 27. 在地图上点击设置标记
- 28. 通过点击地图添加标记
- 29. 谷歌地图标记点击事件
- 30. 如何让Google地图在自定义标记下无法点击?
您打算通过单击标记来执行什么事件?小改动都一样吗?他们喜欢打开你的应用程序的活动吗? –
我想在每个标记点击事件上打开一个新的活动,它将显示为一个对话框。 –