有没有办法从Xamarin Forms Maps自定义渲染器中访问google maps API?我想访问setZoom和getZoom等简单的东西,或者在圆圈中添加一个点击监听器。我意识到我可以使用Xamarin的MapSpan类进行缩放,但我想使用他们未能在google maps API中实现的许多功能。
更新 最终目标是创建圆形或小折线以用作额外的可点击对象。我真的不想要一个标记,因为我想动态地对它们进行颜色编码。我将使用这些可点击对象来调用代码来创建交互式弹出窗口。我已经有了自定义渲染器。我需要getZoom,因为我只想在显示某个缩放级别或更高级别时显示这些项目,或者地图只是一团物体。
我目前无法弄清楚如何将听众添加到像圆圈之类的东西。我正在尝试执行类似“google.maps.event.addListener”之类的操作,并将我的点击事件添加到一个圆圈中,但是我看不到这一点,也不是PolyLine的API点击事件。
答案 0 :(得分:0)
是的,这是可能的。
您必须编写自己的自定义渲染器才能完成此操作。
例如,在DF <- data.frame(A = c(1, NA, 1, 2), B = c(NA, 3, 3, 5))
DF
# A B
# 1 1 NA
# 2 NA 3
# 3 1 3
# 4 2 5
filter(DF, A == 1 | B == 3)
# A B
# 1 1 NA
# 2 NA 3
# 3 1 3
DT <- as.data.table(DF)
setkey(DT, "A", "B")
的自定义渲染器中,您就可以访问并实例化Android
之类的内容。
您需要为Android.Gms.Maps.GoogleMap
项目NuGet
添加GoogleMaps
,然后才能看到Android
命名空间等。
通过这样做,您可以根据自己的意愿公开尽可能多的Android.Gms.Maps.GoogleMap
。
更新1: -
要在GoogleMaps
上将相机移动到其他缩放级别,您需要创建一个新的Android
对象并指定CameraPosition
作为参数。
然后你可以: -
Map Zoom Level
然后最终在var objCameraUpdate = CameraUpdateFactory.NewCameraPosition(objMyCameraPosition);
对象上调用GoogleMaps
答案 1 :(得分:0)
如果您在.Droid项目中创建一个派生自MapRenderer的类,则您拥有一个名为NativeMap的属性,它是本机地图控件,它具有所有函数。
但是,您尝试使用旧的API,setZoom和getZoom不再存在,而是必须使用moveCamera,看看地图的SDK帮助:https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap