1 /* 2 * This file is part of the "GKMap". 3 * GKMap project borrowed from GMap.NET (by radioman). 4 * 5 * Copyright (C) 2009-2018 by radioman (email@radioman.lt). 6 * This program is licensed under the FLAT EARTH License. 7 */ 8 9 using System; 10 using GKMap.MapObjects; 11 using GKMap.MapProviders; 12 13 namespace GKMap 14 { PositionChanged(PointLatLng point)15 public delegate void PositionChanged(PointLatLng point); 16 TileLoadComplete(long elapsedMilliseconds)17 public delegate void TileLoadComplete(long elapsedMilliseconds); TileLoadStart()18 public delegate void TileLoadStart(); 19 MapDrag()20 public delegate void MapDrag(); MapZoomChanged()21 public delegate void MapZoomChanged(); MapTypeChanged(GMapProvider type)22 public delegate void MapTypeChanged(GMapProvider type); 23 MarkerEnter(MapMarker item)24 public delegate void MarkerEnter(MapMarker item); MarkerLeave(MapMarker item)25 public delegate void MarkerLeave(MapMarker item); 26 PolygonEnter(MapPolygon item)27 public delegate void PolygonEnter(MapPolygon item); PolygonLeave(MapPolygon item)28 public delegate void PolygonLeave(MapPolygon item); 29 RouteEnter(MapRoute item)30 public delegate void RouteEnter(MapRoute item); RouteLeave(MapRoute item)31 public delegate void RouteLeave(MapRoute item); 32 33 internal interface IMapControl 34 { 35 string CacheLocation { get; set; } 36 37 MapCore Core { get; } 38 39 GMapProvider MapProvider { get; set; } 40 41 int MaxZoom { get; set; } 42 43 int MinZoom { get; set; } 44 45 PointLatLng Position { get; set; } 46 47 int Zoom { get; set; } 48 49 ObservableCollectionThreadSafe<MapOverlay> Overlays { get; } 50 51 event PositionChanged OnPositionChanged; 52 event TileLoadComplete OnTileLoadComplete; 53 event TileLoadStart OnTileLoadStart; 54 event MapDrag OnMapDrag; 55 event MapZoomChanged OnMapZoomChanged; 56 event MapTypeChanged OnMapTypeChanged; 57 FromLocalToLatLng(int x, int y)58 PointLatLng FromLocalToLatLng(int x, int y); FromLatLngToLocal(PointLatLng point)59 GPoint FromLatLngToLocal(PointLatLng point); 60 Invalidate()61 void Invalidate(); 62 Refresh()63 void Refresh(); 64 ReloadMap()65 void ReloadMap(); 66 SetPositionByKeywords(string keys)67 GeocoderStatusCode SetPositionByKeywords(string keys); 68 ZoomAndCenterMarkers(string overlayId)69 bool ZoomAndCenterMarkers(string overlayId); 70 71 bool HoldInvalidation { get; set; } 72 bool IsMouseOverMarker { get; set; } 73 bool IsMouseOverRoute { get; set; } 74 bool IsMouseOverPolygon { get; set; } 75 76 #region Callbacks 77 DoMouseClick(MapObject obj, EventArgs e)78 void DoMouseClick(MapObject obj, EventArgs e); DoMouseDoubleClick(MapObject obj, EventArgs e)79 void DoMouseDoubleClick(MapObject obj, EventArgs e); RestoreCursorOnLeave()80 void RestoreCursorOnLeave(); SetCursorHandOnEnter()81 void SetCursorHandOnEnter(); DrawTile(object go, PureImage pureImage, ref bool found)82 void DrawTile(object go, PureImage pureImage, ref bool found); DrawLowerTile(object go, PureImage pureImage, long Ix, long xoff, long yoff, ref bool found)83 void DrawLowerTile(object go, PureImage pureImage, long Ix, long xoff, long yoff, ref bool found); DrawMissingTile(object go, Exception ex)84 void DrawMissingTile(object go, Exception ex); ShowTileGridLines(object go, DrawTile tilePoint)85 void ShowTileGridLines(object go, DrawTile tilePoint); SetMousePositionToMapCenter()86 void SetMousePositionToMapCenter(); 87 88 #endregion 89 } 90 } 91