├── View-Spot-of-City ├── View-Spot-of-City │ ├── Icon │ │ ├── map.ico │ │ ├── map.png │ │ ├── Blog.png │ │ ├── Device.png │ │ ├── Earth.png │ │ ├── Error.png │ │ ├── Find.png │ │ ├── Pizza.png │ │ ├── Talk.png │ │ ├── User.png │ │ ├── logo.png │ │ ├── Correct.png │ │ ├── Keyboard.png │ │ ├── 3D-Glasses.png │ │ ├── Customize.png │ │ ├── Transparent.png │ │ ├── logo_blue.png │ │ ├── logo_darkblue.png │ │ ├── Direction-North.png │ │ └── Horizontal-Align-Left.png │ ├── desktop.ico │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ └── app.manifest │ ├── Form │ │ ├── RepoInfoWindow.xaml.cs │ │ ├── RepoInfoWindow.xaml │ │ ├── LoginDlg.xaml │ │ └── LicenseDlg.xaml │ ├── Converter │ │ ├── ConverterDictionary.xaml │ │ ├── Enum2LoginUI.cs │ │ ├── ImageConverter.cs │ │ └── Enum2UIControl.cs │ ├── helper │ │ ├── MD5_Encryption.cs │ │ ├── RegisterMaster.cs │ │ └── SpeechRecognition.cs │ ├── packages.config │ └── App.xaml ├── View-Spot-of-City.UIControls │ ├── Icon │ │ ├── Error.png │ │ ├── close.png │ │ ├── end.png │ │ ├── go_to.png │ │ ├── hunt.png │ │ ├── logo.png │ │ ├── pin.png │ │ ├── start.png │ │ ├── tag.png │ │ ├── Correct.png │ │ ├── hotel1.png │ │ ├── station.png │ │ ├── GasStation.png │ │ ├── Microphone.png │ │ ├── close_02.png │ │ ├── close_03.png │ │ ├── logo_blue.png │ │ ├── pin_bule.png │ │ ├── search_02.png │ │ ├── restaurant2.png │ │ └── conversion_pre.png │ ├── Helper │ │ ├── GisgraphyHelper.cs │ │ ├── LoginDlgMaster.cs │ │ ├── MD5_Encryption.cs │ │ ├── IconDictionaryHelper.cs │ │ ├── SpeechRecognition.cs │ │ ├── WebServiceHelper.cs │ │ ├── RoutingHelper.cs │ │ ├── GraphHooperHelper.cs │ │ ├── EmailHelper.cs │ │ └── AvatarHelper.cs │ ├── VisualizationControl │ │ ├── VisitorSeries.cs │ │ ├── VisualizationControlBase.cs │ │ ├── GeoHeatMap.xaml │ │ ├── VisitorsByYear.xaml │ │ ├── BasicRowExample.xaml │ │ ├── BasicRowExample.xaml.cs │ │ ├── VisitorsByMonth.xaml │ │ ├── GeoHeatMap.xaml.cs │ │ ├── HistogramOfType.xaml │ │ ├── VisitorFlow.xaml │ │ └── VisitorsByMonth.xaml.cs │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ └── Resources.Designer.cs │ ├── Form │ │ ├── ViewTypeForm.xaml.cs │ │ ├── VisitorsForm.xaml.cs │ │ ├── SpotStatistics.xaml.cs │ │ ├── VisitorsForm.xaml │ │ ├── ViewTypeForm.xaml │ │ ├── SpotStatistics.xaml │ │ ├── VisualizationParamsPicker.xaml.cs │ │ ├── VisualizationParamsPicker.xaml │ │ ├── MessageboxMaster.cs │ │ ├── MyMessageBoxEvents.cs │ │ └── MyMessageBox.xaml │ ├── UIcontrol │ │ ├── CircleProgressControl.xaml.cs │ │ ├── VisitorCallout.xaml.cs │ │ ├── VisitorCallout.xaml │ │ ├── RepoInfo.xaml.cs │ │ ├── SpotViewerMaster.xaml │ │ ├── MyMessageBox_Ok.xaml │ │ ├── MyMessageBox_Ok.xaml.cs │ │ ├── MyMessageBox_YesNo.xaml.cs │ │ ├── MyMessageBox_YesNo.xaml │ │ ├── MyMessageBox_OkCancel.xaml │ │ ├── MyMessageBox_OkCancel.xaml.cs │ │ ├── MyMessageBox_YesNoCancel.xaml.cs │ │ ├── MyMessageBox_YesNoCancel.xaml │ │ ├── SpotViewerDisscuss.xaml.cs │ │ ├── SpotViewerMaster.xaml.cs │ │ ├── SpotViewerStatistics.xaml.cs │ │ ├── SpotViewerDisscuss.xaml │ │ ├── SpotViewerStatistics.xaml │ │ ├── Register.xaml │ │ └── Login.xaml │ ├── Theme │ │ ├── ThemesDictionary.xaml │ │ └── MetroTheme.xaml │ ├── DataTemplate │ │ ├── SpotNameListItemTemplate.xaml │ │ ├── VisualizationControlListItemTemplate.xaml │ │ ├── DataTemplateDictionary.xaml │ │ ├── MainNavBarDataTemplate.xaml │ │ └── ViewSpotListItemTemplate.xaml │ ├── Style │ │ ├── SeperatorStyles.xaml │ │ ├── StylesDictionary.xaml │ │ ├── ToggleButtonStyles.xaml │ │ ├── WindowStyles.cs │ │ ├── TextBlockStyles.xaml │ │ └── TextBoxStyles.xaml │ ├── OverLayer │ │ ├── OverLayerExample.xaml.cs │ │ ├── ShowMap.xaml.cs │ │ ├── ShowMap.xaml │ │ └── OverLayerExample.xaml │ ├── Command │ │ ├── CommandForMainWindow.cs │ │ ├── MyMessageBoxCommands.cs │ │ ├── ArcGISSceneCommands.cs │ │ ├── LoginDlgCommands.cs │ │ ├── ViewSpotViewerCommands.cs │ │ └── ArcGISMapCommands.cs │ ├── Converter │ │ ├── SpotViewPanel2Visibility.cs │ │ ├── MyMessageBoxButtonConverter.cs │ │ ├── String2Image.cs │ │ ├── ViewSpotItemConverters.cs │ │ ├── MyMessageBoxDefaultButtonConverter.cs │ │ ├── String2ImageForComment.cs │ │ └── Mail2AvatarBruahConverter.cs │ ├── ArcGISControl │ │ ├── SceneView.xaml │ │ └── ViewModel │ │ │ └── MapViewModel.cs │ ├── packages.config │ ├── Progress │ │ ├── FromProgressBox.xaml │ │ ├── CircleProgressAsync.xaml.cs │ │ ├── CircleProgress.xaml.cs │ │ └── ProgressBox.cs │ ├── app.config │ ├── UIControls.xaml │ └── ViewModel │ │ └── OverlayerItemViewModel.cs ├── View-Spot-of-City.LogManager │ ├── packages.config │ ├── Properties │ │ └── AssemblyInfo.cs │ └── View-Spot-of-City.LogManager.csproj ├── View-Spot-of-City.ClassModel │ ├── packages.config │ ├── Interface │ │ └── IGetLngLat.cs │ ├── Properties │ │ └── AssemblyInfo.cs │ └── Base │ │ └── CommonPlace.cs ├── View-Spot-of-City.Language │ ├── Properties │ │ ├── Settings.settings │ │ ├── Settings.Designer.cs │ │ ├── AssemblyInfo.cs │ │ └── Resources.Designer.cs │ └── Language │ │ ├── LanguagesDictionary.xaml │ │ └── LanguageDictionaryHelper.cs └── View-Spot-of-City.sln ├── appveyor.yml ├── .gitattributes └── README.md /View-Spot-of-City/View-Spot-of-City/Icon/map.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/map.ico -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/map.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/desktop.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/desktop.ico -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Blog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Blog.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Device.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Earth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Earth.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Error.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Find.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Find.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Pizza.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Pizza.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Talk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Talk.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/User.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/User.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/logo.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Correct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Correct.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Keyboard.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/3D-Glasses.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/3D-Glasses.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Customize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Customize.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Transparent.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/logo_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/logo_blue.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/logo_darkblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/logo_darkblue.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/Error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/Error.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/close.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/end.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/end.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/go_to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/go_to.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/hunt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/hunt.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/logo.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/pin.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/start.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/tag.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Direction-North.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Direction-North.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/Correct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/Correct.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/hotel1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/hotel1.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/station.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/station.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/GasStation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/GasStation.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/Microphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/Microphone.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/close_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/close_02.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/close_03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/close_03.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/logo_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/logo_blue.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/pin_bule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/pin_bule.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/search_02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/search_02.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Icon/Horizontal-Align-Left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City/Icon/Horizontal-Align-Left.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.LogManager/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Helper/GisgraphyHelper.cs: -------------------------------------------------------------------------------- 1 | namespace View_Spot_of_City.UIControls.Helper 2 | { 3 | public static class GisgraphyHelper 4 | { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/restaurant2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/restaurant2.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Icon/conversion_pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RS-GIS-Geeks/View-Spot-of-City/HEAD/View-Spot-of-City/View-Spot-of-City.UIControls/Icon/conversion_pre.png -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/VisualizationControl/VisitorSeries.cs: -------------------------------------------------------------------------------- 1 | namespace View_Spot_of_City.UIControls.VisualizationControl 2 | { 3 | internal class VisitorSeries 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.ClassModel/packages.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.Language/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 1.2.2.{build} 2 | pull_requests: 3 | do_not_increment_build_number: true 4 | image: Visual Studio 2017 5 | platform: Any CPU 6 | before_build: 7 | - cmd: nuget restore View-Spot-of-City/View-Spot-of-City.sln 8 | build: 9 | project: View-Spot-of-City/View-Spot-of-City.sln 10 | verbosity: minimal -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Helper/LoginDlgMaster.cs: -------------------------------------------------------------------------------- 1 | namespace View_Spot_of_City.UIControls.Helper 2 | { 3 | public static class LoginDlgMaster 4 | { 5 | /// 6 | /// 主控件 7 | /// 8 | public enum LoginControls : int 9 | { 10 | Login = 0, 11 | Register = 1 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Form/RepoInfoWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | 3 | namespace View_Spot_of_City.Form 4 | { 5 | /// 6 | /// RepoInfoWindow.xaml 的交互逻辑 7 | /// 8 | public partial class RepoInfoWindow : Window 9 | { 10 | public RepoInfoWindow() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/VisualizationControl/VisualizationControlBase.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace View_Spot_of_City.UIControls.VisualizationControl 4 | { 5 | public class VisualizationControlBase : UserControl 6 | { 7 | /// 8 | /// 构造函数 9 | /// 10 | public VisualizationControlBase() { } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Form/ViewTypeForm.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | 3 | namespace View_Spot_of_City.UIControls.Form 4 | { 5 | /// 6 | /// ViewTypeForm.xaml 的交互逻辑 7 | /// 8 | public partial class ViewTypeForm : Window 9 | { 10 | public ViewTypeForm() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Form/VisitorsForm.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | 3 | namespace View_Spot_of_City.UIControls.Form 4 | { 5 | /// 6 | /// VisitorsForm.xaml 的交互逻辑 7 | /// 8 | public partial class VisitorsForm : Window 9 | { 10 | public VisitorsForm() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/UIcontrol/CircleProgressControl.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace View_Spot_of_City.UIControls.UIcontrol 4 | { 5 | /// 6 | /// CircleProgressControl.xaml 的交互逻辑 7 | /// 8 | public partial class CircleProgressControl : UserControl 9 | { 10 | public CircleProgressControl() 11 | { 12 | InitializeComponent(); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Form/SpotStatistics.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | 3 | namespace View_Spot_of_City.UIControls.Form 4 | { 5 | /// 6 | /// SpotStatistics.xaml 的交互逻辑 7 | /// 8 | public partial class SpotStatistics : Window 9 | { 10 | public SpotStatistics(long viewId) 11 | { 12 | InitializeComponent(); 13 | visitorsByYear.Init(viewId); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Theme/ThemesDictionary.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Converter/ConverterDictionary.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.ClassModel/Interface/IGetLngLat.cs: -------------------------------------------------------------------------------- 1 | namespace View_Spot_of_City.ClassModel.Interface 2 | { 3 | /// 4 | /// 获取经纬度接口 5 | /// 6 | public interface IGetLngLat 7 | { 8 | /// 9 | /// 返回经度 10 | /// 11 | /// 经度 12 | double GetLng(); 13 | 14 | /// 15 | /// 返回纬度 16 | /// 17 | /// 纬度 18 | double GetLat(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/helper/MD5_Encryption.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Security.Cryptography; 3 | using System.Text; 4 | 5 | namespace View_Spot_of_City.Helper 6 | { 7 | class MD5_Encryption 8 | { 9 | public static string MD5Encode(string strText) 10 | { 11 | MD5 md5 = new MD5CryptoServiceProvider(); 12 | byte[] result = md5.ComputeHash(Encoding.UTF8.GetBytes(strText)); 13 | return BitConverter.ToString(result).Replace("-", "").ToLower(); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.Language/Language/LanguagesDictionary.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Helper/MD5_Encryption.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Security.Cryptography; 3 | using System.Text; 4 | 5 | namespace View_Spot_of_City.UIControls.Helper 6 | { 7 | class MD5_Encryption 8 | { 9 | public static string MD5Encode(string strText) 10 | { 11 | MD5 md5 = new MD5CryptoServiceProvider(); 12 | byte[] result = md5.ComputeHash(Encoding.UTF8.GetBytes("rsgisgeeks" + strText)); 13 | return BitConverter.ToString(result).Replace("-", "").ToLower(); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/UIcontrol/VisitorCallout.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Windows.Controls; 3 | 4 | using View_Spot_of_City.ClassModel; 5 | 6 | namespace View_Spot_of_City.UIControls.UIcontrol 7 | { 8 | /// 9 | /// VisitorCallout.xaml 的交互逻辑 10 | /// 11 | public partial class VisitorCallout : UserControl 12 | { 13 | public VisitorCallout(List visitorItemList) 14 | { 15 | InitializeComponent(); 16 | LineChart.Init(visitorItemList); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/DataTemplate/SpotNameListItemTemplate.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/DataTemplate/VisualizationControlListItemTemplate.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Style/SeperatorStyles.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 11 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/DataTemplate/DataTemplateDictionary.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/UIcontrol/VisitorCallout.xaml: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Converter/Enum2LoginUI.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows; 4 | using System.Windows.Data; 5 | 6 | namespace View_Spot_of_City.Converter 7 | { 8 | public class Enum2LoginUI : IValueConverter 9 | { 10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 11 | { 12 | if (value == null) { return null; } 13 | try { return (int)value == System.Convert.ToInt32((string)parameter) ? Visibility.Visible : Visibility.Collapsed; } 14 | catch { return null; } 15 | } 16 | 17 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 18 | { 19 | throw new NotImplementedException(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Form/RepoInfoWindow.xaml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/OverLayer/OverLayerExample.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | using System.Windows; 7 | using System.Windows.Controls; 8 | using System.Windows.Data; 9 | using System.Windows.Documents; 10 | using System.Windows.Input; 11 | using System.Windows.Media; 12 | using System.Windows.Media.Imaging; 13 | using System.Windows.Navigation; 14 | using System.Windows.Shapes; 15 | 16 | namespace View_Spot_of_City.UIControls.OverLayer 17 | { 18 | /// 19 | /// Example.xaml 的交互逻辑 20 | /// 21 | public partial class OverLayerExample : UserControl 22 | { 23 | public OverLayerExample() 24 | { 25 | InitializeComponent(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/OverLayer/ShowMap.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Controls; 3 | using static System.Configuration.ConfigurationManager; 4 | 5 | using Esri.ArcGISRuntime.Mapping; 6 | using Esri.ArcGISRuntime.UI; 7 | 8 | namespace View_Spot_of_City.UIControls.OverLayer 9 | { 10 | /// 11 | /// ShowMap.xaml 的交互逻辑 12 | /// 13 | public partial class ShowMap : UserControl 14 | { 15 | public ShowMap() 16 | { 17 | InitializeComponent(); 18 | mapView.Map = new Map(new Uri(AppSettings["ARCGIS_BASEMAP"])); 19 | if (!mapView.LocationDisplay.IsEnabled) 20 | mapView.LocationDisplay.IsEnabled = true; 21 | mapView.LocationDisplay.AutoPanMode = LocationDisplayAutoPanMode.CompassNavigation; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Command/CommandForMainWindow.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Input; 2 | 3 | namespace View_Spot_of_City.UIControls.Command 4 | { 5 | public static class CommandForMainWindow 6 | { 7 | /// 8 | /// 更改当前用户命令 9 | /// 10 | public static RoutedCommand ChangeCurrentUserCommand { set; get; } 11 | 12 | /// 13 | /// 命令转发 14 | /// 15 | public static RoutedCommand CommandsFreightStationToOverlayerCommand { set; get; } 16 | 17 | /// 18 | /// 静态构造函数 19 | /// 20 | static CommandForMainWindow() 21 | { 22 | ChangeCurrentUserCommand = new RoutedCommand(); 23 | CommandsFreightStationToOverlayerCommand = new RoutedCommand(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Command/MyMessageBoxCommands.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Input; 2 | 3 | namespace View_Spot_of_City.UIControls.Command 4 | { 5 | /// 6 | /// 自定义Messagebox的路由命令 7 | /// 8 | public static class MyMessageBoxCommands 9 | { 10 | public static RoutedCommand OKButtonClick { set; get; } 11 | public static RoutedCommand CancelButtonClick { set; get; } 12 | public static RoutedCommand YesButtonClick { set; get; } 13 | public static RoutedCommand NoButtonClick { set; get; } 14 | 15 | static MyMessageBoxCommands() 16 | { 17 | OKButtonClick = new RoutedCommand(); 18 | CancelButtonClick = new RoutedCommand(); 19 | YesButtonClick = new RoutedCommand(); 20 | NoButtonClick = new RoutedCommand(); 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Converter/SpotViewPanel2Visibility.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows; 4 | using System.Windows.Data; 5 | 6 | namespace View_Spot_of_City.UIControls.Converter 7 | { 8 | public class SpotViewPanel2Visibility : IValueConverter 9 | { 10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 11 | { 12 | if (value == null) { return null; } 13 | try { return (int)value == System.Convert.ToInt32((string)parameter) ? Visibility.Visible : Visibility.Collapsed; } 14 | catch { return null; } 15 | } 16 | 17 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 18 | { 19 | throw new NotImplementedException(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Converter/MyMessageBoxButtonConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows; 4 | using System.Windows.Data; 5 | 6 | namespace View_Spot_of_City.UIControls.Converter 7 | { 8 | public class MyMessageBoxButtonConverter : IValueConverter 9 | { 10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 11 | { 12 | if (value == null) { return null; } 13 | try { return (int)value == System.Convert.ToInt32((string)parameter) ? Visibility.Visible : Visibility.Collapsed; } 14 | catch { return null; } 15 | } 16 | 17 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 18 | { 19 | throw new NotImplementedException(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/DataTemplate/MainNavBarDataTemplate.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/UIcontrol/RepoInfo.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Windows; 4 | using System.Windows.Controls; 5 | using System.Windows.Documents; 6 | 7 | namespace View_Spot_of_City.UIControls.UIcontrol 8 | { 9 | /// 10 | /// RepoInfo.xaml 的交互逻辑 11 | /// 12 | public partial class RepoInfo : UserControl 13 | { 14 | public RepoInfo() 15 | { 16 | InitializeComponent(); 17 | } 18 | 19 | private void DonateButton_Click(object sender, RoutedEventArgs e) 20 | { 21 | Hyperlink link = new Hyperlink(); 22 | { 23 | link.NavigateUri = new Uri(@"https://github.com/RS-GIS-Geeks/View-Spot-of-City"); 24 | } 25 | Process.Start(new ProcessStartInfo(link.NavigateUri.AbsoluteUri)); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Converter/String2Image.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows.Data; 4 | using System.Windows.Media; 5 | using System.Windows.Media.Imaging; 6 | 7 | namespace View_Spot_of_City.UIControls.Converter 8 | { 9 | public class String2Image : IValueConverter 10 | { 11 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 12 | { 13 | if (value == null || (value as string) == string.Empty) 14 | return Brushes.DarkBlue; 15 | string uriStr = value as string; 16 | return new ImageBrush(new BitmapImage(new Uri(uriStr))); 17 | } 18 | 19 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 20 | { 21 | throw new NotImplementedException(); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Converter/ImageConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows.Data; 4 | using System.Windows.Media.Imaging; 5 | 6 | namespace View_Spot_of_City.Converter 7 | { 8 | public class ImageConverter : IValueConverter 9 | { 10 | object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture) 11 | { 12 | if (value == null) return null; 13 | try 14 | { 15 | return new BitmapImage(new Uri(value.ToString())); 16 | } 17 | catch 18 | { 19 | return null; 20 | } 21 | } 22 | 23 | object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 24 | { 25 | throw new NotImplementedException(); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Converter/ViewSpotItemConverters.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows.Data; 4 | using View_Spot_of_City.Language.Language; 5 | 6 | namespace View_Spot_of_City.UIControls.Converter 7 | { 8 | public class ViewSpotCostConverter : IValueConverter 9 | { 10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 11 | { 12 | double cost = (double)value; 13 | string precost = LanguageDictionaryHelper.GetString("ShowSpot_PreCost"); 14 | if (precost == "$") 15 | cost /= 6; 16 | return precost + cost.ToString("f1"); 17 | } 18 | 19 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 20 | { 21 | throw new NotImplementedException(); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Command/ArcGISSceneCommands.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Input; 2 | 3 | namespace View_Spot_of_City.UIControls.Command 4 | { 5 | public static class ArcGISSceneCommands 6 | { 7 | /// 8 | /// 添加人流量数据到Scene 9 | /// 10 | public static RoutedCommand AddVisitorsData { get; set; } 11 | 12 | /// 13 | /// 改变人流量数据 14 | /// 15 | public static RoutedCommand ChangeVisitorsData { get; set; } 16 | 17 | /// 18 | /// 改变Scene的底图 19 | /// 20 | public static RoutedCommand ChangeBaseMap { get; set; } 21 | 22 | static ArcGISSceneCommands() 23 | { 24 | AddVisitorsData = new RoutedCommand(); 25 | ChangeBaseMap = new RoutedCommand(); 26 | ChangeVisitorsData = new RoutedCommand(); 27 | } 28 | } 29 | } -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Converter/MyMessageBoxDefaultButtonConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows.Data; 4 | 5 | namespace View_Spot_of_City.UIControls.Converter 6 | { 7 | public class MyMessageBoxDefaultButtonConverter : IValueConverter 8 | { 9 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 10 | { 11 | if (value == null) { return false; } 12 | try 13 | { 14 | bool result = (int)value == System.Convert.ToInt32((string)parameter) ? true : false; 15 | return result; 16 | } 17 | catch { return false; } 18 | } 19 | 20 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 21 | { 22 | throw new NotImplementedException(); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Converter/String2ImageForComment.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows.Data; 4 | using System.Windows.Media; 5 | using System.Windows.Media.Imaging; 6 | 7 | namespace View_Spot_of_City.UIControls.Converter 8 | { 9 | class String2ImageForComment : IValueConverter 10 | { 11 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 12 | { 13 | if (value == null || (value as string) == string.Empty || (value as string) == "-") 14 | return null; 15 | string uriStr = value as string; 16 | return new ImageBrush(new BitmapImage(new Uri(uriStr))); 17 | } 18 | 19 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 20 | { 21 | throw new NotImplementedException(); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Converter/Mail2AvatarBruahConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows.Data; 4 | using System.Windows.Media; 5 | 6 | using View_Spot_of_City.UIControls.Helper; 7 | 8 | namespace View_Spot_of_City.UIControls.Converter 9 | { 10 | public class Mail2AvatarBruahConverter : IValueConverter 11 | { 12 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 13 | { 14 | string valueStr = value as string; 15 | string userInputMail = valueStr == string.Empty ? "rsgisgeeks@qq.com" : valueStr; 16 | return new ImageBrush(AvatarHelper.GetAvatarByEmail(userInputMail)); 17 | } 18 | 19 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 20 | { 21 | throw new NotImplementedException(); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Form/VisitorsForm.xaml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.Language/Language/LanguageDictionaryHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Windows; 3 | 4 | namespace View_Spot_of_City.Language.Language 5 | { 6 | public static class LanguageDictionaryHelper 7 | { 8 | /// 9 | /// 返回语言资源文件中对应键的值 10 | /// 11 | /// 键 12 | /// 13 | public static string GetString(string key) 14 | { 15 | return Application.Current.FindResource(key) as string; 16 | } 17 | 18 | /// 19 | /// 语言资源字典 20 | /// 21 | public static Dictionary languageDictionary = new Dictionary(2); 22 | 23 | static LanguageDictionaryHelper() 24 | { 25 | languageDictionary.Add(0, "CN"); 26 | languageDictionary.Add(1, "EN"); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Form/ViewTypeForm.xaml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Style/StylesDictionary.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Form/SpotStatistics.xaml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/ArcGISControl/SceneView.xaml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Command/LoginDlgCommands.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Input; 2 | 3 | namespace View_Spot_of_City.UIControls.Command 4 | { 5 | public static class LoginDlgCommands 6 | { 7 | /// 8 | /// 验证成功并关闭窗口命令 9 | /// 10 | public static RoutedCommand OKAndCloseFormCommand { set; get; } 11 | 12 | /// 13 | /// 取消并关闭窗口命令 14 | /// 15 | public static RoutedCommand CancelAndCloseFormCommand { set; get; } 16 | 17 | /// 18 | /// 改变页面命令 19 | /// 20 | public static RoutedCommand ChangePageCommand { set; get; } 21 | 22 | /// 23 | /// 静态构造函数 24 | /// 25 | static LoginDlgCommands() 26 | { 27 | OKAndCloseFormCommand = new RoutedCommand(); 28 | CancelAndCloseFormCommand = new RoutedCommand(); 29 | ChangePageCommand = new RoutedCommand(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Converter/Enum2UIControl.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.Windows; 4 | using System.Windows.Data; 5 | 6 | namespace View_Spot_of_City.Converter 7 | { 8 | public class Enum2UIControl : IValueConverter 9 | { 10 | /// 11 | /// 主控件 12 | /// 13 | public enum MainControls : int 14 | { 15 | ArcGISSceneView = 0, 16 | ArcGISMapView = 1 17 | } 18 | 19 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 20 | { 21 | if(value == null) { return null; } 22 | try { return (int)value == System.Convert.ToInt32((string)parameter) ? Visibility.Visible : Visibility.Collapsed; } 23 | catch { return null; } 24 | } 25 | 26 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 27 | { 28 | throw new NotImplementedException(); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/VisualizationControl/GeoHeatMap.xaml: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.ClassModel/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.InteropServices; 3 | 4 | // 有关程序集的一般信息由以下 5 | // 控制。更改这些特性值可修改 6 | // 与程序集关联的信息。 7 | [assembly: AssemblyTitle("View-Spot-of-City.ClassModel")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("View-Spot-of-City.ClassModel")] 12 | [assembly: AssemblyCopyright("Copyright © 2017")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // 将 ComVisible 设置为 false 会使此程序集中的类型 17 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 18 | //请将此类型的 ComVisible 特性设置为 true。 19 | [assembly: ComVisible(false)] 20 | 21 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 22 | [assembly: Guid("b0d8c76f-2723-4a36-97fc-65b69e3bd973")] 23 | 24 | // 程序集的版本信息由下列四个值组成: 25 | // 26 | // 主版本 27 | // 次版本 28 | // 生成号 29 | // 修订号 30 | // 31 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 32 | //通过使用 "*",如下所示: 33 | // [assembly: AssemblyVersion("1.0.*")] 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.LogManager/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的一般信息由以下 6 | // 控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("View-Spot-of-City.LogManager")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("View-Spot-of-City.LogManager")] 13 | [assembly: AssemblyCopyright("Copyright © RS-GIS-GEEKS 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 将 ComVisible 设置为 false 会使此程序集中的类型 18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 19 | //请将此类型的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(false)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("abcb9e94-22cc-4b65-87d7-6e5a7f1f9d09")] 24 | 25 | // 程序集的版本信息由下列四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 33 | //通过使用 "*",如下所示: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Command/ViewSpotViewerCommands.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Input; 2 | 3 | namespace View_Spot_of_City.UIControls.Command 4 | { 5 | /// 6 | /// 显示景点的命令集 7 | /// 8 | public static class ViewSpotViewerCommands 9 | { 10 | /// 11 | /// 显示景点信息命令 12 | /// 13 | public static RoutedCommand ShowViewSpotDetail { get; set; } 14 | 15 | /// 16 | /// 返回主页命令 17 | /// 18 | public static RoutedCommand BackToMaster { get; set; } 19 | 20 | /// 21 | /// 显示评论命令 22 | /// 23 | public static RoutedCommand ShowDiscuss { get; set; } 24 | 25 | /// 26 | /// 显示统计命令 27 | /// 28 | public static RoutedCommand ShowStatistics { get; set; } 29 | 30 | static ViewSpotViewerCommands() 31 | { 32 | ShowViewSpotDetail = new RoutedCommand(); 33 | BackToMaster = new RoutedCommand(); 34 | ShowDiscuss = new RoutedCommand(); 35 | ShowStatistics = new RoutedCommand(); 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Theme/MetroTheme.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace View_Spot_of_City.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/ArcGISControl/ViewModel/MapViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.CompilerServices; 3 | 4 | using Esri.ArcGISRuntime.Mapping; 5 | 6 | namespace View_Spot_of_City.UIControls.ArcGISControl.ViewModel 7 | { 8 | public class MapViewModel : INotifyPropertyChanged 9 | { 10 | public MapViewModel() 11 | { 12 | 13 | } 14 | 15 | private Map _map = new Map(Basemap.CreateOpenStreetMap()); 16 | 17 | /// 18 | /// Gets or sets the map 19 | /// 20 | public Map Map 21 | { 22 | get { return _map; } 23 | set { _map = value; OnPropertyChanged(); } 24 | } 25 | 26 | /// 27 | /// Raises the event 28 | /// 29 | /// The name of the property that has changed 30 | protected void OnPropertyChanged([CallerMemberName] string propertyName = null) 31 | { 32 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 33 | } 34 | 35 | public event PropertyChangedEventHandler PropertyChanged; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.Language/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace View_Spot_of_City.Language.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace View_Spot_of_City.UIControls.Properties 12 | { 13 | 14 | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase 18 | { 19 | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 21 | 22 | public static Settings Default 23 | { 24 | get 25 | { 26 | return defaultInstance; 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Form/VisualizationParamsPicker.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows; 3 | 4 | namespace View_Spot_of_City.UIControls.Form 5 | { 6 | /// 7 | /// VisualizationParamsPicker.xaml 的交互逻辑 8 | /// 9 | public partial class VisualizationParamsPicker : Window 10 | { 11 | /// 12 | /// 开始日期 13 | /// 14 | public DateTime StartDate = new DateTime(); 15 | 16 | /// 17 | /// 结束日期 18 | /// 19 | public DateTime EndDate = new DateTime(); 20 | 21 | /// 22 | /// 构造函数 23 | /// 24 | public VisualizationParamsPicker() 25 | { 26 | InitializeComponent(); 27 | } 28 | 29 | private void OkButton_Click(object sender, RoutedEventArgs e) 30 | { 31 | StartDate = StartDatePicker.SelectedDate ?? new DateTime(2015, 1, 1); 32 | EndDate = EndDatePicker.SelectedDate ?? new DateTime(2017, 12, 30); 33 | 34 | this.DialogResult = true; 35 | } 36 | 37 | private void CancelButton_Click(object sender, RoutedEventArgs e) 38 | { 39 | this.DialogResult = false; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/UIcontrol/SpotViewerMaster.xaml: -------------------------------------------------------------------------------- 1 | 10 | 18 | 19 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/helper/RegisterMaster.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Runtime.Serialization.Formatters.Binary; 4 | 5 | using View_Spot_of_City.Form; 6 | 7 | namespace View_Spot_of_City.UIControls.Helper 8 | { 9 | public class RegisterMaster 10 | { 11 | private static string path = AppDomain.CurrentDomain.BaseDirectory + "License.dat"; 12 | public static bool CanStart() 13 | { 14 | if (!File.Exists(path)) 15 | { 16 | LicenseDlg f = new LicenseDlg(); 17 | if (f.ShowDialog() == true) 18 | { 19 | return true; 20 | } 21 | return false; 22 | } 23 | Stream s = File.Open(path, FileMode.Open);//打开License.bat文件 24 | BinaryFormatter b = new BinaryFormatter();//创建一个序列化的对象 25 | String result = (String)b.Deserialize(s);//将s反序列化回原来的数据格式 26 | try 27 | { 28 | DateTime date = Convert.ToDateTime(result); 29 | if ((date - DateTime.Now).Seconds > 0) 30 | { 31 | return true; 32 | } 33 | } 34 | catch 35 | { 36 | return false; 37 | } 38 | return false; 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/UIcontrol/MyMessageBox_Ok.xaml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 14 | 15 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/UIcontrol/MyMessageBox_OkCancel.xaml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 14 | 15 | 27 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Form/MessageboxMaster.cs: -------------------------------------------------------------------------------- 1 | namespace View_Spot_of_City.UIControls.Form 2 | { 3 | public static class MessageboxMaster 4 | { 5 | public enum MyMessageBoxButtons : int 6 | { 7 | Ok = 0, 8 | OkCancel = 1, 9 | YesNo = 2, 10 | YesNoCancel = 3 11 | } 12 | 13 | public enum MyMessageBoxButton : int 14 | { 15 | Ok = 1, 16 | Cancel = 2, 17 | Yes = 3, 18 | No = 4 19 | } 20 | 21 | public enum DialogResults : int 22 | { 23 | Ok = 1, 24 | Cancel = 2, 25 | Yes = 3, 26 | No = 4 27 | } 28 | 29 | /// 30 | /// 显示消息框 31 | /// 32 | /// 消息内容 33 | /// 点击OK这返回DialogResults.Ok,否则返回DialogResults.Cancel 34 | public static DialogResults Show(string message) 35 | { 36 | return MyMessageBox.ShowMyDialog(message); 37 | } 38 | 39 | /// 40 | /// 显示消息框 41 | /// 42 | /// 消息内容 43 | /// 标题 44 | /// 点击OK这返回DialogResults.Ok,否则返回DialogResults.Cancel 45 | public static DialogResults Show(string message, string title) 46 | { 47 | return MyMessageBox.ShowMyDialog(message, title); 48 | } 49 | 50 | /// 51 | /// 显示消息框 52 | /// 53 | /// 消息内容 54 | /// 标题 55 | /// 显示哪些按钮 56 | /// 默认响应回车的按钮 57 | /// 点击OK这返回DialogResults.Ok,点击Yes返回DialogResults.Yes,点击No返回DialogResults.No,否则返回DialogResults.Cancel 58 | public static DialogResults Show(string message, string title, MyMessageBoxButtons buttons, MyMessageBoxButton defaultButton) 59 | { 60 | return MyMessageBox.ShowMyDialog(message, title, buttons, defaultButton); 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Style/ToggleButtonStyles.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 32 | 33 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.ClassModel/Base/CommonPlace.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | using View_Spot_of_City.ClassModel.Interface; 4 | 5 | namespace View_Spot_of_City.ClassModel.Base 6 | { 7 | public abstract class CommonPlace : INotifyPropertyChanged, IGetLngLat 8 | { 9 | public event PropertyChangedEventHandler PropertyChanged; 10 | 11 | long _ID = long.MaxValue; 12 | /// 13 | /// 标识符 14 | /// 15 | public long ID 16 | { 17 | get { return _ID; } 18 | set 19 | { 20 | _ID = value; 21 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ID")); 22 | } 23 | } 24 | 25 | double _Lng = double.MaxValue; 26 | /// 27 | /// 经度 28 | /// 29 | public double Lng 30 | { 31 | get { return _Lng; } 32 | set 33 | { 34 | _Lng = value; 35 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Lng")); 36 | } 37 | } 38 | 39 | double _Lat = double.MaxValue; 40 | /// 41 | /// 纬度 42 | /// 43 | public double Lat 44 | { 45 | get { return _Lat; } 46 | set 47 | { 48 | _Lat = value; 49 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Lat")); 50 | } 51 | } 52 | 53 | /// 54 | /// 构造一个可显示地点的 55 | /// 56 | /// 57 | /// 58 | /// 59 | public CommonPlace(long id, double lng, double lat) 60 | { 61 | ID = id; 62 | Lng = lng; 63 | Lat = lat; 64 | } 65 | 66 | /// 67 | /// 获得经度 68 | /// 69 | /// 经度 70 | public double GetLng() 71 | { 72 | return Lng; 73 | } 74 | 75 | /// 76 | /// 返回纬度 77 | /// 78 | /// 纬度 79 | public double GetLat() 80 | { 81 | return Lat; 82 | } 83 | } 84 | } -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/UIControls.xaml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/UIcontrol/SpotViewerStatistics.xaml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 27 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Helper/RoutingHelper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | using static System.Configuration.ConfigurationManager; 4 | 5 | using Esri.ArcGISRuntime.Geometry; 6 | using Esri.ArcGISRuntime.Tasks.NetworkAnalysis; 7 | 8 | namespace View_Spot_of_City.UIControls.Helper 9 | { 10 | /// 11 | /// 基于pdRouting的最短路径服务 12 | /// 13 | public static class RoutingHelper 14 | { 15 | /// 16 | /// 最短路径服务格式 17 | /// 18 | private static readonly string _pgRoutingUrlFormat = AppSettings["ShortestPathServerApi"] + ""; 19 | 20 | /// 21 | /// 得到最短路径服务Url 22 | /// 23 | /// 24 | /// 25 | private static string GetPgRoutingUrl(MapPoint startPoint, MapPoint endPoint) 26 | { 27 | return ""; 28 | } 29 | 30 | /// 31 | /// 得到最短路径服务Url 32 | /// 33 | /// 34 | /// 35 | private static string GetPgRoutingUrl(List stops) 36 | { 37 | return ""; 38 | } 39 | 40 | /// 41 | /// 获得路径 42 | /// 43 | /// 起点 44 | /// 终点 45 | /// 站点链表 46 | public static async Task> GetRouteStopsAsync(MapPoint startPoint, MapPoint endPoint) 47 | { 48 | string pgRoutingServiceUrl = GetPgRoutingUrl(startPoint, endPoint); 49 | string responseContent = (await WebServiceHelper.GetHttpResponseAsync(pgRoutingServiceUrl, null, RestSharp.Method.GET)).Content; 50 | 51 | return new List(); 52 | } 53 | 54 | /// 55 | /// 获得路径站点 56 | /// 57 | /// 必须到达的站点 58 | /// 站点链表 59 | public static async Task> GetRouteStopsAsync(List necessityStops) 60 | { 61 | string pgRoutingServiceUrl = GetPgRoutingUrl(necessityStops); 62 | string responseContent = (await WebServiceHelper.GetHttpResponseAsync(pgRoutingServiceUrl, null, RestSharp.Method.GET)).Content; 63 | 64 | return new List(); 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Form/LoginDlg.xaml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Progress/CircleProgressAsync.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System.Windows; 3 | 4 | using static View_Spot_of_City.Language.Language.LanguageDictionaryHelper; 5 | 6 | namespace View_Spot_of_City.UIControls.Progress 7 | { 8 | /// 9 | /// CircleProgressAsync.xaml 的交互逻辑 10 | /// 11 | public partial class CircleProgressAsync : Window 12 | { 13 | /// 14 | /// 构造函数 15 | /// 16 | public CircleProgressAsync() 17 | { 18 | InitializeComponent(); 19 | } 20 | 21 | /// 22 | /// 改变进度条显示文本 23 | /// 24 | /// 25 | private void _ChangeText(string text) 26 | { 27 | this.tbxInfo.Text = text; 28 | } 29 | 30 | private delegate void ChangeTextHandle(string text); 31 | 32 | /// 33 | /// 显示窗口 34 | /// 35 | private void _ShowWindow() 36 | { 37 | this.ShowInTaskbar = false; 38 | this.Topmost = true; 39 | this.Show(); 40 | } 41 | 42 | private delegate void ShowWindowHandle(); 43 | 44 | /// 45 | /// 关闭进度条 46 | /// 47 | private void _CloseProgress() 48 | { 49 | this.Close(); 50 | } 51 | 52 | private delegate void CloseHandle(); 53 | 54 | /// 55 | /// 开始显示进度条 56 | /// 57 | public void Begin() 58 | { 59 | Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, new ShowWindowHandle(_ShowWindow)); 60 | 61 | string prefixText = GetString("ProgressText") as string; 62 | string[] text = new string[] {"", ".", "..", "..." }; 63 | int i = 0; 64 | while (true) 65 | { 66 | i++; 67 | i %= 4; 68 | Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Render, new ChangeTextHandle(_ChangeText), prefixText + text[i]); 69 | Thread.Sleep(300); 70 | } 71 | } 72 | 73 | /// 74 | /// 关闭进度条 75 | /// 76 | public void CloseProgress() 77 | { 78 | Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new CloseHandle(_CloseProgress)); 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Style/WindowStyles.cs: -------------------------------------------------------------------------------- 1 | using System.Windows; 2 | using System.Windows.Input; 3 | 4 | namespace View_Spot_of_City.UIControls.Style 5 | { 6 | public partial class WindowStyles 7 | { 8 | private void Grid_MouseDown(object sender, MouseButtonEventArgs e) 9 | { 10 | if (e.LeftButton == MouseButtonState.Pressed) 11 | { 12 | Window win = (Window)((FrameworkElement)sender).TemplatedParent; 13 | win.DragMove(); 14 | } 15 | } 16 | 17 | private void btnMin_Click(object sender, RoutedEventArgs e) 18 | { 19 | Window win = (Window)((FrameworkElement)sender).TemplatedParent; 20 | win.WindowState = WindowState.Minimized; 21 | } 22 | 23 | private void btnMaxOrMin_Click(object sender, RoutedEventArgs e) 24 | { 25 | Window win = (Window)((FrameworkElement)sender).TemplatedParent; 26 | if (win.WindowState == WindowState.Maximized) 27 | { 28 | win.WindowState = WindowState.Normal; 29 | return; 30 | } 31 | win.WindowState = WindowState.Maximized; 32 | } 33 | 34 | private void btnMax_Click(object sender, RoutedEventArgs e) 35 | { 36 | Window win = (Window)((FrameworkElement)sender).TemplatedParent; 37 | if(win.WindowState == WindowState.Normal) 38 | win.WindowState = WindowState.Maximized; 39 | else 40 | win.WindowState = WindowState.Normal; 41 | } 42 | 43 | private void closeButton_Click(object sender, RoutedEventArgs e) 44 | { 45 | Window win = (Window)((FrameworkElement)sender).TemplatedParent; 46 | win.Close(); 47 | } 48 | 49 | private void btnSetting_Click(object sender, RoutedEventArgs e) 50 | { 51 | Window win = (Window)((FrameworkElement)sender).TemplatedParent; 52 | win.Close(); 53 | } 54 | 55 | private void Label_MouseDoubleClick(object sender, MouseButtonEventArgs e) 56 | { 57 | Window win = (Window)((FrameworkElement)sender).TemplatedParent; 58 | if (win.WindowState == WindowState.Maximized) 59 | { 60 | win.WindowState = WindowState.Normal; 61 | return; 62 | } 63 | win.WindowState = WindowState.Maximized; 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City.UIControls/Helper/GraphHooperHelper.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Threading.Tasks; 4 | using static System.Configuration.ConfigurationManager; 5 | 6 | using Esri.ArcGISRuntime.Geometry; 7 | using Esri.ArcGISRuntime.Tasks.NetworkAnalysis; 8 | 9 | using Newtonsoft.Json.Linq; 10 | using Newtonsoft.Json; 11 | 12 | namespace View_Spot_of_City.UIControls.Helper 13 | { 14 | public static class GraphHooperHelper 15 | { 16 | /// 17 | /// 获得路径 18 | /// 19 | /// 起点 20 | /// 终点 21 | /// 站点链表 22 | public static async Task> GetRouteStopsAsync(MapPoint startPoint, MapPoint endPoint) 23 | { 24 | //https://graphhopper.com/api/1/route?point=49.932707,11.588051&point=50.3404,11.64705&vehicle=car&debug=true&key=d3c705e4-cf27-4dc0-9c9e-5ff599db7ce8&type=json&points_encoded=false 25 | string grophHooperServiceUrl = AppSettings["GRAPHHOOPER_ROUTE_API_URL"] + "?point=" + startPoint.Y + "," + startPoint.X + "&point=" + endPoint.Y + "," + endPoint.X + 26 | "&vehicle=" + AppSettings["GRAPHHOOPER_ROUTE_API_VEHICLE"] + "&debug=" + AppSettings["GRAPHHOOPER_ROUTE_API_DEBUG"] + "&key=" + AppSettings["GRAPHHOOPER_ROUTE_API_KEY"] + 27 | "&type=json&points_encoded=false"; 28 | string responseContent = (await WebServiceHelper.GetHttpResponseAsync(grophHooperServiceUrl, null, RestSharp.Method.GET)).Content; 29 | 30 | JObject jobject = (JObject)JsonConvert.DeserializeObject(responseContent); 31 | 32 | JToken pointsToken = jobject["paths"][0]["points"]["coordinates"]; 33 | 34 | List stopList = new List(); 35 | 36 | foreach (JToken pointToken in pointsToken) 37 | { 38 | stopList.Add(new MapPoint(Convert.ToDouble(pointToken[0].ToString()), Convert.ToDouble(pointToken[1].ToString()), SpatialReferences.Wgs84)); 39 | } 40 | 41 | return stopList; 42 | } 43 | 44 | /// 45 | /// 获得路径站点 46 | /// 47 | /// 必须到达的站点 48 | /// 站点链表 49 | [Obsolete("已弃用")] 50 | public static List GetRouteStops(List necessityStops) 51 | { 52 | throw new NotImplementedException(); 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /View-Spot-of-City/View-Spot-of-City/Form/LicenseDlg.xaml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 35 | 36 |