Exemplo n.º 1
0
 private void AddMarker(Pin outerItem, ClusteredMarker marker)
 {
     outerItem.NativeObject = marker;
     onMarkerCreated(outerItem, marker);
     clusterManager.AddItem(marker);
     itemsDictionary.Add(marker.Id, outerItem);
 }
Exemplo n.º 2
0
        private void addItems()
        {
            // http://www.flickr.com/photos/sdasmarchives/5036248203/
            mClusterManager.AddItem(new Person(position(), "Walter", Resource.Drawable.walter));

            // http://www.flickr.com/photos/usnationalarchives/4726917149/
            mClusterManager.AddItem(new Person(position(), "Gran", Resource.Drawable.gran));

            // http://www.flickr.com/photos/nypl/3111525394/
            mClusterManager.AddItem(new Person(position(), "Ruth", Resource.Drawable.ruth));

            // http://www.flickr.com/photos/smithsonian/2887433330/
            mClusterManager.AddItem(new Person(position(), "Stefan", Resource.Drawable.stefan));

            // http://www.flickr.com/photos/library_of_congress/2179915182/
            mClusterManager.AddItem(new Person(position(), "Mechanic", Resource.Drawable.mechanic));

            // http://www.flickr.com/photos/nationalmediamuseum/7893552556/
            mClusterManager.AddItem(new Person(position(), "Yeats", Resource.Drawable.yeats));

            // http://www.flickr.com/photos/sdasmarchives/5036231225/
            mClusterManager.AddItem(new Person(position(), "John", Resource.Drawable.john));

            // http://www.flickr.com/photos/anmm_thecommons/7694202096/
            mClusterManager.AddItem(new Person(position(), "Trevor the Turtle", Resource.Drawable.turtle));

            // http://www.flickr.com/photos/usnationalarchives/4726892651/
            mClusterManager.AddItem(new Person(position(), "Teach", Resource.Drawable.teacher));
        }
        protected override ClusteredMarker CreateNativeItem(Pin outerItem)
        {
            var nativeMarker = new ClusteredMarker
            {
                MarkerPosition   = outerItem.Position.ToCoord(),
                Title            = outerItem.Label,
                Snippet          = outerItem.Address ?? string.Empty,
                Draggable        = outerItem.IsDraggable,
                Rotation         = outerItem.Rotation,
                GroundAnchor     = new CGPoint(outerItem.Anchor.X, outerItem.Anchor.Y),
                InfoWindowAnchor = new CGPoint(outerItem.InfoWindowAnchor.X, outerItem.InfoWindowAnchor.Y),
                Flat             = outerItem.Flat,
                ZIndex           = outerItem.ZIndex,
                Opacity          = 1f - outerItem.Transparency
            };

            if (outerItem.Icon != null)
            {
                var factory = imageFactory ?? DefaultImageFactory.Instance;
                nativeMarker.Icon = factory.ToUIImage(outerItem.Icon);
            }

            onMarkerCreating(outerItem, nativeMarker.ConvertToMarket());

            outerItem.NativeObject = nativeMarker;

            clusterManager.AddItem(nativeMarker);
            OnUpdateIconView(outerItem, nativeMarker);
            onMarkerCreated(outerItem, nativeMarker.ConvertToMarket());

            return(nativeMarker);
        }
        private void HandleMarkerUpdates(IChangeSet <ClusterMarker, string> changes)
        {
            Device.BeginInvokeOnMainThread(() =>
            {
                foreach (var change in changes)
                {
                    if (change.Reason == ChangeReason.Add)
                    {
                        renderedMarkers.Add(change.Current.Id, change.Current);
                        clusterManager.AddItem(change.Current);
                    }
                    else if (change.Reason == ChangeReason.Moved)
                    {
                        // since we aren't sorting we can ignore moves
                    }
                    else if (change.Reason == ChangeReason.Refresh)
                    {
                        // ignore refresh
                    }
                    else if (change.Reason == ChangeReason.Remove)
                    {
                        clusterManager.RemoveItem(renderedMarkers[change.Key]);
                        renderedMarkers[change.Key].Dispose();
                        renderedMarkers.Remove(change.Key);
                    }
                    else if (change.Reason == ChangeReason.Update)
                    {
                        var origMarker = clusterManager.MarkerCollection.Markers.FirstOrDefault(x => x.Title == change.Current.Title);
                        if (origMarker != null)
                        {
                            origMarker.Position         = change.Current.Position;
                            renderedMarkers[change.Key] = change.Current;
                        }
                        else
                        {
                            clusterManager.RemoveItem(renderedMarkers[change.Key]);
                            renderedMarkers[change.Key] = change.Current;
                            clusterManager.AddItem(change.Current);
                        }
                    }
                }

                clusterManager.Cluster();
            });
        }
Exemplo n.º 5
0
 public void OnAddSingleClusterItem()
 {
     if (_clusterManager != null)
     {
         var latLng            = new LatLng(51.5005642, -0.1241729);
         var clusterItem       = new ClusterItem(latLng, "Westminster Bridge", latLng.ToString());
         var westminsterBridge = clusterItem;
         _clusterManager.AddItem(westminsterBridge);
     }
 }
Exemplo n.º 6
0
        private void AddClusterItems()
        {
            int i = 0;

            foreach (var p in GetRandomLocations(200))
            {
                var item = new POIItem
                {
                    Location = p,
                    Name     = $"Item {i++}"
                };

                clusterManager.AddItem(item);
            }
        }
Exemplo n.º 7
0
        private void readItems()
        {
            Stream        inputStream = Resources.OpenRawResource(Resource.Raw.radar_search);
            List <MyItem> items       = new MyItemReader().read(inputStream);

            for (int i = 0; i < 100; i++)
            {
                double offset = i / 60d;
                foreach (MyItem item in items)
                {
                    LatLng position   = item.Position;
                    double lat        = position.Latitude + offset;
                    double lng        = position.Longitude + offset;
                    MyItem offsetItem = new MyItem(lat, lng);
                    mClusterManager.AddItem(offsetItem);
                }
            }
        }
        private void ReadJson()
        {
            Stream stream = Resources.OpenRawResource(Resource.Raw.radar_search);
            var    items  = ItemReader.StreamToClusterMarker(stream);

            for (int i = 0; i < 10; i++)
            {
                double offset = i / 60d;
                foreach (var item in items)
                {
                    var    position   = item.Position;
                    double lat        = position.Latitude + offset;
                    double lng        = position.Longitude + offset;
                    var    offsetItem = new ClusterMarker(lat, lng);
                    clusterManager.AddItem(offsetItem);
                }
            }
        }
        protected override void OnMapReady(GoogleMap map)
        {
            base.OnMapReady(map);

            _clusterManager = new ClusterManager(this.Context, map);
            //map.SetOnCameraChangeListener(_clusterManager);
            map.SetOnMarkerClickListener(_clusterManager);

            foreach (var tree in _trees)
            {
                var clusterItem = new TreeClusterItem(tree);
                _clusterManager.AddItem(clusterItem);
                //var point = new MarkerOptions();
                //point.SetPosition(new LatLng(tree.geometry.coordinates[1], tree.geometry.coordinates[0]));

                //map.AddMarker(point);
            }
        }
        /// <summary>
        /// Adds the cluster item to the ClusterManager.
        /// Example method from: https://developers.google.com/maps/documentation/android-api/utility/marker-clustering
        /// </summary>
        private void AddClusterItems()
        {
            // Set some lat/lng coordinates to start with.
            double lat = 51.5145160;
            double lng = -0.1270060;

            // Add ten cluster items in close proximity, for purposes of this example.
            for (int i = 0; i < 10; i++)
            {
                double offset = i / 60d;
                lat = lat + offset;
                lng = lng + offset;

                Tree tree = new Tree("Tree", lat, lng, "This is tree");

                _clusterManager.AddItem(new ClusterItem(tree));
            }
        }
Exemplo n.º 11
0
 public void addMarker(LatLng location)
 {
     clusterManager.AddItem(new Home(location.Latitude, location.Longitude, "대구광역시 수성구 동대구로38길", "원룸"));
 }