void map_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { PointLatLng point = BingMapTileSystem.PixelXYToLatLong(map.ClickPosition.Position, map.ClickPosition.Level); //collector.Add(point.Lng, point.Lat); stopcollectorlayer.SetTempPoint(point); }
public bool PutTileToCache(RawTile key, MemoryStream data) { string quadkey = BingMapTileSystem.TileXYToQuadKey(key.TileXY, key.Level); if (QuadKeyList.Contains(quadkey)) { return(false); } string path = string.Format("{0}/{1}.png", directory, quadkey); FileStream fs = File.OpenWrite(path); data.CopyTo(fs); fs.Flush(); fs.Close(); QuadKeyList.Add(quadkey); infofile.Element("TileSet").Add(new XElement("Tile") { Value = quadkey }); try { using (FileStream fsInfo = File.OpenWrite(infoFilePath)) { infofile.Save(fsInfo); } } catch (Exception e) { //Debug.WriteLine("Error in PutTileToCache: " + e.ToString()); } return(true); }
public MainWindow() { InitializeComponent(); int Binglevel = 16; map.InitMap(new BingMapTileLayer(new BingMapTileLoadProxy(AccessMode.All) { DBCache = new TileFileCache() })); map.Config(new MapLayerConfig(1, 17, Constants.MinZoomRate, Constants.MaxZoomRate, MapType.BingMapChinese)); map.GotoPosition(BingMapTileSystem.LatLngToPixelXY(new PointLatLng(114.3961, 30.6254), Binglevel), Binglevel); map.AddLayer(new FpsCounterLayer()); //map.AddLayer(new MouseMoveTestLayer()); //map.AddLayer(new UIElementLayer(map)); //map.AddMapLayer(new MovingObjectLayer()); //int GNGlevel = 0; //SingleMapTransformSystem.Init(new SizeInt(800, 600), new SizeD(240, 180)); //map.InitMap(new ImageMapLayer(map)); //MapLayerConfig config = MapLayerConfig.DefaultConfig; //config.MapType = MapType.SingleImageMap; //map.Config(config); //map.GotoPosition(SingleMapTransformSystem.ModelXYToPixelXY(new PointLatLng(120, 90)), GNGlevel); //map.AddLayer(new FpsCounterLayer()); SetBindings(); }
public override void Draw(DrawingContext drawingContext, MapArea viewarea, double zoomRate) { foreach (ControlElement element in controlItems) { PointInt pos = BingMapTileSystem.LatLngToPixelXY(element.Location, viewarea.Level); Canvas.SetLeft(element, (pos.X - viewarea.Area.X) * zoomRate); Canvas.SetTop(element, (pos.Y - viewarea.Area.Y) * zoomRate); } base.Draw(drawingContext, viewarea, zoomRate); }
public override void Draw(DrawingContext drawingContext, MapArea viewarea, double zoomRate) { PointInt p1 = BingMapTileSystem.LatLngToPixelXY(pos1, viewarea.Level); PointInt p2 = BingMapTileSystem.LatLngToPixelXY(pos2, viewarea.Level); RectInt rect = RectInt.FromLTRB(p1.X, p1.Y, p2.X, p2.Y); drawingContext.DrawRectangle(Brushes.Blue, new Pen(), new System.Windows.Rect((rect.X - viewarea.Area.X) * zoomRate, (rect.Y - viewarea.Area.Y) * zoomRate, rect.Width * zoomRate, rect.Height * zoomRate)); base.Draw(drawingContext, viewarea, zoomRate); }
public override void Draw(DrawingContext drawingContext, MapArea viewarea, double zoomRate) { List <PointInt> positions = collector.ToList().ConvertAll <PointInt>( new Converter <PointLatLng, PointInt>(ptll => { return(BingMapTileSystem.LatLngToPixelXY(ptll, MapCore.Level)); })); foreach (PointInt pt in positions) { drawingContext.DrawEllipse(Brushes.Black, new Pen(), new Point((pt.X - viewarea.Area.X) * zoomRate, (pt.Y - viewarea.Area.Y) * zoomRate), radius, radius); } base.Draw(drawingContext, viewarea, zoomRate); }
public override void Draw(DrawingContext drawingContext, MapArea viewarea, double zoomRate) { for (int i = 0; i < busNum; i++) { PointInt point; int x, y; BingMapTileSystem.LatLngToPixelXY(tempLocations[i].Lng, tempLocations[i].Lat, viewarea.Level, out x, out y); point = new PointInt(x, y); Point viewpoint = new Point((point.X - viewarea.Area.X) * zoomRate, (point.Y - viewarea.Area.Y) * zoomRate); drawingContext.DrawImage(bus, new Rect(viewpoint.X - 5, viewpoint.Y - 5, 20, 20)); } base.Draw(drawingContext, viewarea, zoomRate); }
public MemoryStream GetTileFromCache(RawTile key) { string quadkey = BingMapTileSystem.TileXYToQuadKey(key.TileXY, key.Level); if (!QuadKeyList.Contains(quadkey)) { return(null); } string path = string.Format("{0}/{1}.png", directory, quadkey); FileStream fs = File.OpenRead(path); MemoryStream ms = new MemoryStream(); fs.CopyTo(ms); fs.Dispose(); fs.Close(); return(ms); }
public override void Draw(DrawingContext drawingContext, MapArea viewarea, double zoomRate) { int height = viewarea.Area.Height; int width = viewarea.Area.Width; if (height == 0 || width == 0) { return; } if (MapCore.IsDragging) { return; } positions = collector.ToList().ConvertAll <PointInt>( new Converter <PointLatLng, PointInt>(ptll => { return(BingMapTileSystem.LatLngToPixelXY(ptll, MapCore.Level)); })); DrawingVisual visual = new DrawingVisual(); DrawingContext dc = visual.RenderOpen(); for (int i = 0; i < positions.Count; i++) { dc.DrawEllipse(HeatMapHelper.CreateBrush((byte)Density, GradientStop), null, new Point(positions[i].X - viewarea.Area.X, positions[i].Y - viewarea.Area.Y), CircleRadius, CircleRadius); } dc.Close(); RenderTargetBitmap rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Pbgra32); rtb.Render(visual); WriteableBitmap bmp = new WriteableBitmap(rtb); bmp.Lock(); for (int i = 0; i < bmp.PixelHeight; i++) { for (int j = 0; j < bmp.PixelWidth; j++) { bmp.SetPixelWithoutLock(i, j, palette); } } bmp.AddDirtyRect(new Int32Rect(0, 0, bmp.PixelWidth, bmp.PixelHeight)); bmp.Unlock(); image.Source = bmp; image.Width = viewarea.Area.Width * zoomRate; image.Height = viewarea.Area.Height * zoomRate; base.Draw(drawingContext, viewarea, zoomRate); }
public override void Draw(DrawingContext drawingContext, MapArea viewarea, double zoomRate) { List <PointInt> positions = collector.ToList().ConvertAll <PointInt>( new Converter <PointLatLng, PointInt>(ptll => { return(BingMapTileSystem.LatLngToPixelXY(ptll, MapCore.Level)); })); for (int i = 0; i < positions.Count; i++) { drawingContext.DrawEllipse(Brushes.Black, new Pen(), new Point((positions[i].X - viewarea.Area.X) * zoomRate, (positions[i].Y - viewarea.Area.Y) * zoomRate), radius, radius); if (i == 0) { continue; } drawingContext.DrawLine(new Pen(Brushes.Blue, 2), new Point((positions[i - 1].X - viewarea.Area.X) * zoomRate, (positions[i - 1].Y - viewarea.Area.Y) * zoomRate), new Point((positions[i].X - viewarea.Area.X) * zoomRate, (positions[i].Y - viewarea.Area.Y) * zoomRate)); } base.Draw(drawingContext, viewarea, zoomRate); }
public MainWindow() { InitializeComponent(); int Binglevel = 16; map.InitMap(new BingMapTileLayer(new BingMapTileLoadProxy(AccessMode.MemoryandServer))); map.Config(new MapLayerConfig(1, 17, Constants.MinZoomRate, Constants.MaxZoomRate, MapType.BingMapChinese)); map.GotoPosition(BingMapTileSystem.LatLngToPixelXY(new PointLatLng(114.3961, 30.6254), Binglevel), Binglevel); //map.AddMapLayer(new HeatPointCollectorMapLayer(map, collector)); //map.AddLayer(new PointCollectorLayer(collector)); //map.AddLayer(new PolyLineCollectorLayer(collector)); stopcollectorlayer = new BusStopCollectLayer(); map.AddLayer(stopcollectorlayer); map.MouseLeftButtonDown += new MouseButtonEventHandler(map_MouseLeftButtonDown); this.KeyDown += new KeyEventHandler(MainWindow_KeyDown); savePointBtn.Click += new RoutedEventHandler(savePointBtn_Click); }
public override bool HitTest(MapLocation pos, InputEventType inputtype) { PointInt p1 = BingMapTileSystem.LatLngToPixelXY(pos1, pos.Level); PointInt p2 = BingMapTileSystem.LatLngToPixelXY(pos2, pos.Level); switch (inputtype) { case InputEventType.MouseMove: RectInt rect = RectInt.FromLTRB(p1.X, p1.Y, p2.X, p2.Y); if (rect.Contains(pos.Position)) { OnMouseMoveOn(); return(true); } OnMouseMoveNotOn(); return(false); } return(false); }
private Point LocationToWindow(PointLatLng position, MapArea viewarea, double zoomrate) { PointInt pt = BingMapTileSystem.LatLngToPixelXY(position, viewarea.Level); return(new Point((pt.X - viewarea.Area.X) * zoomrate, (pt.Y - viewarea.Area.Y) * zoomrate)); }