gpt4 book ai didi

android - 如何在 Xamarin 中为谷歌地图实现标记聚类

转载 作者:太空狗 更新时间:2023-10-29 16:31:14 26 4
gpt4 key购买 nike

我已在我的应用程序中成功实现了 Google map 。我必须为 Xamarin Android 实现标记聚类。

link这里对如何实现给出了很好的解释,但我无法理解如何引用该包。

我得到的源文件很少,但它无济于事,因为我不知道如何引用 jar 文件。我得到的文档与 Java 有关,但与 C# 无关。以下是几个链接:

https://github.com/googlemaps/android-maps-utils https://forums.xamarin.com/discussion/13569/google-maps-android-api-utility-library-support/p2?

最佳答案

您想使用包含 android-maps-utils.aar 文件的 Xamarin.Android 绑定(bind)项目。

注意:我有forked一个较旧的 Github 存储库,其中包含一个绑定(bind)项目和示例,并将其更新为最新版本的 android-maps-utils.aar(截至本文时为 v0.4.3)。

只需克隆该存储库并将整个 GoogleMapsUtility 项目复制到您的 Xamarin.Android 解决方案中,然后将其添加到您的解决方案中(通过添加现有项目)。

然后您可以像往常一样创建 Google map ,即:

GoogleMapOptions mapOptions = new GoogleMapOptions()
.InvokeMapType(GoogleMap.MapTypeNormal)
.InvokeZoomControlsEnabled(true)
.InvokeMapToolbarEnabled(true)
.InvokeZoomGesturesEnabled(true)
.InvokeRotateGesturesEnabled(true)
.InvokeCompassEnabled(true);

然后您可以将 map 标记添加到 ClusterManager 并让它管理集群:

_clusterManager = new ClusterManager(this, _map);
_clusterManager.SetOnClusterClickListener(this);
_clusterManager.SetOnClusterItemClickListener(this);
_map.SetOnCameraChangeListener(_clusterManager);
_map.SetOnMarkerClickListener(_clusterManager);

我修改了原始示例以在日志中创建 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);
}

enter image description here

关于android - 如何在 Xamarin 中为谷歌地图实现标记聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38323777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com