Dil*_*lip 2 android google-maps xamarin.android xamarin google-play-services
我已在我的应用中成功实施了Google地图.我必须为Xamarin Android实现Marker Clustering .
这里的链接提供了关于如何实现的良好解释,但我无法理解如何引用包.
我有几个源文件,但它没有帮助,因为我不知道如何引用jar文件.我得到的文件与Java有关,但与C#无关.以下是几个链接:
https://github.com/googlemaps/android-maps-utils https://forums.xamarin.com/discussion/13569/google-maps-android-api-utility-library-support/p2?
您想要使用Xamarin.Android包含该android-maps-utils.aar文件的Binding项目.
注意:我已经分叉了一个旧的Github仓库,其中包括一个绑定项目和示例,并将其更新到最新版本android-maps-utils.aar(v0.4.3截至本文).
只需克隆该repo并将整个GoogleMapsUtility项目复制到您的Xamarin.Android解决方案中,然后将其添加到您的解决方案中(通过Add Existing Project).
然后,您可以像平常一样创建Google地图,即:
GoogleMapOptions mapOptions = new GoogleMapOptions()
.InvokeMapType(GoogleMap.MapTypeNormal)
.InvokeZoomControlsEnabled(true)
.InvokeMapToolbarEnabled(true)
.InvokeZoomGesturesEnabled(true)
.InvokeRotateGesturesEnabled(true)
.InvokeCompassEnabled(true);
Run Code Online (Sandbox Code Playgroud)
然后,您可以将地图标记添加到其中,ClusterManager并让它管理群集:
_clusterManager = new ClusterManager(this, _map);
_clusterManager.SetOnClusterClickListener(this);
_clusterManager.SetOnClusterItemClickListener(this);
_map.SetOnCameraChangeListener(_clusterManager);
_map.SetOnMarkerClickListener(_clusterManager);
Run Code Online (Sandbox Code Playgroud)
我修改了原始示例以在日志中创建20个标记.螺旋模式以各种缩放级别测试群集:
private void AddClusterItems()
{
double lat = 47.59978;
double lng = -122.3346;
var items = new List<ClusterItem>();
// Create a log. spiral of markers to test clustering
for (int i = 0; i < 20; ++i)
{
var t = i * Math.PI * 0.33f;
var r = 0.005 * Math.Exp(0.1 * t);
var x = r * Math.Cos(t);
var y = r * Math.Sin(t);
var item = new ClusterItem(lat + x, lng + y);
items.Add(item);
}
_clusterManager.AddItems(items);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5456 次 |
| 最近记录: |