public void RemoveChild(MarkerWrapper marker) { for (int i = 0; i < count; i++) { if (childs[i] == marker) { for (int j = i; j < count - 1; j++) { childs[j] = childs[j + 1]; } count--; totalCount--; Cluster p = parent; while (p != null) { p.totalCount--; p.Update(); p = p.parent; } childs[count] = null; if (count == 1 && parent != null) { if (childs[0] is MarkerWrapper) { parent.Replace(this, childs[0] as MarkerWrapper); Dispose(); } } break; } } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.SecondView); var viewModel = (SecondViewModel) ViewModel; var mapFragment = (SupportMapFragment)SupportFragmentManager.FindFragmentById(Resource.Id.map); var options = new MarkerOptions(); options.SetPosition(new LatLng(viewModel.Han.Location.Lat, viewModel.Han.Location.Lng)); options.SetTitle("Han"); options.Draggable(true); var hanMarker = mapFragment.Map.AddMarker(options); _han = new MarkerWrapper(hanMarker); mapFragment.Map.MarkerDragEnd += (sender, args) => { _han.FirePositionChangedFromMap(); }; var set = this.CreateBindingSet<SecondView, SecondViewModel>(); set.Bind(_han) .For(m => m.Position) .To(vm => vm.Han.Location) .WithConversion(new LocationToLatLngValueConverter(), null); set.Apply(); }
public ClusterItem Add(MarkerWrapper marker) { totalCount++; if (zoom < instance.clusterToZoom) { int mx, my; int z = zoom + 1; marker.GetTilePosition(z, out mx, out my); for (int i = 0; i < count; i++) { ClusterItem item = childs[i]; if (item.CompareTiles(z, mx, my)) { if (item is Cluster) { (item as Cluster).Add(marker); } else { Cluster c = new Cluster(z, item as MarkerWrapper, marker) { parent = this }; childs[i] = c; } return(item); } } } AddChild(marker); return(this); }
public Cluster(int zoom, MarkerWrapper marker1, MarkerWrapper marker2) : this(zoom) { totalCount = 2; marker1.GetTilePosition(zoom, out tileX, out tileY); projection.TileToCoordinates(tileX + 0.5, tileY + 0.5, zoom, out longitude, out latitude); if (zoom < instance.clusterToZoom) { int mx1, my1, mx2, my2; marker1.GetTilePosition(zoom + 1, out mx1, out my1); marker2.GetTilePosition(zoom + 1, out mx2, out my2); if (mx1 == mx2 && my1 == my2) { AddChild(new Cluster(zoom + 1, marker1, marker2)); } else { AddChild(marker1); AddChild(marker2); } } else { AddChild(marker1); AddChild(marker2); } }
public void OnMapReady(GoogleMap map) { _map = map; _map.UiSettings.ZoomControlsEnabled = true; _map.UiSettings.CompassEnabled = true; _map.UiSettings.SetAllGesturesEnabled(true); LatLng position = new LatLng(48.8833, 2.4667); MarkerOptions options = new MarkerOptions(); options.Draggable(true); options.SetTitle("Ma position"); options.SetPosition(position); _marker = new MarkerWrapper(_map.AddMarker(options)); _map.AnimateCamera(CameraUpdateFactory.NewLatLngZoom(position, 15)); _map.MarkerDrag += (sender, args) => { _marker.FirePositionChanged(); }; var set = this.CreateBindingSet <MapView, MapViewModel>(); set.Bind(_marker).For(m => m.Position).To(vm => vm.Location).WithConversion(new LocationToLatLngConverter(), null).TwoWay(); set.Apply(); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.SecondView); var viewModel = (SecondViewModel)ViewModel; var mapFragment = (SupportMapFragment)SupportFragmentManager.FindFragmentById(Resource.Id.map); var options = new MarkerOptions(); options.SetPosition(new LatLng(viewModel.Han.Location.Lat, viewModel.Han.Location.Lng)); options.SetTitle("Han"); options.Draggable(true); var hanMarker = mapFragment.Map.AddMarker(options); _han = new MarkerWrapper(hanMarker); mapFragment.Map.MarkerDragEnd += (sender, args) => { _han.FirePositionChangedFromMap(); }; var set = this.CreateBindingSet <SecondView, SecondViewModel>(); set.Bind(_han) .For(m => m.Position) .To(vm => vm.Han.Location) .WithConversion(new LocationToLatLngValueConverter(), null); set.Apply(); }
// Start is called before the first frame update void Start() { var FPALeft = GameObject.Find("FPALeft"); var FPARight = GameObject.Find("FPARight"); _enginePowerOutputLeft = new MarkerWrapper(FPALeft, LightMat, DarkMat); _enginePowerOutputRight = new MarkerWrapper(FPARight, LightMat, DarkMat); }
private void Replace(Cluster item1, MarkerWrapper item2) { if (count > 1) { for (int i = 0; i < count; i++) { if (childs[i] == item1) { childs[i] = item2; item2.parent = this; break; } } } else { parent.Replace(this, item2); Dispose(); } }
public MarkerWrapper FindMarkerWrapper(OnlineMapsMarker marker) { for (int i = 0; i < count; i++) { ClusterItem item = childs[i]; if (item is Cluster) { MarkerWrapper wrapper = (item as Cluster).FindMarkerWrapper(marker); if (wrapper != null) { return(wrapper); } } else if (item.markerRef == marker) { return(item as MarkerWrapper); } } return(null); }