コード例 #1
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Set up the cluster manager with default icon generator and renderer.
            var iconGenerator = new GMUDefaultClusterIconGenerator();
            var algorithm     = new GMUNonHierarchicalDistanceBasedAlgorithm();
            var renderer      = new GMUDefaultClusterRenderer(mapView: mapView, iconGenerator: iconGenerator);

            clusterManager = new GMUClusterManager(mapView: mapView, algorithm: algorithm, renderer: renderer);

            // Generate and add random items to the cluster manager.
            generateClusterItems();

            // Call cluster() after items have been added to perform the clustering and rendering on map.
            clusterManager.Cluster();

            // Register self to listen to both GMUClusterManagerDelegate and GMSMapViewDelegate events.
            var mapDelegate = new MapDelegate();

            clusterManager.SetDelegate(this, mapDelegate: mapDelegate);

            UIBarButtonItem removeButton = new UIBarButtonItem("Remove", UIBarButtonItemStyle.Plain, this, new ObjCRuntime.Selector("removeClusterManager"));

            NavigationItem.RightBarButtonItems = new UIBarButtonItem[] { removeButton };
        }
        public override void MovedToWindow()
        {
            base.MovedToWindow();

            if (mapDelegate == null)
            {
                mapDelegate = new MapDelegate(Control);
            }

            if (clusterManager == null)
            {
                var iconGenerator = new GMUDefaultClusterIconGenerator();
                var algorithm     = new GMUNonHierarchicalDistanceBasedAlgorithm();
                var renderer      = new GMUDefaultClusterRenderer(Control, iconGenerator)
                {
                    WeakDelegate = mapDelegate
                };
                clusterManager = new GMUClusterManager(Control, algorithm, renderer);
                clusterManager.SetDelegate(mapDelegate, mapDelegate);

                SubscribeToMarkers();

                Element.SetMapReady(DateTime.UtcNow.Ticks);
            }
        }
コード例 #3
0
        void AddCluster()
        {
            var googleMapView = mapView;             //use the real mapview init'd somewhere else instead of this
            var iconGenerator = new GMUDefaultClusterIconGenerator();
            var algorithm     = new GMUNonHierarchicalDistanceBasedAlgorithm();
            var renderer      = new GMUDefaultClusterRenderer(googleMapView, iconGenerator);

            renderer.WeakDelegate = this;

            clusterManager = new GMUClusterManager(googleMapView, algorithm, renderer);

            for (var i = 0; i <= kClusterItemCount; i++)
            {
                var lat = kCameraLatitude + extent * GetRandomNumber(-1.0, 1.0);

                var lng = kCameraLongitude + extent * GetRandomNumber(-1.0, 1.0);

                var name = $"Item {i}";

                IGMUClusterItem item = new POIItem(lat, lng, name);

                clusterManager.AddItem(item);
            }

            clusterManager.Cluster();

            clusterManager.SetDelegate(this, this);
        }
コード例 #4
0
        private void SetClusterManager()
        {
            mapDelegate = new MapDelegate(mapView);
            var iconGenerator = IconGeneratorWithImages();
            var algorithm     = new GMUNonHierarchicalDistanceBasedAlgorithm();
            var renderer      = new GMUDefaultClusterRenderer(mapView, iconGenerator)
            {
                WeakDelegate = mapDelegate
            };

            clusterManager = new GMUClusterManager(mapView, algorithm, renderer);
            clusterManager.SetDelegate(mapDelegate, mapDelegate);
            GenerateClusterItem();
            clusterManager.Cluster();
        }
コード例 #5
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            var set = this.CreateBindingSet <MapView, MapViewModel>();

            set.Apply();
            CameraPosition camera = CameraPosition.FromCamera(GetInitialCameraPosition(),
                                                              GetInitialCameraZoom());

            mapView = Google.Maps.MapView.FromCamera(CGRect.Empty, camera);
            mapView.MyLocationEnabled         = true;
            mapView.Settings.MyLocationButton = true;
            mapView.CameraPositionIdle       += MapView_CameraPositionIdle;
            mapView.InfoTapped       += MapView_InfoTapped;
            mapView.CoordinateTapped += MapView_CoordinateTapped;
            //mapView.WillMove += MapView_WillMove;
            ViewModel.Items.Changed += ItemsChanged;
            View.AddSubview(mapView);
            mapView.Frame = MapPlaceHolderView.Frame;

            var iconGenerator = new GMUDefaultClusterIconGenerator();
            var algorithm     = new GMUNonHierarchicalDistanceBasedAlgorithm();

            renderer = new GMUDefaultClusterRenderer(mapView, iconGenerator)
            {
                Delegate = new JunctionXClusterRendererDelegate(this)
            };

            clusterManager        = new GMUClusterManager(mapView, algorithm, renderer);
            mapView.TappedMarker += (map, marker) => SelectMarker(marker);

            ActivityButton.TouchDown  += ActivityButton_TouchDown;
            ActivityButton2.TouchDown += ActivityButton_TouchDown;
            AdoptButton.TouchDown     += AdoptButton_TouchDown;
            DetailsButton.TouchDown   += DetailsButton_TouchDown;
            DetailsButton2.TouchDown  += DetailsButton_TouchDown;
            CloseButton.TouchDown     += CloseButton_TouchDown;

            //var gest = new UITapGestureRecognizer(() => { View.SendSubviewToBack(MarkerInfoView);});
            //TapView.AddGestureRecognizer(gest);
        }
コード例 #6
0
        void UpdateAllPins()
        {
            var googleMapView = nativeMap;
            var iconGenerator = new GMUDefaultClusterIconGenerator();
            var algorithm     = new GMUNonHierarchicalDistanceBasedAlgorithm();
            GMUDefaultClusterRenderer renderer = null;

            try
            {
                renderer = new GMUDefaultClusterRenderer(googleMapView, iconGenerator);

                renderer.WeakDelegate = this;
                clusterManager        = new GMUClusterManager(googleMapView, algorithm, renderer);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }

            for (var i = 0; i < Map.Pins.Count; i++)
            {
                Pin pin = (Map.Pins[i] as Pin);
                var lat = pin.Position.Latitude;

                var lng = pin.Position.Longitude;

                var name = pin.Label;

                IGMUClusterItem item = new POIItem(lat, lng, name);

                clusterManager.AddItem(item);
            }

            clusterManager.Cluster();

            clusterManager.SetDelegate(this, this);
        }
コード例 #7
0
        public override async void ViewDidLoad()
        {
            base.ViewDidLoad();

            var googleMapView = mapView; //use the real mapview init'd somewhere else instead of this
            var iconGenerator = new GMUDefaultClusterIconGenerator();
            var algorithm     = new GMUNonHierarchicalDistanceBasedAlgorithm();
            var renderer      = new GMUDefaultClusterRenderer(googleMapView, iconGenerator);

            renderer.WeakDelegate = this;

            clusterManager = new GMUClusterManager(googleMapView, algorithm, renderer);

            JsonSerializer _serializer = new JsonSerializer()
            {
                DateTimeZoneHandling = DateTimeZoneHandling.Utc
            };

            using (HttpClient httpClient = new HttpClient(new HttpClientHandler {
                AutomaticDecompression = DecompressionMethods.GZip
            }))
            {
                Token token = null;
                httpClient.BaseAddress = new Uri(AppSettings.BaseAddress);
                FormUrlEncodedContent formUrlEncodedContent = new FormUrlEncodedContent(new Dictionary <String, String> {
                    { "client_id", AppSettings.Client_id },
                    { "client_secret", AppSettings.Client_secret },
                    { "grant_type", AppSettings.Grant_type }
                });
                using (HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, "/connect/token"))
                {
                    httpRequestMessage.Content = formUrlEncodedContent;
                    using (HttpResponseMessage httpResponseMessage = await httpClient.SendAsync(httpRequestMessage))
                    {
                        if (httpResponseMessage.IsSuccessStatusCode == true)
                        {
                            using (System.IO.Stream stream = await httpResponseMessage.Content.ReadAsStreamAsync())
                            {
                                using (System.IO.StreamReader streamReader = new System.IO.StreamReader(stream))
                                {
                                    using (JsonTextReader json = new JsonTextReader(streamReader))
                                    {
                                        token = _serializer.Deserialize <Token>(json);
                                    }
                                }
                            }
                        }
                    }
                }
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(token.token_type, token.access_token);

                using (HttpResponseMessage httpResponseMessage = await httpClient.GetAsync("/api/v1/pl/Locations/lots"))
                {
                    if (httpResponseMessage.IsSuccessStatusCode == true)
                    {
                        using (System.IO.Stream stream = await httpResponseMessage.Content.ReadAsStreamAsync())
                        {
                            using (System.IO.StreamReader streamReader = new System.IO.StreamReader(stream))
                            {
                                using (JsonTextReader json = new JsonTextReader(streamReader))
                                {
                                    Response <Lot[]> lots = _serializer.Deserialize <Response <Lot[]> >(json);
                                    for (int i = 0; i < lots.result.Length; i++)
                                    {
                                        IGMUClusterItem item = new POIItem(lots.result[i].latitude, lots.result[i].longitude, lots.result[i].name);
                                        clusterManager.AddItem(item);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            clusterManager.Cluster();

            clusterManager.SetDelegate(this, this);
        }