First commit.
|
|
@ -0,0 +1,91 @@
|
||||||
|
## Ignore Visual Studio temporary files, build results, and
|
||||||
|
## files generated by popular Visual Studio add-ons.
|
||||||
|
##
|
||||||
|
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
|
||||||
|
*.suo
|
||||||
|
*.user
|
||||||
|
|
||||||
|
# Build results
|
||||||
|
[Dd]ebug/
|
||||||
|
[Dd]ebugPublic/
|
||||||
|
[Rr]elease/
|
||||||
|
[Rr]eleases/
|
||||||
|
x64/
|
||||||
|
x86/
|
||||||
|
[Ww][Ii][Nn]32/
|
||||||
|
[Aa][Rr][Mm]/
|
||||||
|
[Aa][Rr][Mm]64/
|
||||||
|
bld/
|
||||||
|
[Bb]in/
|
||||||
|
[Oo]bj/
|
||||||
|
[Ll]og/
|
||||||
|
[Ll]ogs/
|
||||||
|
|
||||||
|
# Visual Studio 2015/2017 cache/options directory
|
||||||
|
.vs/
|
||||||
|
|
||||||
|
# Files built by Visual Studio
|
||||||
|
*_i.c
|
||||||
|
*_p.c
|
||||||
|
*_h.h
|
||||||
|
*.ilk
|
||||||
|
*.meta
|
||||||
|
*.obj
|
||||||
|
*.iobj
|
||||||
|
*.pch
|
||||||
|
*.pdb
|
||||||
|
*.ipdb
|
||||||
|
*.pgc
|
||||||
|
*.pgd
|
||||||
|
*.rsp
|
||||||
|
*.sbr
|
||||||
|
*.tlb
|
||||||
|
*.tli
|
||||||
|
*.tlh
|
||||||
|
*.tmp
|
||||||
|
*.tmp_proj
|
||||||
|
*_wpftmp.csproj
|
||||||
|
*.log
|
||||||
|
*.vspscc
|
||||||
|
*.vssscc
|
||||||
|
.builds
|
||||||
|
*.pidb
|
||||||
|
*.svclog
|
||||||
|
*.scc
|
||||||
|
|
||||||
|
# NuGet Packages
|
||||||
|
*.nupkg
|
||||||
|
# NuGet Symbol Packages
|
||||||
|
*.snupkg
|
||||||
|
# The packages folder can be ignored because of Package Restore
|
||||||
|
**/[Pp]ackages/*
|
||||||
|
# except build/, which is used as an MSBuild target.
|
||||||
|
!**/[Pp]ackages/build/
|
||||||
|
# Uncomment if necessary however generally it will be regenerated when needed
|
||||||
|
#!**/[Pp]ackages/repositories.config
|
||||||
|
# NuGet v3's project.json files produces more ignorable files
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
||||||
|
# Visual Studio cache files
|
||||||
|
# files ending in .cache can be ignored
|
||||||
|
*.[Cc]ache
|
||||||
|
# but keep track of directories ending in .cache
|
||||||
|
!?*.[Cc]ache/
|
||||||
|
|
||||||
|
# Others
|
||||||
|
ClientBin/
|
||||||
|
~$*
|
||||||
|
*~
|
||||||
|
*.dbmdl
|
||||||
|
*.dbml
|
||||||
|
powercaredb.designer.db
|
||||||
|
*.dbproj.schemaview
|
||||||
|
*.jfm
|
||||||
|
*.pfx
|
||||||
|
*.publishsettings
|
||||||
|
orleans.codegen.cs
|
||||||
|
|
||||||
|
|
||||||
|
# ZAZA
|
||||||
|
distribuce
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||||
|
# Visual Studio 2010
|
||||||
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "MapDownloader", "MapDownloader\MapDownloader.vbproj", "{C7710240-E18E-4773-809F-3696D90711F6}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
|
Release|x86 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{C7710240-E18E-4773-809F-3696D90711F6}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{C7710240-E18E-4773-809F-3696D90711F6}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{C7710240-E18E-4773-809F-3696D90711F6}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{C7710240-E18E-4773-809F-3696D90711F6}.Release|x86.Build.0 = Release|x86
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
Public Class DownloadException
|
||||||
|
Inherits Exception
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
MyBase.New("Chyba při stahování mapy.")
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
Public Class MapBlock
|
||||||
|
Public imagePosX As Integer
|
||||||
|
Public imagePosY As Integer
|
||||||
|
|
||||||
|
'x blocku mapy:
|
||||||
|
Public mapPosX As Integer
|
||||||
|
'y bloku mapy:
|
||||||
|
Public mapPosY As Integer
|
||||||
|
End Class
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
Imports System.IO
|
||||||
|
Imports System.Net
|
||||||
|
|
||||||
|
Public Class clsMapovePodklady
|
||||||
|
|
||||||
|
'Private mapoveServery() As String = {"m1.mapserver.mapy.cz", "m2.mapserver.mapy.cz", "m3.mapserver.mapy.cz", "m4.mapserver.mapy.cz"}
|
||||||
|
Private mapoveServery() As String = {"mapserver.mapy.cz"}
|
||||||
|
'https://mapserver.mapy.cz/base-m/17-70940-43966
|
||||||
|
|
||||||
|
Public Function LoadMapImage(ByVal typMapy As TYP_MAPY, ByVal posX As Integer, ByVal posY As Integer, ByVal zoom As Byte) As clsPodklad
|
||||||
|
Dim apiKey As String = "Vjmja5cYKiiXB_GZH5uRbneNBq9AzEDt_UCmRa3Hg80"
|
||||||
|
Dim tileSize = 256
|
||||||
|
Dim mapset = "basic"
|
||||||
|
'Dim vzorUrl = "https://api.mapy.cz/v1/maptiles/basic/256/17/70940/43966?apikey=Vjmja5cYKiiXB_GZH5uRbneNBq9AzEDt_UCmRa3Hg80"
|
||||||
|
|
||||||
|
Dim urlFormat As String = "https://api.mapy.cz/v1/maptiles/{0}/{1}/{2}/{3}/{4}?apikey={5}"
|
||||||
|
Dim url = String.Format(urlFormat, mapset, tileSize, zoom, posX, posY, apiKey)
|
||||||
|
'Select Case typMapy
|
||||||
|
' Case TYP_MAPY.OBECNA
|
||||||
|
' url = String.Format("https://{0}/{1}/{2}-{3}-{4}", VyberMapServer(), "base-m", zoom, posX, posY)
|
||||||
|
' Case TYP_MAPY.LETECKA
|
||||||
|
' url = String.Format("https://{0}/{1}/{2}_{3:X}_{4:X}", VyberMapServer(), "ophoto", zoom, posX, posY)
|
||||||
|
' Case TYP_MAPY.ZIMNI
|
||||||
|
' url = String.Format("https://{0}/{1}/{2}_{3:X}_{4:X}", VyberMapServer(), "turist_winter", zoom, posX, posY)
|
||||||
|
' Case TYP_MAPY.TURISTICKA
|
||||||
|
' url = String.Format("https://{0}/{1}/{2}_{3:X}_{4:X}", VyberMapServer(), "turist", zoom, posX, posY)
|
||||||
|
'End Select
|
||||||
|
|
||||||
|
Using wc As New Net.WebClient()
|
||||||
|
Dim img As Image = Nothing
|
||||||
|
Dim velikost As Long
|
||||||
|
Try
|
||||||
|
img = Image.FromStream(wc.OpenRead(url))
|
||||||
|
velikost = Convert.ToInt64(wc.ResponseHeaders("Content-Length"))
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw New DownloadException()
|
||||||
|
End Try
|
||||||
|
|
||||||
|
'Dim data = New Object() {img, velikost}
|
||||||
|
Dim myPodklad As New clsPodklad(posX, posY, zoom, typMapy, velikost, img)
|
||||||
|
Debug.WriteLine("Stažen " + myPodklad.ToString)
|
||||||
|
|
||||||
|
Return myPodklad
|
||||||
|
End Using
|
||||||
|
End Function
|
||||||
|
|
||||||
|
#Region "Privátní metody"
|
||||||
|
Private Function VyberMapServer() As String
|
||||||
|
Dim pocetServeru As Integer = mapoveServery.Count
|
||||||
|
Dim generator As Random = New Random()
|
||||||
|
Return CStr(mapoveServery.GetValue(generator.Next(0, pocetServeru - 1)))
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Enum TYP_MAPY
|
||||||
|
OBECNA
|
||||||
|
LETECKA
|
||||||
|
ZIMNI
|
||||||
|
TURISTICKA
|
||||||
|
End Enum
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
''' <summary>
|
||||||
|
''' Třída reprezentující část mapy o velikosti 256x256 pixelů
|
||||||
|
''' </summary>
|
||||||
|
''' <remarks></remarks>
|
||||||
|
Public Class clsPodklad
|
||||||
|
|
||||||
|
Public x As Integer
|
||||||
|
|
||||||
|
Public y As Integer
|
||||||
|
|
||||||
|
Public zoom As Byte
|
||||||
|
|
||||||
|
Public typ As TYP_MAPY
|
||||||
|
|
||||||
|
Public velikost As Long
|
||||||
|
|
||||||
|
Private mapa As Image
|
||||||
|
|
||||||
|
Sub New(ByVal x As Integer, ByVal y As Integer, ByVal zoom As Byte, ByVal typ As TYP_MAPY, ByVal velikost As Long, ByVal mapa As Image)
|
||||||
|
Me.x = x
|
||||||
|
Me.y = y
|
||||||
|
Me.zoom = zoom
|
||||||
|
Me.typ = typ
|
||||||
|
Me.velikost = velikost
|
||||||
|
Me.mapa = mapa
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Overrides Function ToString() As String
|
||||||
|
Return String.Format("Mapový podklad - ({0};{1}) zoom={2}; typ={3}; velikost={4}", Me.x, Me.y, Me.zoom, Me.typ, Me.velikost)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GetMapa() As Image
|
||||||
|
Return Me.mapa
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
|
|
@ -0,0 +1,176 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
|
<ProductVersion>
|
||||||
|
</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{C7710240-E18E-4773-809F-3696D90711F6}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<StartupObject>MapDownloader.My.MyApplication</StartupObject>
|
||||||
|
<RootNamespace>MapDownloader</RootNamespace>
|
||||||
|
<AssemblyName>MapDownloader</AssemblyName>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<MyType>WindowsForms</MyType>
|
||||||
|
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||||
|
<TargetFrameworkProfile>
|
||||||
|
</TargetFrameworkProfile>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<DefineDebug>true</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DocumentationFile>MapDownloader.xml</DocumentationFile>
|
||||||
|
<NoWarn>
|
||||||
|
</NoWarn>
|
||||||
|
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||||
|
<PlatformTarget>x86</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<DefineDebug>false</DefineDebug>
|
||||||
|
<DefineTrace>true</DefineTrace>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DocumentationFile>MapDownloader.xml</DocumentationFile>
|
||||||
|
<NoWarn>
|
||||||
|
</NoWarn>
|
||||||
|
<WarningsAsErrors>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036</WarningsAsErrors>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<OptionExplicit>On</OptionExplicit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<OptionCompare>Binary</OptionCompare>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<OptionStrict>On</OptionStrict>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<OptionInfer>On</OptionInfer>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Import Include="Microsoft.VisualBasic" />
|
||||||
|
<Import Include="System" />
|
||||||
|
<Import Include="System.Collections" />
|
||||||
|
<Import Include="System.Collections.Generic" />
|
||||||
|
<Import Include="System.Data" />
|
||||||
|
<Import Include="System.Drawing" />
|
||||||
|
<Import Include="System.Diagnostics" />
|
||||||
|
<Import Include="System.Windows.Forms" />
|
||||||
|
<Import Include="System.Linq" />
|
||||||
|
<Import Include="System.Xml.Linq" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Core\DownloadException.vb" />
|
||||||
|
<Compile Include="Core\MapBlock.vb" />
|
||||||
|
<Compile Include="Mapa\clsMapa.vb" />
|
||||||
|
<Compile Include="Core\Mapy.cz\clsMapovePodklady.vb" />
|
||||||
|
<Compile Include="frmMain.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmMain.Designer.vb">
|
||||||
|
<DependentUpon>frmMain.vb</DependentUpon>
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmMapa.Designer.vb">
|
||||||
|
<DependentUpon>frmMapa.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmMapa.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Core\Mapy.cz\clsPodklad.vb" />
|
||||||
|
<Compile Include="modulMapy.vb" />
|
||||||
|
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||||
|
<Compile Include="My Project\Application.Designer.vb">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Application.myapp</DependentUpon>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="My Project\Resources.Designer.vb">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="My Project\Settings.Designer.vb">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<EmbeddedResource Include="frmMain.resx">
|
||||||
|
<DependentUpon>frmMain.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmMapa.resx">
|
||||||
|
<DependentUpon>frmMapa.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="My Project\Resources.resx">
|
||||||
|
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||||
|
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="app.config" />
|
||||||
|
<None Include="My Project\Application.myapp">
|
||||||
|
<Generator>MyApplicationCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<None Include="My Project\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<CustomToolNamespace>My</CustomToolNamespace>
|
||||||
|
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\down32x32.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\download32x32.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\left32x32.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\minus32x32.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\plus32x32.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\right32x32.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\up32x32.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\page-copy-icon.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,187 @@
|
||||||
|
Imports System.Drawing.Imaging
|
||||||
|
|
||||||
|
Public Class clsMapa
|
||||||
|
Private Const minZoom = 1, maxZoom = 18
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Aktuální přiblížení
|
||||||
|
''' </summary>
|
||||||
|
''' <remarks></remarks>
|
||||||
|
Private aktZoom As Byte
|
||||||
|
|
||||||
|
Public ReadOnly Property GetAktZoom As Byte
|
||||||
|
Get
|
||||||
|
Return aktZoom
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Aktuální souřadnice X
|
||||||
|
''' </summary>
|
||||||
|
''' <remarks></remarks>
|
||||||
|
Private aktPosX As Integer
|
||||||
|
|
||||||
|
Public ReadOnly Property GetAktPosX As Integer
|
||||||
|
Get
|
||||||
|
Return aktPosX
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Aktuální souřadnice Y
|
||||||
|
''' </summary>
|
||||||
|
''' <remarks></remarks>
|
||||||
|
Private aktPosY As Integer
|
||||||
|
|
||||||
|
Private aktTypMapy As TYP_MAPY
|
||||||
|
|
||||||
|
Public ReadOnly Property GetAktPosY As Integer
|
||||||
|
Get
|
||||||
|
Return aktPosY
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Pole podkladů, které jsou aktuálně zobrazeny
|
||||||
|
''' </summary>
|
||||||
|
''' <remarks>2 dimenze</remarks>
|
||||||
|
Private aktualniZobrazeni(,) As clsPodklad
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Cache podkladů pro zobrazení mapy
|
||||||
|
''' </summary>
|
||||||
|
''' <remarks>Prevence znovunačítání podkladů z netu</remarks>
|
||||||
|
Private cachePodkladu As List(Of clsPodklad)
|
||||||
|
|
||||||
|
Private mapovePodklady As clsMapovePodklady
|
||||||
|
|
||||||
|
Sub New(ByVal sirka As Integer, ByVal vyska As Integer)
|
||||||
|
Me.cachePodkladu = New List(Of clsPodklad)
|
||||||
|
Me.aktZoom = 18 'max
|
||||||
|
Me.aktPosX = 141917 'hrádek
|
||||||
|
Me.aktPosY = 87910 'hrádek
|
||||||
|
Me.aktTypMapy = TYP_MAPY.OBECNA
|
||||||
|
|
||||||
|
Me.mapovePodklady = New clsMapovePodklady
|
||||||
|
|
||||||
|
SetRozmerMapy(sirka, vyska)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub NactiAktualniZobrazeni()
|
||||||
|
For indexX = 0 To Me.aktualniZobrazeni.GetUpperBound(0)
|
||||||
|
For indexY = 0 To Me.aktualniZobrazeni.GetUpperBound(1)
|
||||||
|
Me.aktualniZobrazeni(indexX, indexY) = ZiskejPodklad(Me.aktPosX + indexX, Me.aktPosY + indexY)
|
||||||
|
Next
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Function ZiskejPodklad(ByVal x As Integer, ByVal y As Integer) As clsPodklad
|
||||||
|
Dim myPodklad As clsPodklad
|
||||||
|
|
||||||
|
'najdi v cache nejdříve:
|
||||||
|
myPodklad = (From p In Me.cachePodkladu Where p.x = x And p.y = y And p.zoom = Me.aktZoom And p.typ = Me.aktTypMapy).FirstOrDefault
|
||||||
|
|
||||||
|
'nenašel, tak stáhni a ulož:
|
||||||
|
If myPodklad Is Nothing Then
|
||||||
|
myPodklad = Me.mapovePodklady.LoadMapImage(Me.aktTypMapy, x, y, Me.aktZoom)
|
||||||
|
Me.cachePodkladu.Add(myPodklad)
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return myPodklad
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GetMapa(ByVal sirka As Integer, ByVal vyska As Integer) As Image
|
||||||
|
Dim xBloku = aktualniZobrazeni.GetUpperBound(0)
|
||||||
|
Dim yBloku = aktualniZobrazeni.GetUpperBound(1)
|
||||||
|
|
||||||
|
Dim mapa As New Bitmap((xBloku + 1) * 256, (yBloku + 1) * 256, PixelFormat.Format16bppRgb565)
|
||||||
|
Dim g As Graphics = Graphics.FromImage(mapa)
|
||||||
|
|
||||||
|
For indexX = 0 To xBloku
|
||||||
|
For indexY = 0 To yBloku
|
||||||
|
g.DrawImage(aktualniZobrazeni(indexX, indexY).GetMapa, New Point(indexX * 256, indexY * 256))
|
||||||
|
Next
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return mapa
|
||||||
|
End Function
|
||||||
|
|
||||||
|
#Region "Kontrol"
|
||||||
|
Public Sub SetRozmerMapy(ByVal sirka As Integer, ByVal vyska As Integer)
|
||||||
|
Dim sirkaPodklady As Integer = CInt(Math.Ceiling(sirka / 265))
|
||||||
|
Dim vyskaPodklady As Integer = CInt(Math.Ceiling(vyska / 265))
|
||||||
|
|
||||||
|
ReDim Me.aktualniZobrazeni(sirkaPodklady - 1, vyskaPodklady - 1)
|
||||||
|
NactiAktualniZobrazeni()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub PosunNahoru()
|
||||||
|
Me.aktPosY -= coordinateOffSet
|
||||||
|
NactiAktualniZobrazeni()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub PosunDolu()
|
||||||
|
Me.aktPosY += coordinateOffSet
|
||||||
|
NactiAktualniZobrazeni()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub PosunDoleva()
|
||||||
|
Me.aktPosX -= coordinateOffSet
|
||||||
|
NactiAktualniZobrazeni()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub PosunDoprava()
|
||||||
|
Me.aktPosX += coordinateOffSet
|
||||||
|
NactiAktualniZobrazeni()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub Priblizit()
|
||||||
|
If Me.aktZoom = maxZoom Then Exit Sub
|
||||||
|
Me.aktZoom = CByte(Me.aktZoom + 1)
|
||||||
|
|
||||||
|
Me.aktPosX = CInt(Math.Round(PrumerujX() * 2))
|
||||||
|
Me.aktPosY = CInt(Math.Round(PrumerujY() * 2))
|
||||||
|
|
||||||
|
NactiAktualniZobrazeni()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub Oddalit()
|
||||||
|
If Me.aktZoom = minZoom Then Exit Sub
|
||||||
|
Me.aktZoom = CByte(Me.aktZoom - 1)
|
||||||
|
|
||||||
|
Me.aktPosX = CInt(Math.Round(PrumerujX() / 2))
|
||||||
|
Me.aktPosY = CInt(Math.Round(PrumerujY() / 2))
|
||||||
|
|
||||||
|
NactiAktualniZobrazeni()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
#Region "Pomocné metody"
|
||||||
|
Private Function PrumerujX() As Decimal
|
||||||
|
Dim d As Decimal = 0
|
||||||
|
|
||||||
|
Dim blockX As Integer = Me.aktualniZobrazeni.GetUpperBound(0)
|
||||||
|
|
||||||
|
For indexX = 0 To blockX
|
||||||
|
d += Me.aktualniZobrazeni(indexX, 0).x
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return d / (blockX + 1)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Function PrumerujY() As Decimal
|
||||||
|
Dim d As Decimal = 0
|
||||||
|
|
||||||
|
Dim blockY As Integer = Me.aktualniZobrazeni.GetUpperBound(1)
|
||||||
|
|
||||||
|
For indexY = 0 To blockY
|
||||||
|
d += Me.aktualniZobrazeni(0, indexY).y
|
||||||
|
Next
|
||||||
|
|
||||||
|
Return d / (blockY + 1)
|
||||||
|
End Function
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
' <auto-generated>
|
||||||
|
' This code was generated by a tool.
|
||||||
|
' Runtime Version:4.0.30319.42000
|
||||||
|
'
|
||||||
|
' Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
' the code is regenerated.
|
||||||
|
' </auto-generated>
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Option Strict On
|
||||||
|
Option Explicit On
|
||||||
|
|
||||||
|
|
||||||
|
Namespace My
|
||||||
|
|
||||||
|
'NOTE: This file is auto-generated; do not modify it directly. To make changes,
|
||||||
|
' or if you encounter build errors in this file, go to the Project Designer
|
||||||
|
' (go to Project Properties or double-click the My Project node in
|
||||||
|
' Solution Explorer), and make changes on the Application tab.
|
||||||
|
'
|
||||||
|
Partial Friend Class MyApplication
|
||||||
|
|
||||||
|
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||||
|
Public Sub New()
|
||||||
|
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
|
||||||
|
Me.IsSingleInstance = false
|
||||||
|
Me.EnableVisualStyles = true
|
||||||
|
Me.SaveMySettingsOnExit = true
|
||||||
|
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||||
|
Protected Overrides Sub OnCreateMainForm()
|
||||||
|
Me.MainForm = Global.MapDownloader.frmMain
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="utf-16"?>
|
||||||
|
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<MySubMain>true</MySubMain>
|
||||||
|
<MainForm>frmMain</MainForm>
|
||||||
|
<SingleInstance>false</SingleInstance>
|
||||||
|
<ShutdownMode>0</ShutdownMode>
|
||||||
|
<EnableVisualStyles>true</EnableVisualStyles>
|
||||||
|
<AuthenticationMode>0</AuthenticationMode>
|
||||||
|
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
||||||
|
</MyApplicationData>
|
||||||
|
|
@ -0,0 +1,35 @@
|
||||||
|
Imports System
|
||||||
|
Imports System.Reflection
|
||||||
|
Imports System.Runtime.InteropServices
|
||||||
|
|
||||||
|
' General Information about an assembly is controlled through the following
|
||||||
|
' set of attributes. Change these attribute values to modify the information
|
||||||
|
' associated with an assembly.
|
||||||
|
|
||||||
|
' Review the values of the assembly attributes
|
||||||
|
|
||||||
|
<Assembly: AssemblyTitle("MapDownloader")>
|
||||||
|
<Assembly: AssemblyDescription("")>
|
||||||
|
<Assembly: AssemblyCompany("")>
|
||||||
|
<Assembly: AssemblyProduct("MapDownloader")>
|
||||||
|
<Assembly: AssemblyCopyright("Copyright © 2012")>
|
||||||
|
<Assembly: AssemblyTrademark("")>
|
||||||
|
|
||||||
|
<Assembly: ComVisible(False)>
|
||||||
|
|
||||||
|
'The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
<Assembly: Guid("61c7b100-b736-4fa4-b5ec-71a5d4d84aae")>
|
||||||
|
|
||||||
|
' Version information for an assembly consists of the following four values:
|
||||||
|
'
|
||||||
|
' Major Version
|
||||||
|
' Minor Version
|
||||||
|
' Build Number
|
||||||
|
' Revision
|
||||||
|
'
|
||||||
|
' You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
' by using the '*' as shown below:
|
||||||
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
|
<Assembly: AssemblyVersion("1.0.0.0")>
|
||||||
|
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||||
|
|
@ -0,0 +1,143 @@
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
' <auto-generated>
|
||||||
|
' This code was generated by a tool.
|
||||||
|
' Runtime Version:4.0.30319.42000
|
||||||
|
'
|
||||||
|
' Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
' the code is regenerated.
|
||||||
|
' </auto-generated>
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Option Strict On
|
||||||
|
Option Explicit On
|
||||||
|
|
||||||
|
Imports System
|
||||||
|
|
||||||
|
Namespace My.Resources
|
||||||
|
|
||||||
|
'This class was auto-generated by the StronglyTypedResourceBuilder
|
||||||
|
'class via a tool like ResGen or Visual Studio.
|
||||||
|
'To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
|
'with the /str option, or rebuild your VS project.
|
||||||
|
'''<summary>
|
||||||
|
''' A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
|
'''</summary>
|
||||||
|
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
||||||
|
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||||
|
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||||
|
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||||
|
Friend Module Resources
|
||||||
|
|
||||||
|
Private resourceMan As Global.System.Resources.ResourceManager
|
||||||
|
|
||||||
|
Private resourceCulture As Global.System.Globalization.CultureInfo
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Returns the cached ResourceManager instance used by this class.
|
||||||
|
'''</summary>
|
||||||
|
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
||||||
|
Get
|
||||||
|
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
||||||
|
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("MapDownloader.Resources", GetType(Resources).Assembly)
|
||||||
|
resourceMan = temp
|
||||||
|
End If
|
||||||
|
Return resourceMan
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Overrides the current thread's CurrentUICulture property for all
|
||||||
|
''' resource lookups using this strongly typed resource class.
|
||||||
|
'''</summary>
|
||||||
|
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
||||||
|
Get
|
||||||
|
Return resourceCulture
|
||||||
|
End Get
|
||||||
|
Set
|
||||||
|
resourceCulture = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property copy32x32() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("copy32x32", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property down32x32() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("down32x32", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property download32x32() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("download32x32", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property left32x32() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("left32x32", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property minus32x32() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("minus32x32", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property plus32x32() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("plus32x32", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property right32x32() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("right32x32", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
|
'''<summary>
|
||||||
|
''' Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
'''</summary>
|
||||||
|
Friend ReadOnly Property up32x32() As System.Drawing.Bitmap
|
||||||
|
Get
|
||||||
|
Dim obj As Object = ResourceManager.GetObject("up32x32", resourceCulture)
|
||||||
|
Return CType(obj,System.Drawing.Bitmap)
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
End Module
|
||||||
|
End Namespace
|
||||||
|
|
@ -0,0 +1,145 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="copy32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\page-copy-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="down32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\down32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="download32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\download32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="left32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\left32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="minus32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\minus32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="plus32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\plus32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="right32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\right32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="up32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\up32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
' <auto-generated>
|
||||||
|
' This code was generated by a tool.
|
||||||
|
' Runtime Version:4.0.30319.42000
|
||||||
|
'
|
||||||
|
' Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
' the code is regenerated.
|
||||||
|
' </auto-generated>
|
||||||
|
'------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Option Strict On
|
||||||
|
Option Explicit On
|
||||||
|
|
||||||
|
|
||||||
|
Namespace My
|
||||||
|
|
||||||
|
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||||
|
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0"), _
|
||||||
|
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
Partial Friend NotInheritable Class MySettings
|
||||||
|
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||||
|
|
||||||
|
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
||||||
|
|
||||||
|
#Region "My.Settings Auto-Save Functionality"
|
||||||
|
#If _MyType = "WindowsForms" Then
|
||||||
|
Private Shared addedHandler As Boolean
|
||||||
|
|
||||||
|
Private Shared addedHandlerLockObject As New Object
|
||||||
|
|
||||||
|
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||||
|
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
|
||||||
|
If My.Application.SaveMySettingsOnExit Then
|
||||||
|
My.Settings.Save()
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
#End If
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
Public Shared ReadOnly Property [Default]() As MySettings
|
||||||
|
Get
|
||||||
|
|
||||||
|
#If _MyType = "WindowsForms" Then
|
||||||
|
If Not addedHandler Then
|
||||||
|
SyncLock addedHandlerLockObject
|
||||||
|
If Not addedHandler Then
|
||||||
|
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
||||||
|
addedHandler = True
|
||||||
|
End If
|
||||||
|
End SyncLock
|
||||||
|
End If
|
||||||
|
#End If
|
||||||
|
Return defaultInstance
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
End Class
|
||||||
|
End Namespace
|
||||||
|
|
||||||
|
Namespace My
|
||||||
|
|
||||||
|
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
||||||
|
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||||
|
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||||
|
Friend Module MySettingsProperty
|
||||||
|
|
||||||
|
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
||||||
|
Friend ReadOnly Property Settings() As Global.MapDownloader.My.MySettings
|
||||||
|
Get
|
||||||
|
Return Global.MapDownloader.My.MySettings.Default
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
End Module
|
||||||
|
End Namespace
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
||||||
|
<Profiles>
|
||||||
|
<Profile Name="(Default)" />
|
||||||
|
</Profiles>
|
||||||
|
<Settings />
|
||||||
|
</SettingsFile>
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 723 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<configuration>
|
||||||
|
<system.diagnostics>
|
||||||
|
<sources>
|
||||||
|
<!-- This section defines the logging configuration for My.Application.Log -->
|
||||||
|
<source name="DefaultSource" switchName="DefaultSwitch">
|
||||||
|
<listeners>
|
||||||
|
<add name="FileLog"/>
|
||||||
|
<!-- Uncomment the below section to write to the Application Event Log -->
|
||||||
|
<!--<add name="EventLog"/>-->
|
||||||
|
</listeners>
|
||||||
|
</source>
|
||||||
|
</sources>
|
||||||
|
<switches>
|
||||||
|
<add name="DefaultSwitch" value="Information"/>
|
||||||
|
</switches>
|
||||||
|
<sharedListeners>
|
||||||
|
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
|
||||||
|
<!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
|
||||||
|
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
|
||||||
|
</sharedListeners>
|
||||||
|
</system.diagnostics>
|
||||||
|
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
|
||||||
|
|
@ -0,0 +1,352 @@
|
||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||||
|
Partial Class frmMain
|
||||||
|
Inherits System.Windows.Forms.Form
|
||||||
|
|
||||||
|
'Form overrides dispose to clean up the component list.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Required by the Windows Form Designer
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'NOTE: The following procedure is required by the Windows Form Designer
|
||||||
|
'It can be modified using the Windows Form Designer.
|
||||||
|
'Do not modify it using the code editor.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Me.btnReload = New System.Windows.Forms.Button()
|
||||||
|
Me.picMapa = New System.Windows.Forms.PictureBox()
|
||||||
|
Me.btnNahoru = New System.Windows.Forms.Button()
|
||||||
|
Me.btnDolu = New System.Windows.Forms.Button()
|
||||||
|
Me.btnDoleva = New System.Windows.Forms.Button()
|
||||||
|
Me.btnDoprava = New System.Windows.Forms.Button()
|
||||||
|
Me.Label1 = New System.Windows.Forms.Label()
|
||||||
|
Me.txtServer = New System.Windows.Forms.TextBox()
|
||||||
|
Me.txtZoom = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label2 = New System.Windows.Forms.Label()
|
||||||
|
Me.txtX = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label3 = New System.Windows.Forms.Label()
|
||||||
|
Me.txtY = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label4 = New System.Windows.Forms.Label()
|
||||||
|
Me.btnMerge = New System.Windows.Forms.Button()
|
||||||
|
Me.rtbInfo = New System.Windows.Forms.RichTextBox()
|
||||||
|
Me.picProgress = New System.Windows.Forms.PictureBox()
|
||||||
|
Me.txtRychlost = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label5 = New System.Windows.Forms.Label()
|
||||||
|
Me.nudVlakna = New System.Windows.Forms.NumericUpDown()
|
||||||
|
Me.Label8 = New System.Windows.Forms.Label()
|
||||||
|
Me.txtBlokuY = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label6 = New System.Windows.Forms.Label()
|
||||||
|
Me.txtBlokuX = New System.Windows.Forms.TextBox()
|
||||||
|
Me.Label7 = New System.Windows.Forms.Label()
|
||||||
|
Me.btnClearCache = New System.Windows.Forms.Button()
|
||||||
|
CType(Me.picMapa, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.picProgress, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.nudVlakna, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'btnReload
|
||||||
|
'
|
||||||
|
Me.btnReload.Location = New System.Drawing.Point(513, 120)
|
||||||
|
Me.btnReload.Name = "btnReload"
|
||||||
|
Me.btnReload.Size = New System.Drawing.Size(113, 27)
|
||||||
|
Me.btnReload.TabIndex = 0
|
||||||
|
Me.btnReload.Text = "Reload"
|
||||||
|
Me.btnReload.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'picMapa
|
||||||
|
'
|
||||||
|
Me.picMapa.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||||
|
Me.picMapa.Location = New System.Drawing.Point(12, 12)
|
||||||
|
Me.picMapa.Name = "picMapa"
|
||||||
|
Me.picMapa.Size = New System.Drawing.Size(256, 256)
|
||||||
|
Me.picMapa.TabIndex = 1
|
||||||
|
Me.picMapa.TabStop = False
|
||||||
|
'
|
||||||
|
'btnNahoru
|
||||||
|
'
|
||||||
|
Me.btnNahoru.Image = Global.MapDownloader.My.Resources.Resources.up32x32
|
||||||
|
Me.btnNahoru.Location = New System.Drawing.Point(313, 12)
|
||||||
|
Me.btnNahoru.Name = "btnNahoru"
|
||||||
|
Me.btnNahoru.Size = New System.Drawing.Size(36, 36)
|
||||||
|
Me.btnNahoru.TabIndex = 3
|
||||||
|
Me.btnNahoru.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnDolu
|
||||||
|
'
|
||||||
|
Me.btnDolu.Image = Global.MapDownloader.My.Resources.Resources.down32x32
|
||||||
|
Me.btnDolu.Location = New System.Drawing.Point(313, 68)
|
||||||
|
Me.btnDolu.Name = "btnDolu"
|
||||||
|
Me.btnDolu.Size = New System.Drawing.Size(36, 36)
|
||||||
|
Me.btnDolu.TabIndex = 4
|
||||||
|
Me.btnDolu.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnDoleva
|
||||||
|
'
|
||||||
|
Me.btnDoleva.Image = Global.MapDownloader.My.Resources.Resources.left32x32
|
||||||
|
Me.btnDoleva.Location = New System.Drawing.Point(274, 42)
|
||||||
|
Me.btnDoleva.Name = "btnDoleva"
|
||||||
|
Me.btnDoleva.Size = New System.Drawing.Size(36, 36)
|
||||||
|
Me.btnDoleva.TabIndex = 5
|
||||||
|
Me.btnDoleva.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnDoprava
|
||||||
|
'
|
||||||
|
Me.btnDoprava.Image = Global.MapDownloader.My.Resources.Resources.right32x32
|
||||||
|
Me.btnDoprava.Location = New System.Drawing.Point(355, 42)
|
||||||
|
Me.btnDoprava.Name = "btnDoprava"
|
||||||
|
Me.btnDoprava.Size = New System.Drawing.Size(36, 36)
|
||||||
|
Me.btnDoprava.TabIndex = 6
|
||||||
|
Me.btnDoprava.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'Label1
|
||||||
|
'
|
||||||
|
Me.Label1.AutoSize = True
|
||||||
|
Me.Label1.Location = New System.Drawing.Point(411, 25)
|
||||||
|
Me.Label1.Name = "Label1"
|
||||||
|
Me.Label1.Size = New System.Drawing.Size(41, 13)
|
||||||
|
Me.Label1.TabIndex = 7
|
||||||
|
Me.Label1.Text = "Server:"
|
||||||
|
'
|
||||||
|
'txtServer
|
||||||
|
'
|
||||||
|
Me.txtServer.Location = New System.Drawing.Point(513, 16)
|
||||||
|
Me.txtServer.Name = "txtServer"
|
||||||
|
Me.txtServer.ReadOnly = True
|
||||||
|
Me.txtServer.Size = New System.Drawing.Size(211, 20)
|
||||||
|
Me.txtServer.TabIndex = 8
|
||||||
|
'
|
||||||
|
'txtZoom
|
||||||
|
'
|
||||||
|
Me.txtZoom.Location = New System.Drawing.Point(513, 42)
|
||||||
|
Me.txtZoom.Name = "txtZoom"
|
||||||
|
Me.txtZoom.Size = New System.Drawing.Size(211, 20)
|
||||||
|
Me.txtZoom.TabIndex = 10
|
||||||
|
'
|
||||||
|
'Label2
|
||||||
|
'
|
||||||
|
Me.Label2.AutoSize = True
|
||||||
|
Me.Label2.Location = New System.Drawing.Point(411, 51)
|
||||||
|
Me.Label2.Name = "Label2"
|
||||||
|
Me.Label2.Size = New System.Drawing.Size(37, 13)
|
||||||
|
Me.Label2.TabIndex = 9
|
||||||
|
Me.Label2.Text = "Zoom:"
|
||||||
|
'
|
||||||
|
'txtX
|
||||||
|
'
|
||||||
|
Me.txtX.Location = New System.Drawing.Point(513, 68)
|
||||||
|
Me.txtX.Name = "txtX"
|
||||||
|
Me.txtX.Size = New System.Drawing.Size(211, 20)
|
||||||
|
Me.txtX.TabIndex = 12
|
||||||
|
'
|
||||||
|
'Label3
|
||||||
|
'
|
||||||
|
Me.Label3.AutoSize = True
|
||||||
|
Me.Label3.Location = New System.Drawing.Point(411, 77)
|
||||||
|
Me.Label3.Name = "Label3"
|
||||||
|
Me.Label3.Size = New System.Drawing.Size(45, 13)
|
||||||
|
Me.Label3.TabIndex = 11
|
||||||
|
Me.Label3.Text = "x coord:"
|
||||||
|
'
|
||||||
|
'txtY
|
||||||
|
'
|
||||||
|
Me.txtY.Location = New System.Drawing.Point(513, 94)
|
||||||
|
Me.txtY.Name = "txtY"
|
||||||
|
Me.txtY.Size = New System.Drawing.Size(211, 20)
|
||||||
|
Me.txtY.TabIndex = 14
|
||||||
|
'
|
||||||
|
'Label4
|
||||||
|
'
|
||||||
|
Me.Label4.AutoSize = True
|
||||||
|
Me.Label4.Location = New System.Drawing.Point(411, 103)
|
||||||
|
Me.Label4.Name = "Label4"
|
||||||
|
Me.Label4.Size = New System.Drawing.Size(45, 13)
|
||||||
|
Me.Label4.TabIndex = 13
|
||||||
|
Me.Label4.Text = "y coord:"
|
||||||
|
'
|
||||||
|
'btnMerge
|
||||||
|
'
|
||||||
|
Me.btnMerge.Location = New System.Drawing.Point(513, 381)
|
||||||
|
Me.btnMerge.Name = "btnMerge"
|
||||||
|
Me.btnMerge.Size = New System.Drawing.Size(75, 23)
|
||||||
|
Me.btnMerge.TabIndex = 15
|
||||||
|
Me.btnMerge.Text = "Stahuj"
|
||||||
|
Me.btnMerge.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'rtbInfo
|
||||||
|
'
|
||||||
|
Me.rtbInfo.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
||||||
|
Or System.Windows.Forms.AnchorStyles.Left) _
|
||||||
|
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.rtbInfo.Location = New System.Drawing.Point(730, 12)
|
||||||
|
Me.rtbInfo.Name = "rtbInfo"
|
||||||
|
Me.rtbInfo.Size = New System.Drawing.Size(246, 523)
|
||||||
|
Me.rtbInfo.TabIndex = 20
|
||||||
|
Me.rtbInfo.Text = ""
|
||||||
|
'
|
||||||
|
'picProgress
|
||||||
|
'
|
||||||
|
Me.picProgress.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
|
||||||
|
Me.picProgress.Location = New System.Drawing.Point(12, 274)
|
||||||
|
Me.picProgress.Name = "picProgress"
|
||||||
|
Me.picProgress.Size = New System.Drawing.Size(256, 256)
|
||||||
|
Me.picProgress.TabIndex = 21
|
||||||
|
Me.picProgress.TabStop = False
|
||||||
|
'
|
||||||
|
'txtRychlost
|
||||||
|
'
|
||||||
|
Me.txtRychlost.Location = New System.Drawing.Point(513, 345)
|
||||||
|
Me.txtRychlost.Name = "txtRychlost"
|
||||||
|
Me.txtRychlost.ReadOnly = True
|
||||||
|
Me.txtRychlost.Size = New System.Drawing.Size(100, 20)
|
||||||
|
Me.txtRychlost.TabIndex = 22
|
||||||
|
'
|
||||||
|
'Label5
|
||||||
|
'
|
||||||
|
Me.Label5.AutoSize = True
|
||||||
|
Me.Label5.Location = New System.Drawing.Point(412, 348)
|
||||||
|
Me.Label5.Name = "Label5"
|
||||||
|
Me.Label5.Size = New System.Drawing.Size(102, 13)
|
||||||
|
Me.Label5.TabIndex = 23
|
||||||
|
Me.Label5.Text = "Rychlost stahování:"
|
||||||
|
'
|
||||||
|
'nudVlakna
|
||||||
|
'
|
||||||
|
Me.nudVlakna.Location = New System.Drawing.Point(513, 319)
|
||||||
|
Me.nudVlakna.Maximum = New Decimal(New Integer() {1000, 0, 0, 0})
|
||||||
|
Me.nudVlakna.Minimum = New Decimal(New Integer() {1, 0, 0, 0})
|
||||||
|
Me.nudVlakna.Name = "nudVlakna"
|
||||||
|
Me.nudVlakna.Size = New System.Drawing.Size(73, 20)
|
||||||
|
Me.nudVlakna.TabIndex = 24
|
||||||
|
Me.nudVlakna.Value = New Decimal(New Integer() {10, 0, 0, 0})
|
||||||
|
'
|
||||||
|
'Label8
|
||||||
|
'
|
||||||
|
Me.Label8.AutoSize = True
|
||||||
|
Me.Label8.Location = New System.Drawing.Point(412, 321)
|
||||||
|
Me.Label8.Name = "Label8"
|
||||||
|
Me.Label8.Size = New System.Drawing.Size(43, 13)
|
||||||
|
Me.Label8.TabIndex = 25
|
||||||
|
Me.Label8.Text = "Vláken:"
|
||||||
|
'
|
||||||
|
'txtBlokuY
|
||||||
|
'
|
||||||
|
Me.txtBlokuY.Location = New System.Drawing.Point(513, 293)
|
||||||
|
Me.txtBlokuY.Name = "txtBlokuY"
|
||||||
|
Me.txtBlokuY.Size = New System.Drawing.Size(100, 20)
|
||||||
|
Me.txtBlokuY.TabIndex = 29
|
||||||
|
Me.txtBlokuY.Text = "20"
|
||||||
|
'
|
||||||
|
'Label6
|
||||||
|
'
|
||||||
|
Me.Label6.AutoSize = True
|
||||||
|
Me.Label6.Location = New System.Drawing.Point(412, 296)
|
||||||
|
Me.Label6.Name = "Label6"
|
||||||
|
Me.Label6.Size = New System.Drawing.Size(44, 13)
|
||||||
|
Me.Label6.TabIndex = 28
|
||||||
|
Me.Label6.Text = "y bloků:"
|
||||||
|
'
|
||||||
|
'txtBlokuX
|
||||||
|
'
|
||||||
|
Me.txtBlokuX.Location = New System.Drawing.Point(513, 267)
|
||||||
|
Me.txtBlokuX.Name = "txtBlokuX"
|
||||||
|
Me.txtBlokuX.Size = New System.Drawing.Size(100, 20)
|
||||||
|
Me.txtBlokuX.TabIndex = 27
|
||||||
|
Me.txtBlokuX.Text = "20"
|
||||||
|
'
|
||||||
|
'Label7
|
||||||
|
'
|
||||||
|
Me.Label7.AutoSize = True
|
||||||
|
Me.Label7.Location = New System.Drawing.Point(412, 270)
|
||||||
|
Me.Label7.Name = "Label7"
|
||||||
|
Me.Label7.Size = New System.Drawing.Size(44, 13)
|
||||||
|
Me.Label7.TabIndex = 26
|
||||||
|
Me.Label7.Text = "x bloků:"
|
||||||
|
'
|
||||||
|
'btnClearCache
|
||||||
|
'
|
||||||
|
Me.btnClearCache.Location = New System.Drawing.Point(513, 153)
|
||||||
|
Me.btnClearCache.Name = "btnClearCache"
|
||||||
|
Me.btnClearCache.Size = New System.Drawing.Size(113, 27)
|
||||||
|
Me.btnClearCache.TabIndex = 30
|
||||||
|
Me.btnClearCache.Text = "Clear cache"
|
||||||
|
Me.btnClearCache.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'frmMain
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(978, 536)
|
||||||
|
Me.Controls.Add(Me.btnClearCache)
|
||||||
|
Me.Controls.Add(Me.txtBlokuY)
|
||||||
|
Me.Controls.Add(Me.Label6)
|
||||||
|
Me.Controls.Add(Me.txtBlokuX)
|
||||||
|
Me.Controls.Add(Me.Label7)
|
||||||
|
Me.Controls.Add(Me.Label8)
|
||||||
|
Me.Controls.Add(Me.nudVlakna)
|
||||||
|
Me.Controls.Add(Me.Label5)
|
||||||
|
Me.Controls.Add(Me.txtRychlost)
|
||||||
|
Me.Controls.Add(Me.picProgress)
|
||||||
|
Me.Controls.Add(Me.rtbInfo)
|
||||||
|
Me.Controls.Add(Me.btnMerge)
|
||||||
|
Me.Controls.Add(Me.txtY)
|
||||||
|
Me.Controls.Add(Me.Label4)
|
||||||
|
Me.Controls.Add(Me.txtX)
|
||||||
|
Me.Controls.Add(Me.Label3)
|
||||||
|
Me.Controls.Add(Me.txtZoom)
|
||||||
|
Me.Controls.Add(Me.Label2)
|
||||||
|
Me.Controls.Add(Me.txtServer)
|
||||||
|
Me.Controls.Add(Me.Label1)
|
||||||
|
Me.Controls.Add(Me.btnNahoru)
|
||||||
|
Me.Controls.Add(Me.btnDoprava)
|
||||||
|
Me.Controls.Add(Me.btnDoleva)
|
||||||
|
Me.Controls.Add(Me.btnDolu)
|
||||||
|
Me.Controls.Add(Me.picMapa)
|
||||||
|
Me.Controls.Add(Me.btnReload)
|
||||||
|
Me.MaximizeBox = False
|
||||||
|
Me.Name = "frmMain"
|
||||||
|
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
|
||||||
|
Me.Text = "Map Downloader"
|
||||||
|
CType(Me.picMapa, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.picProgress, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.nudVlakna, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
Me.PerformLayout()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Friend WithEvents btnReload As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents picMapa As System.Windows.Forms.PictureBox
|
||||||
|
Friend WithEvents btnNahoru As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents btnDolu As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents btnDoleva As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents btnDoprava As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents Label1 As System.Windows.Forms.Label
|
||||||
|
Friend WithEvents txtServer As System.Windows.Forms.TextBox
|
||||||
|
Friend WithEvents txtZoom As System.Windows.Forms.TextBox
|
||||||
|
Friend WithEvents Label2 As System.Windows.Forms.Label
|
||||||
|
Friend WithEvents txtX As System.Windows.Forms.TextBox
|
||||||
|
Friend WithEvents Label3 As System.Windows.Forms.Label
|
||||||
|
Friend WithEvents txtY As System.Windows.Forms.TextBox
|
||||||
|
Friend WithEvents Label4 As System.Windows.Forms.Label
|
||||||
|
Friend WithEvents btnMerge As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents rtbInfo As System.Windows.Forms.RichTextBox
|
||||||
|
Friend WithEvents picProgress As System.Windows.Forms.PictureBox
|
||||||
|
Friend WithEvents txtRychlost As System.Windows.Forms.TextBox
|
||||||
|
Friend WithEvents Label5 As System.Windows.Forms.Label
|
||||||
|
Friend WithEvents nudVlakna As System.Windows.Forms.NumericUpDown
|
||||||
|
Friend WithEvents Label8 As System.Windows.Forms.Label
|
||||||
|
Friend WithEvents txtBlokuY As System.Windows.Forms.TextBox
|
||||||
|
Friend WithEvents Label6 As System.Windows.Forms.Label
|
||||||
|
Friend WithEvents txtBlokuX As System.Windows.Forms.TextBox
|
||||||
|
Friend WithEvents Label7 As System.Windows.Forms.Label
|
||||||
|
Friend WithEvents btnClearCache As System.Windows.Forms.Button
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
|
|
@ -0,0 +1,515 @@
|
||||||
|
Option Strict On
|
||||||
|
|
||||||
|
Imports System.Net
|
||||||
|
Imports System.IO
|
||||||
|
Imports System.Drawing.Imaging
|
||||||
|
Imports System.Threading
|
||||||
|
|
||||||
|
Public Class frmMain
|
||||||
|
'http://m1.mapserver.mapy.cz/base-n/16_7f6f000_8073000
|
||||||
|
'16_7f6f000_8073000
|
||||||
|
|
||||||
|
Private mapServer As String = "m1.mapserver.mapy.cz"
|
||||||
|
Private typMapy As TYP_MAPY = TYP_MAPY.OBECNA
|
||||||
|
|
||||||
|
Private zoom As Integer = 17 '16
|
||||||
|
'141917 'hrádek
|
||||||
|
' Me.aktPosY = 87910 'hrádek
|
||||||
|
Private aktPosX As Integer = 70944 '&H7F14000
|
||||||
|
Private aktPosY As Integer = 43964 '&H83C5000
|
||||||
|
'http://m1.mapserver.mapy.cz/base-m/18-141876-87924
|
||||||
|
'http://m2.mapserver.mapy.cz/base-m/18-141864-87917
|
||||||
|
'https://mapserver.mapy.cz/base-m/18-141949-87957
|
||||||
|
'https://mapserver.mapy.cz/base-m/18-141985-87985
|
||||||
|
'https://mapserver.mapy.cz/base-m/17-71001-44000 'chrastava
|
||||||
|
'https://mapserver.mapy.cz/base-m/17-70990-44005 'andělská hora
|
||||||
|
'https://mapserver.mapy.cz/base-m/17-70976-43988 'bílý kostel
|
||||||
|
|
||||||
|
'Mapa - Zoom=17, X=71012, Y=43987 Nová Ves
|
||||||
|
'Mapa - Zoom=17, X=70998, Y=43983 Vítkov
|
||||||
|
Private oknoMapa As frmMapa
|
||||||
|
|
||||||
|
#Region "Loading"
|
||||||
|
Dim myCache As String = "cache"
|
||||||
|
|
||||||
|
Private Sub frmMain_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
|
||||||
|
Control.CheckForIllegalCrossThreadCalls = True
|
||||||
|
|
||||||
|
If (Not Directory.Exists(myCache)) Then
|
||||||
|
Directory.CreateDirectory(myCache)
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Form1_Shown(sender As Object, e As System.EventArgs) Handles Me.Shown
|
||||||
|
oknoMapa = New frmMapa
|
||||||
|
oknoMapa.Show(Me)
|
||||||
|
|
||||||
|
Application.DoEvents()
|
||||||
|
LoadMap(0, 0)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
Private Sub LoadMap(ByVal xOffset As Integer, ByVal yOffSet As Integer)
|
||||||
|
aktPosX += xOffset
|
||||||
|
aktPosY += yOffSet
|
||||||
|
|
||||||
|
Dim apiKey As String = "Vjmja5cYKiiXB_GZH5uRbneNBq9AzEDt_UCmRa3Hg80"
|
||||||
|
Dim tileSize = 256
|
||||||
|
Dim mapset = "basic"
|
||||||
|
Dim urlFormat As String = "https://api.mapy.cz/v1/maptiles/{0}/{1}/{2}/{3}/{4}?apikey={5}"
|
||||||
|
Dim url = String.Format(urlFormat, mapset, tileSize, zoom, aktPosX, aktPosY, apiKey)
|
||||||
|
|
||||||
|
'Select Case typMapy
|
||||||
|
' Case TYP_MAPY.OBECNA
|
||||||
|
' url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", mapServer, "base-m", zoom, aktPosX, aktPosY)
|
||||||
|
' Case TYP_MAPY.LETECKA
|
||||||
|
' url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", mapServer, "ophoto", zoom, aktPosX, aktPosY)
|
||||||
|
' Case TYP_MAPY.ZIMNI
|
||||||
|
' url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", mapServer, "turist_winter", zoom, aktPosX, aktPosY)
|
||||||
|
' Case TYP_MAPY.TURISTICKA
|
||||||
|
' url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", mapServer, "turist", zoom, aktPosX, aktPosY)
|
||||||
|
'End Select
|
||||||
|
DownloadImageFromURL(url)
|
||||||
|
|
||||||
|
txtServer.Text = Me.mapServer
|
||||||
|
txtZoom.Text = Me.zoom.ToString
|
||||||
|
txtX.Text = String.Format("{0}", Me.aktPosX)
|
||||||
|
txtY.Text = String.Format("{0}", Me.aktPosY)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub LoadMapOffset(ByVal xOffset As Integer, ByVal yOffSet As Integer)
|
||||||
|
Dim url As String = ""
|
||||||
|
Select Case typMapy
|
||||||
|
Case TYP_MAPY.OBECNA
|
||||||
|
url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", mapServer, "base-m", zoom, aktPosX + xOffset, aktPosY + yOffSet)
|
||||||
|
Case TYP_MAPY.LETECKA
|
||||||
|
url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", mapServer, "ophoto", zoom, aktPosX + xOffset, aktPosY + yOffSet)
|
||||||
|
Case TYP_MAPY.ZIMNI
|
||||||
|
url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", mapServer, "turist_winter", zoom, aktPosX + xOffset, aktPosY + yOffSet)
|
||||||
|
Case TYP_MAPY.TURISTICKA
|
||||||
|
url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", mapServer, "turist", zoom, aktPosX + xOffset, aktPosY + yOffSet)
|
||||||
|
End Select
|
||||||
|
DownloadImageFromURL(url)
|
||||||
|
|
||||||
|
txtServer.Text = Me.mapServer
|
||||||
|
txtZoom.Text = Me.zoom.ToString
|
||||||
|
txtX.Text = String.Format("0x{0:X}", Me.aktPosX)
|
||||||
|
txtY.Text = String.Format("0x{0:X}", Me.aktPosY)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Function LoadMapOffsetImage(ByVal posX As Integer, ByVal posY As Integer) As Object()
|
||||||
|
Dim apiKey As String = "Vjmja5cYKiiXB_GZH5uRbneNBq9AzEDt_UCmRa3Hg80"
|
||||||
|
Dim tileSize = 256
|
||||||
|
Dim mapset = "basic"
|
||||||
|
Dim urlFormat As String = "https://api.mapy.cz/v1/maptiles/{0}/{1}/{2}/{3}/{4}?apikey={5}"
|
||||||
|
Dim url = String.Format(urlFormat, mapset, tileSize, zoom, posX, posY, apiKey)
|
||||||
|
'Select Case typMapy
|
||||||
|
' Case TYP_MAPY.OBECNA
|
||||||
|
' url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", VyberMapServer(), "base-m", zoom, posX, posY)
|
||||||
|
' Case TYP_MAPY.LETECKA
|
||||||
|
' url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", VyberMapServer(), "ophoto", zoom, posX, posY)
|
||||||
|
' Case TYP_MAPY.ZIMNI
|
||||||
|
' url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", VyberMapServer(), "turist_winter", zoom, posX, posY)
|
||||||
|
' Case TYP_MAPY.TURISTICKA
|
||||||
|
' url = String.Format("http://{0}/{1}/{2}_{3:X}_{4:X}", VyberMapServer(), "turist", zoom, posX, posY)
|
||||||
|
'End Select
|
||||||
|
|
||||||
|
Using wc As New Net.WebClient()
|
||||||
|
Dim img As Image = Nothing
|
||||||
|
Dim velikost As Int64
|
||||||
|
Try
|
||||||
|
img = Image.FromStream(wc.OpenRead(url))
|
||||||
|
velikost = Convert.ToInt64(wc.ResponseHeaders("Content-Length"))
|
||||||
|
Catch ex As Exception
|
||||||
|
Throw New DownloadException()
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Dim data = New Object() {img, velikost}
|
||||||
|
|
||||||
|
Return data
|
||||||
|
End Using
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Sub DownloadImageFromURL(ByVal url As String)
|
||||||
|
Using wc As New Net.WebClient()
|
||||||
|
Dim img As Image = Nothing
|
||||||
|
Try
|
||||||
|
img = Image.FromStream(wc.OpenRead(url))
|
||||||
|
Catch ex As WebException
|
||||||
|
ChyboveHlaseni(ex.Message)
|
||||||
|
End Try
|
||||||
|
picMapa.Image = img
|
||||||
|
Application.DoEvents()
|
||||||
|
End Using
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
#Region "Merging"
|
||||||
|
Private Sub btnMerge_Click(sender As System.Object, e As System.EventArgs) Handles btnMerge.Click
|
||||||
|
btnMerge.Enabled = False
|
||||||
|
|
||||||
|
Me.xBlocks = CInt(txtBlokuX.Text)
|
||||||
|
Me.yBlocks = CInt(txtBlokuY.Text)
|
||||||
|
|
||||||
|
'progress mapa:
|
||||||
|
Dim progressMapa = New Bitmap(256, 256)
|
||||||
|
picProgress.Image = progressMapa
|
||||||
|
|
||||||
|
Dim r As New Thread(New ThreadStart(AddressOf MereniRychlosti))
|
||||||
|
r.Start()
|
||||||
|
|
||||||
|
Dim t As New Thread(New ThreadStart(AddressOf MergeThreading))
|
||||||
|
t.Start()
|
||||||
|
|
||||||
|
btnMerge.Enabled = True
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Dim threadCount As Integer = 10
|
||||||
|
Private vlakna As Thread()
|
||||||
|
Private blocks As Queue(Of MapBlock)
|
||||||
|
Private g As Graphics
|
||||||
|
Private xBlocks As Integer
|
||||||
|
Private yBlocks As Integer
|
||||||
|
|
||||||
|
Private Sub MergeThreading()
|
||||||
|
Dim sw As Stopwatch
|
||||||
|
sw = Stopwatch.StartNew
|
||||||
|
|
||||||
|
'tlačítko:
|
||||||
|
Me.Invoke(DelegateTlacitkoMergeEnabled, False)
|
||||||
|
|
||||||
|
'mapa:
|
||||||
|
Dim bm As New Bitmap(256 * xBlocks, 256 * yBlocks, PixelFormat.Format16bppRgb565)
|
||||||
|
g = Graphics.FromImage(bm)
|
||||||
|
|
||||||
|
'bloky do fronty:
|
||||||
|
blocks = New Queue(Of MapBlock)
|
||||||
|
|
||||||
|
'na střed (virtuálně)
|
||||||
|
Dim stredX As Integer = Me.aktPosX + Me.xBlocks \ 2
|
||||||
|
Dim stredY As Integer = Me.aktPosY + Me.yBlocks \ 2
|
||||||
|
|
||||||
|
Dim imagePosX As Integer
|
||||||
|
Dim imagePosY As Integer = 0
|
||||||
|
For y As Integer = stredY - Me.yBlocks To stredY + Me.yBlocks
|
||||||
|
imagePosX = 0
|
||||||
|
For x As Integer = stredX - Me.xBlocks To stredX + Me.xBlocks
|
||||||
|
Dim b As New MapBlock
|
||||||
|
b.imagePosX = imagePosX
|
||||||
|
b.imagePosY = imagePosY
|
||||||
|
b.mapPosX = x
|
||||||
|
b.mapPosY = y
|
||||||
|
blocks.Enqueue(b)
|
||||||
|
imagePosX += 1
|
||||||
|
Next
|
||||||
|
imagePosY += 1
|
||||||
|
Next
|
||||||
|
|
||||||
|
threadCount = CInt(nudVlakna.Value)
|
||||||
|
ReDim vlakna(threadCount)
|
||||||
|
|
||||||
|
For i As Integer = 0 To (threadCount)
|
||||||
|
Dim t As New Thread(New ThreadStart(AddressOf ZpracujBlock))
|
||||||
|
vlakna(i) = t
|
||||||
|
t.Name = i.ToString
|
||||||
|
t.Start()
|
||||||
|
Next
|
||||||
|
|
||||||
|
For Each t In vlakna
|
||||||
|
t.Join()
|
||||||
|
Next
|
||||||
|
|
||||||
|
Dim fs As New FileStream(Path.Combine(PathToSlozkaMapy, "mapa.png"), FileMode.Create, FileAccess.Write)
|
||||||
|
Dim bs = New BufferedStream(fs, 4096)
|
||||||
|
bm.Save(bs, ImageFormat.Png)
|
||||||
|
bs.Close()
|
||||||
|
fs.Close()
|
||||||
|
bs.Dispose()
|
||||||
|
fs.Dispose()
|
||||||
|
bs = Nothing
|
||||||
|
fs = Nothing
|
||||||
|
|
||||||
|
g.Dispose()
|
||||||
|
g = Nothing
|
||||||
|
|
||||||
|
bm.Dispose()
|
||||||
|
bm = Nothing
|
||||||
|
|
||||||
|
sw.Stop()
|
||||||
|
Me.Invoke(DelegateKonzole, "Hotovo " + TimeToString(sw.Elapsed))
|
||||||
|
|
||||||
|
'tlačítko:
|
||||||
|
Me.Invoke(DelegateTlacitkoMergeEnabled, True)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub ZpracujBlock()
|
||||||
|
Dim myBlock As MapBlock
|
||||||
|
|
||||||
|
Dim loadedImage As Image = Nothing
|
||||||
|
Dim velikostObrazku As Long
|
||||||
|
Dim xBlockProgress As Single
|
||||||
|
Dim yBlockProgress As Single
|
||||||
|
Dim rect As RectangleF
|
||||||
|
|
||||||
|
Dim myFile As String
|
||||||
|
Dim myPath As String
|
||||||
|
|
||||||
|
Dim data As Object()
|
||||||
|
Dim fs As FileStream
|
||||||
|
Dim bs As BufferedStream
|
||||||
|
|
||||||
|
'barva vybarveného čtverečku:
|
||||||
|
Dim barva As Brush
|
||||||
|
|
||||||
|
While True
|
||||||
|
'If loadedImage IsNot Nothing Then
|
||||||
|
' loadedImage.Dispose()
|
||||||
|
' loadedImage = Nothing
|
||||||
|
'End If
|
||||||
|
|
||||||
|
SyncLock blocks
|
||||||
|
If blocks.Count = 0 Then Exit Sub
|
||||||
|
myBlock = blocks.Dequeue()
|
||||||
|
End SyncLock
|
||||||
|
|
||||||
|
'progress mapa:
|
||||||
|
xBlockProgress = CSng(256 / (xBlocks * 2))
|
||||||
|
yBlockProgress = CSng(256 / (yBlocks * 2))
|
||||||
|
rect = New RectangleF(myBlock.imagePosX * xBlockProgress, myBlock.imagePosY * yBlockProgress, xBlockProgress, yBlockProgress)
|
||||||
|
|
||||||
|
'progressMapa načítání bloku:
|
||||||
|
Me.Invoke(DelegateProgressMapa, rect, Brushes.Yellow)
|
||||||
|
|
||||||
|
Try
|
||||||
|
'najdi v souborové cachi:
|
||||||
|
myFile = String.Format("{0}_{1}-{2}.png", zoom, myBlock.mapPosX, myBlock.mapPosY)
|
||||||
|
myPath = Path.Combine(Application.StartupPath, Path.Combine(myCache, myFile))
|
||||||
|
If File.Exists(myPath) Then
|
||||||
|
Dim b As Bitmap = New Bitmap(256, 256)
|
||||||
|
Dim g As Graphics = Graphics.FromImage(b)
|
||||||
|
fs = New FileStream(myPath, FileMode.Open, FileAccess.Read)
|
||||||
|
g.DrawImage(Image.FromStream(fs), 0, 0, 256, 256)
|
||||||
|
g.Dispose()
|
||||||
|
loadedImage = CType(b, Image)
|
||||||
|
velikostObrazku = CLng(loadedImage.Size.Height * loadedImage.Size.Width * 16 / 8)
|
||||||
|
barva = Brushes.Green
|
||||||
|
fs.Close()
|
||||||
|
fs.Dispose()
|
||||||
|
fs = Nothing
|
||||||
|
Else
|
||||||
|
'jinak na netu:
|
||||||
|
data = LoadMapOffsetImage(myBlock.mapPosX, myBlock.mapPosY)
|
||||||
|
loadedImage = CType(data(0), Image)
|
||||||
|
velikostObrazku = CLng(data(1))
|
||||||
|
|
||||||
|
'savuj obrázek do cache:
|
||||||
|
fs = New FileStream(myPath, FileMode.Create, FileAccess.Write)
|
||||||
|
bs = New BufferedStream(fs, 4096)
|
||||||
|
loadedImage.Save(bs, ImageFormat.Png)
|
||||||
|
bs.Close()
|
||||||
|
fs.Close()
|
||||||
|
|
||||||
|
barva = Brushes.Blue
|
||||||
|
End If
|
||||||
|
Catch ex As DownloadException
|
||||||
|
Me.Invoke(DelegateProgressMapa, rect, Brushes.Red)
|
||||||
|
SyncLock blocks
|
||||||
|
blocks.Enqueue(myBlock)
|
||||||
|
End SyncLock
|
||||||
|
Continue While
|
||||||
|
End Try
|
||||||
|
|
||||||
|
SyncLock velikostMap
|
||||||
|
velikostMap.Add(velikostObrazku)
|
||||||
|
End SyncLock
|
||||||
|
|
||||||
|
SyncLock g
|
||||||
|
With myBlock
|
||||||
|
g.DrawImage(loadedImage, 256 * .imagePosX, 256 * .imagePosY)
|
||||||
|
End With
|
||||||
|
End SyncLock
|
||||||
|
'loadedImage.Dispose()
|
||||||
|
'loadedImage = Nothing
|
||||||
|
|
||||||
|
'náhled stažené mapy:
|
||||||
|
Me.Invoke(DelegateMapa, loadedImage)
|
||||||
|
'loadedImage.Dispose()
|
||||||
|
|
||||||
|
'progressMapa načtení bloku:
|
||||||
|
Me.Invoke(DelegateProgressMapa, rect, barva)
|
||||||
|
|
||||||
|
'Dim msg As String = String.Format("Vlákno {2}: Blok - {0}; {1}", myBlock.mapPosX, myBlock.mapPosY, Thread.CurrentThread.Name)
|
||||||
|
'Me.Invoke(DelegateKonzole, msg)
|
||||||
|
End While
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
#Region "Delegate GUI"
|
||||||
|
Private DelegateTlacitkoMergeEnabled As CallBackDelegate = AddressOf TlacitkoMergeEnabled
|
||||||
|
Private Sub TlacitkoMergeEnabled(ByVal enabled As Object)
|
||||||
|
btnMerge.Enabled = CBool(enabled)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private DelegateKonzole As CallBackDelegate = AddressOf Konzole
|
||||||
|
Private Sub Konzole(ByVal msg As Object)
|
||||||
|
rtbInfo.AppendText(CStr(msg) + vbCrLf)
|
||||||
|
rtbInfo.ScrollToCaret()
|
||||||
|
'Application.DoEvents()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private DelegateMapa As CallBackDelegate = AddressOf Mapa
|
||||||
|
Private Sub Mapa(ByVal img As Object)
|
||||||
|
Dim b As Bitmap = New Bitmap(256, 256)
|
||||||
|
Dim g As Graphics = Graphics.FromImage(b)
|
||||||
|
g.DrawImage(CType(img, Image), 0, 0, 256, 256)
|
||||||
|
picMapa.Image = b
|
||||||
|
g.Dispose()
|
||||||
|
g = Nothing
|
||||||
|
'picMapa.Refresh()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private DelegateProgressMapa As CallBackDelegate2 = AddressOf ProgressMapa
|
||||||
|
Private Sub ProgressMapa(ByVal rect As Object, ByVal color As Object)
|
||||||
|
'Dim image As Image = CType(picProgress.Image.Clone(), Drawing.Image)
|
||||||
|
Dim gProgress = Graphics.FromImage(picProgress.Image)
|
||||||
|
gProgress.FillRectangle(CType(color, Brush), CType(rect, RectangleF))
|
||||||
|
picProgress.Image = picProgress.Image
|
||||||
|
gProgress.Dispose()
|
||||||
|
gProgress = Nothing
|
||||||
|
'picProgress.Refresh()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private DelegateRychlost As CallBackDelegate = AddressOf Rychlost
|
||||||
|
Private Sub Rychlost(ByVal msg As Object)
|
||||||
|
txtRychlost.Text = CStr(msg)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
#Region "Navigace"
|
||||||
|
Private Sub btnReload_Click(sender As System.Object, e As System.EventArgs) Handles btnReload.Click
|
||||||
|
'nastav proměnné:
|
||||||
|
zoom = CInt(txtZoom.Text)
|
||||||
|
aktPosX = CInt(txtX.Text)
|
||||||
|
aktPosY = CInt(txtY.Text)
|
||||||
|
LoadMap(0, 0)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnDoleva_Click(sender As System.Object, e As System.EventArgs) Handles btnDoleva.Click
|
||||||
|
LoadMap(-1 * coordinateOffSet, 0)
|
||||||
|
NactiMapuDoOkna(-1, 0)
|
||||||
|
'LoadMap(-4096, 0)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnDolu_Click(sender As System.Object, e As System.EventArgs) Handles btnDolu.Click
|
||||||
|
LoadMap(0, coordinateOffSet)
|
||||||
|
NactiMapuDoOkna(0, 1)
|
||||||
|
'LoadMap(0, -4096)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnDoprava_Click(sender As System.Object, e As System.EventArgs) Handles btnDoprava.Click
|
||||||
|
LoadMap(coordinateOffSet, 0)
|
||||||
|
NactiMapuDoOkna(1, 0)
|
||||||
|
'LoadMap(4096, 0)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnNahoru_Click(sender As System.Object, e As System.EventArgs) Handles btnNahoru.Click
|
||||||
|
LoadMap(0, -1 * coordinateOffSet)
|
||||||
|
NactiMapuDoOkna(0, -1)
|
||||||
|
'LoadMap(0, 4096)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub NactiMapuDoOkna(ByVal posunPoX As Integer, posunPoY As Integer)
|
||||||
|
Me.aktPosX += coordinateOffSet * posunPoX
|
||||||
|
Me.aktPosY += coordinateOffSet * posunPoY
|
||||||
|
|
||||||
|
'mapa:
|
||||||
|
Dim bm As New Bitmap(256 * 3, 256 * 3, PixelFormat.Format16bppRgb565)
|
||||||
|
Dim myGraphics = Graphics.FromImage(bm)
|
||||||
|
|
||||||
|
|
||||||
|
'Dim imagePosX As Integer
|
||||||
|
'Dim imagePosY As Integer = 0
|
||||||
|
'For y As Integer = Me.aktPosY - Me.yBlocks To Me.aktPosY + Me.yBlocks
|
||||||
|
' imagePosX = 0
|
||||||
|
' For x As Integer = Me.aktPosX - Me.xBlocks To Me.aktPosX + Me.xBlocks
|
||||||
|
' Dim b As New MapBlock
|
||||||
|
' b.imagePosX = imagePosX
|
||||||
|
' b.imagePosY = imagePosY
|
||||||
|
' b.mapPosX = x
|
||||||
|
' b.mapPosY = y
|
||||||
|
' blocks.Enqueue(b)
|
||||||
|
' imagePosX += 1
|
||||||
|
' Next
|
||||||
|
' imagePosY += 1
|
||||||
|
'Next
|
||||||
|
|
||||||
|
Dim loadedImage As Image = Nothing
|
||||||
|
Dim imagePosX As Integer
|
||||||
|
Dim imagePosY As Integer = 0
|
||||||
|
For y As Integer = Me.aktPosY - 1 To Me.aktPosY + 1
|
||||||
|
imagePosX = 0
|
||||||
|
For x As Integer = Me.aktPosX - 1 To Me.aktPosX + 1
|
||||||
|
Try
|
||||||
|
Dim data = LoadMapOffsetImage(x, y)
|
||||||
|
loadedImage = CType(data(0), Image)
|
||||||
|
myGraphics.DrawImage(loadedImage, 256 * imagePosX, 256 * imagePosY)
|
||||||
|
Catch ex As DownloadException
|
||||||
|
Dim rect As New RectangleF(imagePosX * 256, imagePosY * 256, 256, 256)
|
||||||
|
myGraphics.FillRectangle(Brushes.Red, CType(rect, RectangleF))
|
||||||
|
End Try
|
||||||
|
imagePosX += 1
|
||||||
|
Next
|
||||||
|
imagePosY += 1
|
||||||
|
Next
|
||||||
|
|
||||||
|
'oknoMapa.showMap(bm)
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
#Region "Rychlost stahování"
|
||||||
|
Private velikostMap As List(Of Long)
|
||||||
|
|
||||||
|
Private Sub MereniRychlosti()
|
||||||
|
velikostMap = New List(Of Long)
|
||||||
|
|
||||||
|
Do
|
||||||
|
Thread.Sleep(2000)
|
||||||
|
Dim celkem As Long
|
||||||
|
SyncLock velikostMap
|
||||||
|
celkem = velikostMap.Sum()
|
||||||
|
velikostMap.Clear()
|
||||||
|
End SyncLock
|
||||||
|
|
||||||
|
Dim rychlost As Decimal = CDec(celkem / 1024 / 2)
|
||||||
|
Dim text As String = String.Format("{0:n2} kB/s", rychlost)
|
||||||
|
|
||||||
|
Me.Invoke(DelegateRychlost, text)
|
||||||
|
Loop
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
Private Function TimeToString(ByVal cas As TimeSpan) As String
|
||||||
|
If cas.Milliseconds <= 0 Then Return "0s"
|
||||||
|
|
||||||
|
If cas.Hours >= 24 Then Return cas.ToString
|
||||||
|
|
||||||
|
Dim myString As New List(Of String)
|
||||||
|
If cas.Hours > 0 Then myString.Add(CStr(cas.Hours) + "h")
|
||||||
|
If cas.Minutes > 0 Then myString.Add(CStr(cas.Minutes) + "min")
|
||||||
|
If cas.Seconds > 0 Then myString.Add(CStr(cas.Seconds) + "s")
|
||||||
|
If cas.Milliseconds > 0 Then myString.Add(CStr(cas.Milliseconds) + "ms")
|
||||||
|
|
||||||
|
Return String.Join(" ", myString.ToArray)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Sub btnClearCache_Click(sender As System.Object, e As System.EventArgs) Handles btnClearCache.Click
|
||||||
|
For Each deleteFile In Directory.GetFiles(myCache, "*.*", SearchOption.TopDirectoryOnly)
|
||||||
|
File.Delete(deleteFile)
|
||||||
|
Next
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
@ -0,0 +1,144 @@
|
||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||||
|
Partial Class frmMapa
|
||||||
|
Inherits System.Windows.Forms.Form
|
||||||
|
|
||||||
|
'Form overrides dispose to clean up the component list.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Required by the Windows Form Designer
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'NOTE: The following procedure is required by the Windows Form Designer
|
||||||
|
'It can be modified using the Windows Form Designer.
|
||||||
|
'Do not modify it using the code editor.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Me.btnCopy = New System.Windows.Forms.Button()
|
||||||
|
Me.btnOddalit = New System.Windows.Forms.Button()
|
||||||
|
Me.btnPriblizit = New System.Windows.Forms.Button()
|
||||||
|
Me.btnNahoru = New System.Windows.Forms.Button()
|
||||||
|
Me.btnDoprava = New System.Windows.Forms.Button()
|
||||||
|
Me.btnDoleva = New System.Windows.Forms.Button()
|
||||||
|
Me.btnDolu = New System.Windows.Forms.Button()
|
||||||
|
Me.picMapa = New System.Windows.Forms.PictureBox()
|
||||||
|
CType(Me.picMapa, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'btnCopy
|
||||||
|
'
|
||||||
|
Me.btnCopy.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.btnCopy.Image = Global.MapDownloader.My.Resources.Resources.copy32x32
|
||||||
|
Me.btnCopy.Location = New System.Drawing.Point(586, 172)
|
||||||
|
Me.btnCopy.Name = "btnCopy"
|
||||||
|
Me.btnCopy.Size = New System.Drawing.Size(40, 40)
|
||||||
|
Me.btnCopy.TabIndex = 13
|
||||||
|
Me.btnCopy.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnOddalit
|
||||||
|
'
|
||||||
|
Me.btnOddalit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.btnOddalit.Image = Global.MapDownloader.My.Resources.Resources.minus32x32
|
||||||
|
Me.btnOddalit.Location = New System.Drawing.Point(632, 126)
|
||||||
|
Me.btnOddalit.Name = "btnOddalit"
|
||||||
|
Me.btnOddalit.Size = New System.Drawing.Size(40, 40)
|
||||||
|
Me.btnOddalit.TabIndex = 12
|
||||||
|
Me.btnOddalit.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnPriblizit
|
||||||
|
'
|
||||||
|
Me.btnPriblizit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.btnPriblizit.Image = Global.MapDownloader.My.Resources.Resources.plus32x32
|
||||||
|
Me.btnPriblizit.Location = New System.Drawing.Point(586, 126)
|
||||||
|
Me.btnPriblizit.Name = "btnPriblizit"
|
||||||
|
Me.btnPriblizit.Size = New System.Drawing.Size(40, 40)
|
||||||
|
Me.btnPriblizit.TabIndex = 11
|
||||||
|
Me.btnPriblizit.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnNahoru
|
||||||
|
'
|
||||||
|
Me.btnNahoru.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.btnNahoru.Image = Global.MapDownloader.My.Resources.Resources.up32x32
|
||||||
|
Me.btnNahoru.Location = New System.Drawing.Point(607, 0)
|
||||||
|
Me.btnNahoru.Name = "btnNahoru"
|
||||||
|
Me.btnNahoru.Size = New System.Drawing.Size(40, 40)
|
||||||
|
Me.btnNahoru.TabIndex = 7
|
||||||
|
Me.btnNahoru.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnDoprava
|
||||||
|
'
|
||||||
|
Me.btnDoprava.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.btnDoprava.Image = Global.MapDownloader.My.Resources.Resources.right32x32
|
||||||
|
Me.btnDoprava.Location = New System.Drawing.Point(644, 40)
|
||||||
|
Me.btnDoprava.Name = "btnDoprava"
|
||||||
|
Me.btnDoprava.Size = New System.Drawing.Size(40, 40)
|
||||||
|
Me.btnDoprava.TabIndex = 10
|
||||||
|
Me.btnDoprava.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnDoleva
|
||||||
|
'
|
||||||
|
Me.btnDoleva.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.btnDoleva.Image = Global.MapDownloader.My.Resources.Resources.left32x32
|
||||||
|
Me.btnDoleva.Location = New System.Drawing.Point(568, 40)
|
||||||
|
Me.btnDoleva.Name = "btnDoleva"
|
||||||
|
Me.btnDoleva.Size = New System.Drawing.Size(40, 40)
|
||||||
|
Me.btnDoleva.TabIndex = 9
|
||||||
|
Me.btnDoleva.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnDolu
|
||||||
|
'
|
||||||
|
Me.btnDolu.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.btnDolu.Image = Global.MapDownloader.My.Resources.Resources.down32x32
|
||||||
|
Me.btnDolu.Location = New System.Drawing.Point(607, 80)
|
||||||
|
Me.btnDolu.Name = "btnDolu"
|
||||||
|
Me.btnDolu.Size = New System.Drawing.Size(40, 40)
|
||||||
|
Me.btnDolu.TabIndex = 8
|
||||||
|
Me.btnDolu.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'picMapa
|
||||||
|
'
|
||||||
|
Me.picMapa.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
|
Me.picMapa.Location = New System.Drawing.Point(0, 0)
|
||||||
|
Me.picMapa.Name = "picMapa"
|
||||||
|
Me.picMapa.Size = New System.Drawing.Size(684, 466)
|
||||||
|
Me.picMapa.TabIndex = 2
|
||||||
|
Me.picMapa.TabStop = False
|
||||||
|
'
|
||||||
|
'frmMapa
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(684, 466)
|
||||||
|
Me.Controls.Add(Me.btnCopy)
|
||||||
|
Me.Controls.Add(Me.btnOddalit)
|
||||||
|
Me.Controls.Add(Me.btnPriblizit)
|
||||||
|
Me.Controls.Add(Me.btnNahoru)
|
||||||
|
Me.Controls.Add(Me.btnDoprava)
|
||||||
|
Me.Controls.Add(Me.btnDoleva)
|
||||||
|
Me.Controls.Add(Me.btnDolu)
|
||||||
|
Me.Controls.Add(Me.picMapa)
|
||||||
|
Me.DoubleBuffered = True
|
||||||
|
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow
|
||||||
|
Me.Name = "frmMapa"
|
||||||
|
Me.Text = "Mapa"
|
||||||
|
CType(Me.picMapa, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
Friend WithEvents picMapa As System.Windows.Forms.PictureBox
|
||||||
|
Friend WithEvents btnNahoru As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents btnDoprava As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents btnDoleva As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents btnDolu As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents btnPriblizit As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents btnOddalit As System.Windows.Forms.Button
|
||||||
|
Friend WithEvents btnCopy As System.Windows.Forms.Button
|
||||||
|
End Class
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
</root>
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
Public Class frmMapa
|
||||||
|
|
||||||
|
Private mapa As clsMapa
|
||||||
|
|
||||||
|
Sub New()
|
||||||
|
InitializeComponent()
|
||||||
|
|
||||||
|
Me.mapa = New clsMapa(picMapa.Width, picMapa.Height)
|
||||||
|
RefreshMap()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub RefreshMap()
|
||||||
|
Me.picMapa.Image = Me.mapa.GetMapa(picMapa.Width, picMapa.Height)
|
||||||
|
Me.Text = String.Format("Mapa - Zoom={0}, X={1}, Y={2}", mapa.GetAktZoom, mapa.GetAktPosX, mapa.GetAktPosY)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub frmMapa_ResizeEnd(sender As Object, e As System.EventArgs) Handles Me.ResizeEnd
|
||||||
|
Me.mapa.SetRozmerMapy(picMapa.Width, picMapa.Height)
|
||||||
|
RefreshMap()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
#Region "Tlačítka"
|
||||||
|
Private Sub btnNahoru_Click(sender As System.Object, e As System.EventArgs) Handles btnNahoru.Click
|
||||||
|
Me.mapa.PosunNahoru()
|
||||||
|
RefreshMap()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnDolu_Click(sender As System.Object, e As System.EventArgs) Handles btnDolu.Click
|
||||||
|
Me.mapa.PosunDolu()
|
||||||
|
RefreshMap()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnDoleva_Click(sender As System.Object, e As System.EventArgs) Handles btnDoleva.Click
|
||||||
|
Me.mapa.PosunDoleva()
|
||||||
|
RefreshMap()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnDoprava_Click(sender As System.Object, e As System.EventArgs) Handles btnDoprava.Click
|
||||||
|
Me.mapa.PosunDoprava()
|
||||||
|
RefreshMap()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnPriblizit_Click(sender As System.Object, e As System.EventArgs) Handles btnPriblizit.Click
|
||||||
|
Me.mapa.Priblizit()
|
||||||
|
RefreshMap()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnOddalit_Click(sender As System.Object, e As System.EventArgs) Handles btnOddalit.Click
|
||||||
|
Me.mapa.Oddalit()
|
||||||
|
RefreshMap()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnCopy_Click(sender As System.Object, e As System.EventArgs) Handles btnCopy.Click
|
||||||
|
My.Computer.Clipboard.SetText(String.Format("Mapa - Zoom={0}, X={1}, Y={2}", mapa.GetAktZoom, mapa.GetAktPosX, mapa.GetAktPosY))
|
||||||
|
End Sub
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
Option Strict On
|
||||||
|
Imports System.Net
|
||||||
|
Imports System.IO
|
||||||
|
|
||||||
|
Module modulMapy
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Vytvoří název aplikace i s číslem verze.
|
||||||
|
''' </summary>
|
||||||
|
''' <remarks>Vhodné pro MsgBoxy.</remarks>
|
||||||
|
Public AplikaceVerze As String = String.Format("{0} {1}", My.Application.Info.Title, My.Application.Info.Version.ToString)
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Pole serverů odkud se berou mapy
|
||||||
|
''' </summary>
|
||||||
|
''' <remarks></remarks>
|
||||||
|
Public mapoveServery() As String = {"m1.mapserver.mapy.cz", "m2.mapserver.mapy.cz", "m3.mapserver.mapy.cz", "m4.mapserver.mapy.cz"}
|
||||||
|
|
||||||
|
Public Const coordinateOffSet As Integer = 1
|
||||||
|
|
||||||
|
Public Function VyberMapServer() As String
|
||||||
|
Dim pocetServeru As Integer = mapoveServery.Count
|
||||||
|
Dim generator As Random = New Random()
|
||||||
|
Return CStr(mapoveServery.GetValue(generator.Next(0, pocetServeru - 1)))
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Delegate Sub CallBackDelegate(ByVal p1 As Object)
|
||||||
|
Public Delegate Sub CallBackDelegate2(ByVal p1 As Object, ByVal p2 As Object)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Public Sub ChyboveHlaseni(ByVal zprava As String)
|
||||||
|
MsgBox(zprava, MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, AplikaceVerze)
|
||||||
|
End Sub
|
||||||
|
Public Sub InformacniHlaseni(ByVal zprava As String)
|
||||||
|
MsgBox(zprava, MsgBoxStyle.Information Or MsgBoxStyle.OkOnly, AplikaceVerze)
|
||||||
|
End Sub
|
||||||
|
Public Sub VystrazneHlaseni(ByVal zprava As String)
|
||||||
|
MsgBox(zprava, MsgBoxStyle.Exclamation Or MsgBoxStyle.OkOnly, AplikaceVerze)
|
||||||
|
End Sub
|
||||||
|
Public Function DotazovaciHlaseni(ByVal zprava As String) As MsgBoxResult
|
||||||
|
Return MsgBox(zprava, MsgBoxStyle.YesNo Or MsgBoxStyle.Question, AplikaceVerze)
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Vrátí cestu k ..\Dokumenty\Powercare\{POJISTOVNA-KOD}\{ROK}\
|
||||||
|
''' </summary>
|
||||||
|
''' <returns></returns>
|
||||||
|
''' <remarks>Případně vytvoří složku Powercare atd.</remarks>
|
||||||
|
Public Function PathToSlozkaMapy() As String
|
||||||
|
Return VytvorSlozkuPokudNeexistuje(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Mapy"))
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Function VytvorSlozkuPokudNeexistuje(ByVal path As String) As String
|
||||||
|
If Not Directory.Exists(path) Then Directory.CreateDirectory(path)
|
||||||
|
Return path
|
||||||
|
End Function
|
||||||
|
End Module
|
||||||