コード例 #1
0
        static IntPtr _CreateItem(IntPtr env, IntPtr __self, int index)
        {
            FixedItemizedOverlay self  = Java.Lang.Object.GetObject <FixedItemizedOverlay>(__self, JniHandleOwnership.DoNotTransfer);
            OverlayItem          value = self.CreateItem(index);

            return(JNIEnv.ToJniHandle(value));
        }
コード例 #2
0
        public void AddItem(GeoPoint p, string title, string snippet)
        {
            OverlayItem item = new OverlayItem(p, title, snippet);

            overlayItems.Add(item);
            Populate();
        }
コード例 #3
0
 /**
  * Sets the visibility of this overlay's balloon view to GONE and unfocus the item.
  */
 public void HideBalloon()
 {
     if (_balloonView != null)
     {
         _balloonView.Visibility = ViewStates.Gone;
     }
     _currentFocusedItem = null;
 }
コード例 #4
0
        protected override bool OnTap(int index)
        {
            OverlayItem item = (OverlayItem)overlayItems.ElementAt(index);

            AlertDialog.Builder dialog = new AlertDialog.Builder(context);
            dialog.SetTitle(item.Title);
            dialog.SetMessage(item.Snippet);
            dialog.Show();
            return(true);
        }
コード例 #5
0
        public MapOverlayItem (Context context, Drawable overlayDrawable, OverlayItem overlay, MapView mapView, bool canGetDirection = false)
            : base (overlayDrawable)
        {
            item = overlay;
            this.context = context;
            this.mapView = mapView;
            getDirections = canGetDirection;

            BoundCenterBottom (overlayDrawable);
            Populate ();

            assignmentViewModel = ServiceContainer.Resolve<AssignmentViewModel> ();
        }
コード例 #6
0
        public MapOverlayItem(Context context, Drawable overlayDrawable, OverlayItem overlay, MapView mapView, bool canGetDirection = false)
            : base(overlayDrawable)
        {
            item          = overlay;
            this.context  = context;
            this.mapView  = mapView;
            getDirections = canGetDirection;

            BoundCenterBottom(overlayDrawable);
            Populate();

            assignmentViewModel = ServiceContainer.Resolve <AssignmentViewModel> ();
        }
コード例 #7
0
        /// <summary>
        /// Adds the marker with the data of t and put on the map.
        /// </summary>
        /// <param name="geoLocation">GeoPoint of the created  marker</param>
        /// <param name="drawable">Drawable, image of the exhibit</param>
        /// <param name="markerImage">int, id from drawable</param>
        /// <param name="title">String, title of the exhibit</param>
        /// <param name="description">String, description of the exhibit</param>
        /// <param name="exhibitId">int, exhibit id</param>
        private void AddMarker(GeoPoint geoLocation, Drawable drawable, string title,
                               string description)
        {
            var marker = new OverlayItem(title, description, geoLocation);

            marker.SetMarker(drawable);
            this.mapMarkerItemizedOverlay.AddItem(marker);

            /*Map<String, Integer> data = new HashMap<>();
             * data.put(title, exhibitId);
             *
             * mMarker.addMarker(null, title, description, geoLocation, drawable, icon, data);*/
        }
コード例 #8
0
 private void BindingOverlays(Overlay defaultOverlay = null)
 {
     if (CurrentMap != null)
     {
         OverlayItem[] overlayItems = CurrentMap.Overlays.Where(o => o.IsBase).Select(o => new OverlayItem(o, o.IsVisible, ChangeBaseOverlay)).ToArray();
         itemsControl.ItemsSource = overlayItems;
         if (defaultOverlay != null)
         {
             OverlayItem checkedOverlayItem = overlayItems.First(o => o.IsVisible);
             OverlayItem newOverlayItem     = overlayItems.First(o => o.Overlay == defaultOverlay);
             checkedOverlayItem.IsVisible = false;
             newOverlayItem.IsVisible     = true;
         }
     }
 }
コード例 #9
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.main);
            _mapView = FindViewById <MapView>(Resource.Id.mapview);
            _mapView.SetBuiltInZoomControls(true);

            // First overlay
            _drawable1       = Resources.GetDrawable(Resource.Drawable.marker);
            _itemizedOverlay = new SimpleItemizedOverlay(_drawable1, _mapView);
            var point       = new GeoPoint((int)(51.5174723 * 1E6), (int)(-0.0899537 * 1E6));
            var overlayItem = new OverlayItem(point, "Tomorrow Never Dies (1997)", "(M gives Bond his mission in Daimler car)");

            _itemizedOverlay.AddOverlay(overlayItem);

            var point2       = new GeoPoint((int)(51.515259 * 1E6), (int)(-0.086623 * 1E6));
            var overlayItem2 = new OverlayItem(point2, "GoldenEye (1995)", "(Interiors Russian defence ministry council chambers in St Petersburg)");

            _itemizedOverlay.AddOverlay(overlayItem2);

            _mapView.Overlays.Add(_itemizedOverlay);

            // second overlay
            _drawable2        = Resources.GetDrawable(Resource.Drawable.marker2);
            _itemizedOverlay2 = new SimpleItemizedOverlay(_drawable2, _mapView);

            var point3       = new GeoPoint((int)(51.513329 * 1E6), (int)(-0.08896 * 1E6));
            var overlayItem3 = new OverlayItem(point3, "Sliding Doors (1998)", null);

            _itemizedOverlay2.AddOverlay(overlayItem3);

            var point4       = new GeoPoint((int)(51.51738 * 1E6), (int)(-0.08186 * 1E6));
            var overlayItem4 = new OverlayItem(point4, "Mission: Impossible (1996)", "(Ethan & Jim cafe meeting)");

            _itemizedOverlay2.AddOverlay(overlayItem4);

            _mapView.Overlays.Add(_itemizedOverlay2);

            if (bundle == null)
            {
                var mc = _mapView.Controller;
                mc.SetZoom(16);
                mc.AnimateTo(point2);
            }
        }
コード例 #10
0
        /// <summary>
        /// Enable location tracking and place any overlays
        /// </summary>
        protected override void OnResume()
        {
            base.OnResume();
            myLocation.EnableMyLocation();
            if (assignment != null)
            {
                var overlayItem = new OverlayItem(new GeoPoint(assignment.Latitude.ToIntE6(), assignment.Longitude.ToIntE6()), assignment.CompanyName,
                                                  string.Format("{0} {1}, {2} {3}", assignment.Address, assignment.City, assignment.State, assignment.Zip));
                MapOverlayItem overlay = new MapOverlayItem(this, Resources.GetDrawable(Resource.Drawable.ActiveAssignmentIcon), overlayItem, mapView, true);
                mapView.Overlays.Add(overlay);
            }

            var dialog = new AlertDialog.Builder(this)
                         .SetTitle("Google Maps")
                         .SetMessage(Resources.GetString(Resource.String.GoogleMapsKeyIssue))
                         .SetPositiveButton("Ok", (sender, e) => { })
                         .Show();
        }
コード例 #11
0
 private void ChangeBaseOverlay(OverlayItem item)
 {
     if (IsLoaded)
     {
         OverlayChangedOverlaySwitcherEventArgs overlaySwitchedEventArgs = new OverlayChangedOverlaySwitcherEventArgs(item.Overlay);
         OnOverlayChanged(overlaySwitchedEventArgs);
         if (overlaySwitchedEventArgs.Cancel)
         {
             item.IsVisible = false;
         }
         else
         {
             foreach (Overlay overlay in CurrentMap.Overlays.Where(o => o.IsBase))
             {
                 overlay.IsVisible = item.Overlay == overlay;
             }
             CurrentMap.Refresh();
         }
     }
 }
コード例 #12
0
        private void button1_Click_1(object sender, EventArgs e)
        {
            OverlayItem item = new OverlayItem();

            item.Coord = new PointF(float.Parse(tbClickedLng.Text), float.Parse(tbClickedLat.Text));
            Bitmap   b   = new Bitmap(64, 64);
            Graphics g   = Graphics.FromImage(b);
            Pen      pen = new Pen(Color.Black, 3.0f);

            g.Clear(BackColor);
            g.DrawLine(pen, new Point(1, 1), new Point(62, 1));
            g.DrawLine(pen, new Point(1, 1), new Point(31, 62));
            g.DrawLine(pen, new Point(62, 1), new Point(31, 62));
            g.Dispose();
            item.Icon        = b;
            item.Offset      = new Point(31, 64);
            item.ToolTip     = "Test";
            item.Transparent = BackColor;
            openStreetMapViewer1.AddOverlayItem(item);
        }
コード例 #13
0
        protected override bool OnTap(int index)
        {
            _handler.RemoveCallbacks(_balloonRunnable);
            _isInflating = true;
            _handler.PostDelayed(_balloonRunnable, BALLOON_INFLATION_TIME);

            _currentFocusedIndex = index;
            _currentFocusedItem  = CreateItem(index) as OverlayItem;
            SetLastFocusedIndex(index);

            OnBalloonOpen(index);
            CreateAndDisplayBalloonOverlay();

            if (_snapToCenter)
            {
                animateTo(index, _currentFocusedItem.Point);
            }

            return(true);
        }
コード例 #14
0
 private void ChangeBaseOverlay(OverlayItem item)
 {
     if (IsLoaded)
     {
         OverlayChangedOverlaySwitcherEventArgs overlaySwitchedEventArgs = new OverlayChangedOverlaySwitcherEventArgs(item.Overlay);
         OnOverlayChanged(overlaySwitchedEventArgs);
         if (overlaySwitchedEventArgs.Cancel)
         {
             BindingOverlays(CurrentMap.Overlays.FirstOrDefault(o => o.IsBase && o.IsVisible));
         }
         else
         {
             foreach (Overlay overlay in CurrentMap.Overlays.Where(o => o.IsBase))
             {
                 overlay.IsVisible = item.Overlay == overlay;
             }
             CurrentMap.Refresh();
         }
     }
 }
コード例 #15
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.main);
            _mapView = FindViewById<MapView>(Resource.Id.mapview);
            _mapView.SetBuiltInZoomControls(true);

            // First overlay
            _drawable1 = Resources.GetDrawable(Resource.Drawable.marker);
            _itemizedOverlay = new SimpleItemizedOverlay(_drawable1, _mapView);
            var point = new GeoPoint((int)(51.5174723 * 1E6), (int)(-0.0899537 * 1E6));
            var overlayItem = new OverlayItem(point, "Tomorrow Never Dies (1997)", "(M gives Bond his mission in Daimler car)");
            _itemizedOverlay.AddOverlay(overlayItem);

            var point2 = new GeoPoint((int)(51.515259 * 1E6), (int)(-0.086623 * 1E6));
            var overlayItem2 = new OverlayItem(point2, "GoldenEye (1995)", "(Interiors Russian defence ministry council chambers in St Petersburg)");
            _itemizedOverlay.AddOverlay(overlayItem2);

            _mapView.Overlays.Add(_itemizedOverlay);

            // second overlay
            _drawable2 = Resources.GetDrawable(Resource.Drawable.marker2);
            _itemizedOverlay2 = new SimpleItemizedOverlay(_drawable2, _mapView);

            var point3 = new GeoPoint((int)(51.513329 * 1E6), (int)(-0.08896 * 1E6));
            var overlayItem3 = new OverlayItem(point3, "Sliding Doors (1998)", null);
            _itemizedOverlay2.AddOverlay(overlayItem3);

            var point4 = new GeoPoint((int)(51.51738 * 1E6), (int)(-0.08186 * 1E6));
            var overlayItem4 = new OverlayItem(point4, "Mission: Impossible (1996)", "(Ethan & Jim cafe meeting)");
            _itemizedOverlay2.AddOverlay(overlayItem4);

            _mapView.Overlays.Add(_itemizedOverlay2);

            if (bundle == null)
            {
                var mc = _mapView.Controller;
                mc.SetZoom(16);
                mc.AnimateTo(point2);
            }
        }
コード例 #16
0
        private static OverlayItem CreateOverlayItem(string xamlTemplate, string title, string fields, double width, double height, double x, double y, double?duration, string cmsId, string azureId)
        {
            List <MetadataField> overlayMetadata = GetOverlayMetadata(fields);

            var item = new OverlayItem
            {
                Id           = CreateUri("Overlays"),
                CMSId        = cmsId,
                AzureId      = azureId,
                Title        = title,
                Metadata     = overlayMetadata,
                XamlTemplate = xamlTemplate,
                Height       = height * 100,
                Width        = width * 100,
                X            = x * 100,
                Y            = y * 100,
                Duration     = duration.HasValue ? duration.Value : 10
            };

            return(item);
        }
コード例 #17
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.layoutMapEnterEvent);

            font = Typeface.CreateFromAsset(Assets, "Estedad.ttf");

            MapentereventButtonBack          = FindViewById <Button>(Resource.Id.MapentereventButtonBack);
            MapentereventButtonBack.Typeface = font;
            MapentereventButtonBack.Click   += delegate { Finish(); };

            Mapenterebentimgviewback        = FindViewById <ImageView>(Resource.Id.Mapenterebentimgviewback);
            Mapenterebentimgviewback.Click += delegate { Finish(); };
            entereventmapView = FindViewById <MapView>(Resource.Id.entereventmapView);
            //     نمایش نقشه روی نقطه خاص
            entereventmapView.SetBuiltInZoomControls(true);
            entereventmapView.Controller.SetZoom(17);
            entereventmapView.SetTileSource(TileSourceFactory.Mapnik);
            entereventmapView.SetMultiTouchControls(true);
            var coordination = new GeoPoint(29.62422, 52.53170);

            entereventmapView.Controller.SetCenter(coordination);

            //اضافه کردن مارکر در نقظه ای خاص


            var myoverlayPoint = new OverlayItem("MyTitle", "MyText",
                                                 new Osmdroid.Util.GeoPoint(29.62422, 52.53170));


            var myoverlays = new List <OverlayItem>();

            myoverlays.Add(myoverlayPoint);

            var myItemIconOverlays = new Osmdroid.Views.Overlay.
                                     ItemizedIconOverlay(this, myoverlays, null);

            entereventmapView.Overlays.Add(myItemIconOverlays);
        }
コード例 #18
0
    /// <summary>
    /// Set the value of an item in the debug overlay, or add it if it doesn't exist.
    /// </summary>
    public void SetOverlayItem(OverlayItem item, int?index = null)
    {
        foreach (OverlayItem overlayItem in overlayItems)
        {
            if (overlayItem.Name == item.Name)
            {
                overlayItem.Value = item.Value;
                RefreshDebugOverlay();
                return;
            }
        }

        if (index != null && index < overlayItems.Count)
        {
            overlayItems[(int)index] = item;
            RefreshDebugOverlay();
            return;
        }

        overlayItems.Add(item);
        RefreshDebugOverlay();
    }
コード例 #19
0
 /**
  * Sets the view data from a given overlay item. Override this method to create
  * your own data/view mappings.
  *
  * @param item - The overlay item containing the relevant view data.
  * @param parent - The parent layout for this BalloonOverlayView.
  */
 protected void SetBalloonData(OverlayItem item, ViewGroup parent)
 {
     if (!string.IsNullOrEmpty(item.Title))
     {
         _title.Visibility = ViewStates.Visible;
         _title.Text       = item.Title;
     }
     else
     {
         _title.Text       = "";
         _title.Visibility = ViewStates.Gone;
     }
     if (!string.IsNullOrEmpty(item.Snippet))
     {
         _snippet.Visibility = ViewStates.Visible;
         _snippet.Text       = item.Snippet;
     }
     else
     {
         _snippet.Text       = "";
         _snippet.Visibility = ViewStates.Gone;
     }
 }
コード例 #20
0
        /// <summary>
        /// Updates location pins on the map.
        /// </summary>
        private void UpdateLocations()
        {
            assignmentViewModel.LoadAssignmentsAsync().ContinueWith(_ => {
                RunOnUiThread(() => {
                    int i = 0;
                    foreach (var item in assignmentViewModel.Assignments)
                    {
                        var overlay = new OverlayItem(new GeoPoint(item.Latitude.ToIntE6(), item.Longitude.ToIntE6()),
                                                      item.CompanyName, string.Format("{0} {1}, {2} {3}", item.Address, item.City, item.State, item.Zip));
                        Drawable drawable = null;
                        switch (item.Status)
                        {
                        case AssignmentStatus.Hold:
                            drawable = Resources.GetDrawable(Resource.Drawable.AcceptedAssignmentIcon);
                            break;

                        default:
                            drawable = Resources.GetDrawable(Resource.Drawable.NewAssignmentIcon);
                            break;
                        }
                        var mapoverlay             = new MapOverlayItem(this, drawable, overlay, mapView);
                        mapoverlay.AssignmentIndex = i;
                        mapView.Overlays.Add(mapoverlay);
                        i++;
                    }
                    if (assignmentViewModel.ActiveAssignment != null)
                    {
                        var activeOverlay = new OverlayItem(new GeoPoint(assignmentViewModel.ActiveAssignment.Latitude.ToIntE6(), assignmentViewModel.ActiveAssignment.Longitude.ToIntE6()),
                                                            assignmentViewModel.ActiveAssignment.CompanyName, string.Format("{0} {1}, {2} {3}", assignmentViewModel.ActiveAssignment.Address,
                                                                                                                            assignmentViewModel.ActiveAssignment.City, assignmentViewModel.ActiveAssignment.State, assignmentViewModel.ActiveAssignment.Zip));
                        var mapoverlay             = new MapOverlayItem(this, Resources.GetDrawable(Resource.Drawable.ActiveAssignmentIcon), activeOverlay, mapView);
                        mapoverlay.AssignmentIndex = -1;
                        mapView.Overlays.Add(mapoverlay);
                    }
                });
            });
        }
コード例 #21
0
        public void InitOverlay()
        {
            /**
             * 创建自定义overlay
             */
            mOverlay = new MyOverlay(this, Resources.GetDrawable(Resource.Drawable.icon_marka), mMapView);
            /**
             * 准备overlay 数据
             */
            GeoPoint p1 = new GeoPoint((int)(mLat1 * 1E6), (int)(mLon1 * 1E6));
            OverlayItem item1 = new OverlayItem(p1, "覆盖物1", "");
            /**
             * 设置overlay图标,如不设置,则使用创建ItemizedOverlay时的默认图标.
             */
            item1.Marker = Resources.GetDrawable(Resource.Drawable.icon_marka);

            GeoPoint p2 = new GeoPoint((int)(mLat2 * 1E6), (int)(mLon2 * 1E6));
            OverlayItem item2 = new OverlayItem(p2, "覆盖物2", "");
            item2.Marker = Resources.GetDrawable(Resource.Drawable.icon_markb);

            GeoPoint p3 = new GeoPoint((int)(mLat3 * 1E6), (int)(mLon3 * 1E6));
            OverlayItem item3 = new OverlayItem(p3, "覆盖物3", "");
            item3.Marker = Resources.GetDrawable(Resource.Drawable.icon_markc);

            GeoPoint p4 = new GeoPoint((int)(mLat4 * 1E6), (int)(mLon4 * 1E6));
            OverlayItem item4 = new OverlayItem(p4, "覆盖物4", "");
            item4.Marker = Resources.GetDrawable(Resource.Drawable.icon_gcoding);
            /**
             * 将item 添加到overlay中
             * 注意: 同一个itme只能add一次
             */
            mOverlay.AddItem(item1);
            mOverlay.AddItem(item2);
            mOverlay.AddItem(item3);
            mOverlay.AddItem(item4);
            /**
             * 保存所有item,以便overlay在reset后重新添加
             */
            mItems = new List<OverlayItem>();
            mItems.AddRange(mOverlay.AllItem);

            // 初始化 ground 图层
            mGroundOverlay = new GroundOverlay(mMapView);
            GeoPoint leftBottom = new GeoPoint((int)(mLat5 * 1E6),
                    (int)(mLon5 * 1E6));
            GeoPoint rightTop = new GeoPoint((int)(mLat6 * 1E6),
                    (int)(mLon6 * 1E6));
            Drawable d = Resources.GetDrawable(Resource.Drawable.ground_overlay);
            Bitmap bitmap = ((BitmapDrawable)d).Bitmap;
            mGround = new Ground(bitmap, leftBottom, rightTop);

            /**
             * 将overlay 添加至MapView中
             */
            mMapView.Overlays.Add(mOverlay);
            mMapView.Overlays.Add(mGroundOverlay);
            mGroundOverlay.AddGround(mGround);
            /**
             * 刷新地图
             */
            mMapView.Refresh();
            mResetBtn.Enabled = false;
            mClearBtn.Enabled = true;
            /**
             * 向地图添加自定义View.
             */
            viewCache = LayoutInflater.Inflate(Resource.Layout.custom_text_view, null);
            popupInfo = viewCache.FindViewById<View>(Resource.Id.popinfo);
            popupLeft = viewCache.FindViewById<View>(Resource.Id.popleft);
            popupRight = viewCache.FindViewById<View>(Resource.Id.popright);
            popupText = viewCache.FindViewById<TextView>(Resource.Id.textcache);

            button = new Button(this);
            button.SetBackgroundResource(Resource.Drawable.popup);

            /**
             * 创建一个popupoverlay
             */
            IPopupClickListener popListener = new IPopupClickListenerImpl(this);
            pop = new PopupOverlay(mMapView, popListener);
        }
コード例 #22
0
 /**
  * Override this method to handle a "tap" on a balloon. By default, does nothing
  * and returns false.
  *
  * @param index - The index of the item whose balloon is tapped.
  * @param item - The item whose balloon is tapped.
  * @return true if you handled the tap, otherwise false.
  */
 protected bool OnBalloonTap(int index, OverlayItem item)
 {
     return(false);
 }
コード例 #23
0
        protected async override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            SupportActionBar.DisplayOptions = (int)ActionBarDisplayOptions.ShowCustom;
            SupportActionBar.SetCustomView(Resource.Layout.ActionBar_Moses);
            _sos        = SupportActionBar.CustomView.FindViewById <RelativeLayout>(Resource.Id.sos);
            _myLocation = SupportActionBar.CustomView.FindViewById <RelativeLayout>(Resource.Id.where_i);
            _layers     = SupportActionBar.CustomView.FindViewById <RelativeLayout>(Resource.Id.layers);

            _sos.Click += delegate(object sender, EventArgs args)
            {
                Toast.MakeText(this, "Help me!!!!", ToastLength.Long).Show();
            };
            _layers.Click += delegate(object sender, EventArgs args)
            {
                AlertDialog.Builder builderSingle = new AlertDialog.Builder(this);
                builderSingle.SetTitle("Type");

                ArrayAdapterWithIcon arrayAdapter = new ArrayAdapterWithIcon(
                    this,
                    Android.Resource.Layout.select_dialog_singlechoice_material);
                arrayAdapter.Add(new ListItem()
                {
                    ImageResourceId = Resource.Drawable.tse_tse
                });
                arrayAdapter.Add(new ListItem()
                {
                    ImageResourceId = Resource.Drawable.grass
                });
                arrayAdapter.Add(new ListItem()
                {
                    ImageResourceId = Resource.Drawable.water
                });
                arrayAdapter.Add(new ListItem()
                {
                    ImageResourceId = Resource.Drawable.fire
                });
                builderSingle.SetNegativeButton("Cancel", NegativeHandler);
                builderSingle.SetAdapter(arrayAdapter, this);
                builderSingle.Show();
            };
            _myLocation.Click += delegate(object sender, EventArgs args)
            {
                _mapController.SetCenter(_centreOfMap);
            };
            //StyleInterpreter interpreter = null;
            try
            {
                bool isTile = true;
                //List<OsmGeo> osm = null;
                if (isTile)
                {
                    _mapView = FindViewById <MapView>(Resource.Id.mapview);
                    _mapView.SetTileSource(TileSourceFactory.DefaultTileSource);
                    _mapView.SetBuiltInZoomControls(true);
                    //_mapView.SetUseDataConnection(false);

                    _provider = new CustomLocationProvider(this);
                    _provider.StartLocationProvider(new MyLocationNewOverlay(this, _mapView));

                    //List<OverlayItem> overlayItemArray = new List<OverlayItem>();
                    //OverlayItem olItem = new OverlayItem("Here", "SampleDescription", new GeoPoint(34.878039, -10.650));
                    //overlayItemArray.Add(olItem);
                    //olItem.SetMarker(Resources.GetDrawable(Resource.Drawable.cloud));
                    //overlayItemArray.Add(new OverlayItem("Hi", "You're here", new GeoPoint(34.888039, -10.660)));


                    //DefaultResourceProxyImpl defaultResourceProxyImpl = new DefaultResourceProxyImpl(this);
                    //ItemizedIconOverlay myItemizedIconOverlay = new ItemizedIconOverlay(overlayItemArray, null, defaultResourceProxyImpl);
                    //_mapView.Overlays.Add(myItemizedIconOverlay);

                    //PathOverlay myPath = new PathOverlay(Color.Red, this);
                    //myPath.AddPoint(new GeoPoint(34.878039, -10.650));
                    //myPath.AddPoint(new GeoPoint(34.888039, -10.660));
                    //_mapView.Overlays.Add(myPath);

                    _mapController = _mapView.Controller;
                    _mapController.SetZoom(6);

                    _mapController.SetCenter(_centreOfMap);
                    _geoPositionOverlay = new GeoPositionOverlay(this);
                    _geoPositionOverlay.GeoPointTapped += async delegate(object sender, IGeoPoint point)
                    {
                        List <OverlayItem> overlayItemArray = new List <OverlayItem>();
                        OverlayItem        olItem           = new OverlayItem("Here", "SampleDescription", new GeoPoint(point.Latitude, point.Longitude));
                        overlayItemArray.Add(olItem);
                        olItem.SetMarker(Resources.GetDrawable(Resource.Drawable.cloud));

                        DefaultResourceProxyImpl defaultResourceProxyImpl = new DefaultResourceProxyImpl(this);
                        ItemizedIconOverlay      myItemizedIconOverlay    = new ItemizedIconOverlay(overlayItemArray, null, defaultResourceProxyImpl);
                        _mapView.Overlays.Add(myItemizedIconOverlay);
                        _mapView.Invalidate();

                        try
                        {
                            var service = new OsmTest.Android.Services.ApiService();
                            await service.UploadPoint(point.Latitude, point.Longitude);
                        }
                        catch (Exception exception)
                        {
                            Toast.MakeText(this, exception.Message, ToastLength.Long).Show();
                        }
                    };
                    _mapView.Overlays.Add(_geoPositionOverlay);

                    _geoService = new CouchDbGeoObjectsService();

                    //var firstPoint = ((GeoJSON.Net.Geometry.Point) points.Features[0].Geometry);
                    //var firstPoint = new OsmSharp.Geo.Geometries.Point(new OsmSharp.Math.Geo.GeoCoordinate(33, -10));
                    //double x = ((GeographicPosition) firstPoint.Coordinates).Latitude;
                    //double y = ((GeographicPosition)firstPoint.Coordinates).Longitude;
                    //List<OverlayItem> overlayItemArray = new List<OverlayItem>();
                    //OverlayItem olItem = new OverlayItem("Here", "SampleDescription", new GeoPoint(x, y));
                    //overlayItemArray.Add(olItem);
                    //olItem.SetMarker(Resources.GetDrawable(Resource.Drawable.cloud));

                    //ItemizedIconOverlay newPoints = new ItemizedIconOverlay(overlayItemArray, null, defaultResourceProxyImpl);
                    //_mapView.Overlays.Add(newPoints);
                }
                else
                {
                    /*List<OsmGeo> osm = await _service.DownloadArea(34.878039, -10.465, 36, -9.077);
                     * if (osm != null)
                     * {
                     * Native.Initialize();
                     *
                     * // initialize map.
                     * var map = new Map();
                     * interpreter = new MapCSSInterpreter(css);
                     *
                     * IDataSourceReadOnly source = new MemoryDataSource(osm.ToArray());
                     * var layer = map.AddLayerOsm(source, interpreter);
                     *
                     * _mapView = new MapView(this, new MapViewSurface(this));
                     * _mapView.Map = map;
                     * _mapView.MapMaxZoomLevel = 17; // limit min/max zoom because MBTiles sample only contains a small portion of a map.
                     * _mapView.MapMinZoomLevel = 1;
                     * _mapView.MapTilt = 0;
                     * _mapView.MapCenter = new GeoCoordinate(-9.2, 36);
                     * _mapView.MapZoom = 2;
                     * _mapView.MapAllowTilt = false;
                     *
                     * //OsmSharp.Data.SQLite.SQLiteConnectionBase sqLiteConnection = new SQLiteConnection("osmMap");
                     *
                     * frame.AddView(_mapView);
                     * var textLabel = FindViewById<TextView>(Resource.Id.text_label);
                     * textLabel.Text = "Изображение подгрузилось";
                     * Toast.MakeText(this, "Read success", ToastLength.Long).Show();
                     * }
                     * else
                     * {
                     * Toast.MakeText(this, "OSM is null", ToastLength.Long).Show();
                     * }*/
                }
            }
            catch (Exception exception)
            {
                //Toast.MakeText(this, exception.Message, ToastLength.Long).Show();
            }
        }
コード例 #24
0
 public void AddOverlayItem(OverlayItem item)
 {
     overlayItems.Add(item);
     Populate();
 }
コード例 #25
0
            public void OnGetAddrResult(MKAddrInfo res, int error)
            {
                if (error != 0)
                {
                    string str = String.Format("错误号:%d", error);
                    Toast.MakeText(geoCoderDemo, str, ToastLength.Long).Show();
                    return;
                }
                //地图移动到该点
                geoCoderDemo.mMapView.Controller.AnimateTo(res.GeoPt);
                if (res.Type == MKAddrInfo.MkGeocode)
                {
                    //地理编码:通过地址检索坐标点
                    string strInfo = String.Format("纬度:%f 经度:%f", res.GeoPt.LatitudeE6 / 1e6, res.GeoPt.LongitudeE6 / 1e6);
                    Toast.MakeText(geoCoderDemo, strInfo, ToastLength.Long).Show();
                }
                if (res.Type == MKAddrInfo.MkReversegeocode)
                {
                    //反地理编码:通过坐标点检索详细地址及周边poi
                    string strInfo = res.StrAddr;
                    Toast.MakeText(geoCoderDemo, strInfo, ToastLength.Long).Show();
                }
                //生成ItemizedOverlay图层用来标注结果点
                ItemizedOverlay<OverlayItem> itemOverlay = new ItemizedOverlay<OverlayItem>(null, geoCoderDemo.mMapView);
                //生成Item
                OverlayItem item = new OverlayItem(res.GeoPt, "", null);
                //得到需要标在地图上的资源
                Drawable marker = geoCoderDemo.Resources.GetDrawable(Resource.Drawable.icon_markf);
                //为maker定义位置和边界
                marker.SetBounds(0, 0, marker.IntrinsicWidth, marker.IntrinsicHeight);
                //给item设置marker
                item.Marker = marker;
                //在图层上添加item
                itemOverlay.AddItem(item);

                //清除地图其他图层
                geoCoderDemo.mMapView.Overlays.Clear();
                //添加一个标注ItemizedOverlay图层
                geoCoderDemo.mMapView.Overlays.Add(itemOverlay);
                //执行刷新使生效
                geoCoderDemo.mMapView.Refresh();
            }
コード例 #26
0
ファイル: RootNode.cs プロジェクト: hypeartist/DtsTools
        public string Overlay(RootNode target)
        {
            var overlayItems  = new List <OverlayItem>();
            var nodesToDelete = new List <OverlayItem>();
            var nodesToAdd    = new List <OverlayItem>();

            foreach (var kv in _pathMap)
            {
                var srcNodePath = kv.Key;
                var srcNode     = kv.Value;
                if (!target._pathMap.ContainsKey(srcNodePath))
                {
                    var item = OverlayItem.AddNode(srcNode);
                    overlayItems.Add(item);
                    nodesToAdd.Add(item);
                    continue;
                }

                var targetNode = target._pathMap[srcNodePath];
                foreach (var kv0 in kv.Value.Properties)
                {
                    var srcPropName = kv0.Key;
                    var srcProp     = kv0.Value;

                    if (!targetNode.Properties.ContainsKey(srcPropName) || srcProp.Value != targetNode.Properties[srcPropName].Value)
                    {
                        overlayItems.Add(OverlayItem.SetProperty(srcNode, srcProp));
                    }
                }
            }

            foreach (var kv in target._pathMap)
            {
                var targetNodePath = kv.Key;
                var targetNode     = kv.Value;

                if (!_pathMap.ContainsKey(targetNodePath))
                {
                    var item = OverlayItem.DeleteNode(targetNode);
                    overlayItems.Add(item);
                    nodesToDelete.Add(item);
                    continue;
                }

                var srcNode = _pathMap[kv.Key];
                foreach (var kv0 in kv.Value.Properties)
                {
                    var targetPropName = kv0.Key;
                    var targetProp     = kv0.Value;

                    if (!srcNode.Properties.ContainsKey(targetPropName))
                    {
                        overlayItems.Add(OverlayItem.DeleteProperty(targetNode, targetProp));
                    }
                }
            }

            var processedItems = new List <OverlayItem>();
            var delayedItems   = new List <OverlayItem>();
            var dump           = "";

            for (var i = 0; i < overlayItems.Count; i++)
            {
                var item = overlayItems[i];
                if (nodesToDelete.Any(di => item.Node.IsDescendantOf(di.Node)) || nodesToAdd.Any(di => item.Node.IsDescendantOf(di.Node)))
                {
                    continue;
                }

                var itemsAtSameLocation = overlayItems.Where(o => o != item && o.Location == item.Location).ToList();
                foreach (var oi in itemsAtSameLocation)
                {
                    overlayItems.Remove(oi);
                }

                // if(!string.IsNullOrEmpty(item._node.Label) && !processedItems.Contains())

                dump += item.Dump(itemsAtSameLocation);
                // processedItems.Add(item);
                // processedItems.AddRange(itemsAtSameLocation);
            }

            return(dump);
        }
コード例 #27
0
 public void AddOverlay(OverlayItem overlayitem)
 {
     _overlays.Add(overlayitem);
     Populate();
 }
コード例 #28
0
 /**
  * Sets the view data from a given overlay item.
  *
  * @param item - The overlay item containing the relevant view data.
  */
 public void setData(OverlayItem item)
 {
     _layout.Visibility = ViewStates.Visible;
     SetBalloonData(item, _layout);
 }
コード例 #29
0
        private void LoadAssets(string filePath)
        {
            XDocument document = XDocument.Load(filePath);

            XElement assets = document.Element("Assets");

            if (assets != null)
            {
                foreach (XElement asset in assets.Elements())
                {
                    string         type                = asset.Attribute("Type").GetValue().ToLowerInvariant();
                    string         title               = asset.Attribute("Title").GetValue();
                    Uri            thumbnailUri        = asset.Attribute("ThumbnailUri").GetValueAsUri(UriKind.Absolute);
                    Uri            sourceUri           = asset.Attribute("SourceUri").GetValueAsUri(UriKind.Absolute);
                    double?        duration            = asset.Attribute("DurationInSeconds").GetValueAsDouble();
                    bool           isAdaptiveStreaming = asset.Attribute("IsAdaptiveStreaming").GetValueAsBoolean().GetValueOrDefault();
                    IList <string> dataStreams         = asset.Attribute("DataStreams").GetValueAsStringList(",");
                    string         frameRate           = asset.Attribute("FrameRate").GetValue();
                    double         width               = asset.Attribute("Width").GetValueAsDouble().GetValueOrDefault(1280);
                    double         height              = asset.Attribute("Height").GetValueAsDouble().GetValueOrDefault(720);
                    double         x          = asset.Attribute("X").GetValueAsDouble().GetValueOrDefault(0);
                    double         y          = asset.Attribute("Y").GetValueAsDouble().GetValueOrDefault(0);
                    string         fields     = asset.Attribute("Fields").GetValue();
                    string         template   = asset.Attribute("Template").GetValue();
                    string         archiveUrl = asset.Attribute("ArchiveURL").GetValue();
                    string         cmsId      = asset.Attribute("CMSId").GetValue();
                    string         vodUrl     = asset.Attribute("VODUrl").GetValue();
                    string         azureId    = asset.Attribute("AzureId").GetValue();

                    Metadata metadata = this.metadataLocator.GetMetadata(sourceUri);

                    List <AudioStreamInfo> audioStreamsInformation = new List <AudioStreamInfo>();

                    IList <string> videoStreamInformation = new List <string>();

                    if (metadata != null)
                    {
                        IEnumerable <StreamInfo> audioStream = metadata.MetadataFields.SingleOrDefault(mf => mf.Name.Equals("AudioStreams", StringComparison.OrdinalIgnoreCase)).Value as IEnumerable <StreamInfo>;

                        if (audioStream != null)
                        {
                            foreach (StreamInfo streamInfo in audioStream)
                            {
                                string name = null;

                                if (streamInfo.Attributes.ContainsKey("Name"))
                                {
                                    name = streamInfo.Attributes["Name"];
                                }

                                bool isStereo = true;

                                if (streamInfo.QualityLevels.Count > 0 && streamInfo.QualityLevels.FirstOrDefault().Attributes.ContainsKey("Channels"))
                                {
                                    isStereo = streamInfo.QualityLevels.FirstOrDefault().Attributes["Channels"] == "2";
                                }

                                audioStreamsInformation.Add(new AudioStreamInfo {
                                    IsStereo = isStereo, Name = name
                                });
                            }
                        }

                        MetadataField videoStreamMetadataField =
                            metadata.MetadataFields.SingleOrDefault(mf => mf.Name.Equals("VideoStreams", StringComparison.OrdinalIgnoreCase));

                        if (videoStreamMetadataField != null)
                        {
                            IList <string> videoStreams = videoStreamMetadataField.Value as IList <string>;

                            if (videoStreams != null)
                            {
                                videoStreamInformation = videoStreams;
                            }
                        }
                    }

                    SmpteFrameRate smpteFrameRate;
                    if (frameRate == null || !Enum.TryParse(frameRate, true, out smpteFrameRate))
                    {
                        smpteFrameRate = SmpteFrameRate.Smpte2997NonDrop;
                    }

                    // TODO: Refactor this)))
                    if (type == "video")
                    {
                        VideoItem item = CreateVideoItem(isAdaptiveStreaming, dataStreams, sourceUri, title, thumbnailUri, duration, smpteFrameRate, width, height, audioStreamsInformation, videoStreamInformation, archiveUrl, cmsId, vodUrl, azureId);

                        this.library.Items.Add(item);
                    }

                    if (type == "audio")
                    {
                        AudioItem item = CreateAudioItem(sourceUri, title, duration, archiveUrl, cmsId, azureId);

                        this.library.Items.Add(item);
                    }

                    if (type == "image")
                    {
                        ImageItem item = CreateImageItem(sourceUri, title, width, height, cmsId, azureId);

                        this.library.Items.Add(item);
                    }

                    if (type == "overlay")
                    {
                        OverlayItem item = CreateOverlayItem(template, title, fields, width, height, x, y, duration, cmsId, azureId);

                        this.library.Items.Add(item);
                    }
                }
            }
        }
コード例 #30
0
 /// <summary>
 /// Updates location pins on the map.
 /// </summary>
 private void UpdateLocations ()
 {
     assignmentViewModel.LoadAssignmentsAsync ().ContinueWith (_ => {
         RunOnUiThread (() => {
             int i = 0;
             foreach (var item in assignmentViewModel.Assignments) {
                 var overlay = new OverlayItem (new GeoPoint (item.Latitude.ToIntE6 (), item.Longitude.ToIntE6 ()),
                     item.CompanyName, string.Format ("{0} {1}, {2} {3}", item.Address, item.City, item.State, item.Zip));
                 Drawable drawable = null;
                 switch (item.Status) {
                     case AssignmentStatus.Hold:
                         drawable = Resources.GetDrawable (Resource.Drawable.AcceptedAssignmentIcon);
                         break;
                     default:
                         drawable = Resources.GetDrawable (Resource.Drawable.NewAssignmentIcon);
                         break;
                 }
                 var mapoverlay = new MapOverlayItem (this, drawable, overlay, mapView);
                 mapoverlay.AssignmentIndex = i;
                 mapView.Overlays.Add (mapoverlay);
                 i++;
             }
             if (assignmentViewModel.ActiveAssignment != null) {
                 var activeOverlay = new OverlayItem (new GeoPoint (assignmentViewModel.ActiveAssignment.Latitude.ToIntE6 (), assignmentViewModel.ActiveAssignment.Longitude.ToIntE6 ()),
                     assignmentViewModel.ActiveAssignment.CompanyName, string.Format ("{0} {1}, {2} {3}", assignmentViewModel.ActiveAssignment.Address,
                     assignmentViewModel.ActiveAssignment.City, assignmentViewModel.ActiveAssignment.State, assignmentViewModel.ActiveAssignment.Zip));
                 var mapoverlay = new MapOverlayItem (this, Resources.GetDrawable (Resource.Drawable.ActiveAssignmentIcon), activeOverlay, mapView);
                 mapoverlay.AssignmentIndex = -1;
                 mapView.Overlays.Add (mapoverlay);
             }
         });
     });
 }
 public void SetData(IList<CloudPoiInfo> lbsPoints)
 {
     if (lbsPoints != null)
     {
         mLbsPoints = lbsPoints;
     }
     foreach (CloudPoiInfo rec in mLbsPoints)
     {
         GeoPoint pt = new GeoPoint((int)(rec.Latitude * 1e6), (int)(rec.Longitude * 1e6));
         OverlayItem item = new OverlayItem(pt, rec.Title, rec.Address);
         Drawable marker1 = this.mContext.Resources.GetDrawable(Resource.Drawable.icon_marka);
         item.Marker = marker1;
         AddItem(item);
     }
 }
コード例 #32
0
 public void AddItem(GeoPoint p, string title, string snippet)
 {
     OverlayItem item = new OverlayItem(p, title, snippet);
     overlayItems.Add(item);
     Populate();
 }
コード例 #33
0
 private void ChangeCustomOverlay(OverlayItem item)
 {
     item.Overlay.IsVisible = item.IsVisible;
     CurrentMap.Refresh();
 }
コード例 #34
0
 public void RemoveOverlayItem(OverlayItem item)
 {
     overlayItems.Remove(item);
     Populate();
 }
コード例 #35
0
 public void AddOverlayItem(OverlayItem item)
 {
     overlayItems.Add(item);
     Populate();
 }
コード例 #36
0
 public void RemoveOverlayItem(OverlayItem item)
 {
     overlayItems.Remove(item);
     Populate();
 }
コード例 #37
0
        /// <summary>
        /// Enable location tracking and place any overlays
        /// </summary>
        protected override void OnResume ()
        {
            base.OnResume ();
            myLocation.EnableMyLocation ();
            if (assignment != null) {
                var overlayItem = new OverlayItem (new GeoPoint (assignment.Latitude.ToIntE6 (), assignment.Longitude.ToIntE6 ()), assignment.CompanyName,
                    string.Format ("{0} {1}, {2} {3}", assignment.Address, assignment.City, assignment.State, assignment.Zip));
                MapOverlayItem overlay = new MapOverlayItem (this, Resources.GetDrawable (Resource.Drawable.ActiveAssignmentIcon), overlayItem, mapView, true);
                mapView.Overlays.Add (overlay);
            }

            var dialog = new AlertDialog.Builder (this)
                .SetTitle ("Google Maps")
                .SetMessage (Resources.GetString (Resource.String.GoogleMapsKeyIssue))
                .SetPositiveButton ("Ok", (sender, e) => { })
                .Show ();
        }