adicionado sensoriamento do modulo atuador
|
|
@ -280,6 +280,7 @@
|
|||
<DependentUpon>frmSenConfig.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Models\AlarmeModel.cs" />
|
||||
<Compile Include="Models\CameraCaminhoModel.cs" />
|
||||
<Compile Include="Models\CameraModel.cs" />
|
||||
<Compile Include="Models\CameraSoloModel.cs" />
|
||||
<Compile Include="Models\GPSModel.cs" />
|
||||
|
|
@ -345,6 +346,78 @@
|
|||
<Content Include="Python\Scripts\weed-detector.py">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapapi.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\components.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\empty.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gmapapi.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\arrow-down.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\cb\mod_cb_scout\cb_scout_sprite_api_003.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\cb\target_locking.gif">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\closedhand_8_8.cur">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\google_white.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\iw3.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\iws3.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\mapcontrols3d7.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\markers2\marker_sprite.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\mv\imgs8.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\openhand_8_8.cur">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\rotate2.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\szc4.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\gstatic\transparent.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\gmapcache\main.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\index.html">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\map.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\script.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\style.css">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Utils\offline_maps\webStorage.js">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<EmbeddedResource Include="Forms\Atuador\frmAtuConfig.resx">
|
||||
<DependentUpon>frmAtuConfig.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
|
@ -479,6 +552,9 @@
|
|||
<None Include="Python\Models\deeplabv3plus\__pycache__\__init__.cpython-311.pyc">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
<Content Include="Utils\offline_maps\appcache.manifest">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
|
|
|
|||
|
|
@ -27,9 +27,9 @@ namespace AgroBase.Forms
|
|||
private Timer tmrLeitura;
|
||||
|
||||
private int MaxLeituras = 10;
|
||||
private string VideoPorta = VariaveisPortas.CameraSolo;
|
||||
private string VideoPorta = VariaveisPortas.CameraSolo.ToString();
|
||||
private string VideoUrl = "green_objects";
|
||||
private string SocketPorta = VariaveisPortas.SocketSolo;
|
||||
private string SocketPorta = VariaveisPortas.SocketSolo.ToString();
|
||||
private string ArquivoLeitura = "objetos.json";
|
||||
|
||||
public frmAtuCamera()
|
||||
|
|
|
|||
|
|
@ -30,11 +30,19 @@
|
|||
{
|
||||
this.nudBicosQtd = new System.Windows.Forms.NumericUpDown();
|
||||
this.gpbBicos = new System.Windows.Forms.GroupBox();
|
||||
this.lblBicosQtd = new System.Windows.Forms.Label();
|
||||
this.chbBicosAtuacao = new System.Windows.Forms.CheckBox();
|
||||
this.lblBicosQtd = new System.Windows.Forms.Label();
|
||||
this.btnSalvar = new System.Windows.Forms.Button();
|
||||
this.btnSensoriamento = new System.Windows.Forms.Button();
|
||||
this.gpbReservatorio = new System.Windows.Forms.GroupBox();
|
||||
this.lblDensidade = new System.Windows.Forms.Label();
|
||||
this.txtDensidade = new System.Windows.Forms.TextBox();
|
||||
this.lblCapacidadeMax = new System.Windows.Forms.Label();
|
||||
this.nudCapMax = new System.Windows.Forms.NumericUpDown();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudBicosQtd)).BeginInit();
|
||||
this.gpbBicos.SuspendLayout();
|
||||
this.gpbReservatorio.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudCapMax)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// nudBicosQtd
|
||||
|
|
@ -57,15 +65,6 @@
|
|||
this.gpbBicos.TabStop = false;
|
||||
this.gpbBicos.Text = "Bicos Pulverizadores";
|
||||
//
|
||||
// lblBicosQtd
|
||||
//
|
||||
this.lblBicosQtd.AutoSize = true;
|
||||
this.lblBicosQtd.Location = new System.Drawing.Point(6, 21);
|
||||
this.lblBicosQtd.Name = "lblBicosQtd";
|
||||
this.lblBicosQtd.Size = new System.Drawing.Size(62, 13);
|
||||
this.lblBicosQtd.TabIndex = 2;
|
||||
this.lblBicosQtd.Text = "Quantidade";
|
||||
//
|
||||
// chbBicosAtuacao
|
||||
//
|
||||
this.chbBicosAtuacao.AutoSize = true;
|
||||
|
|
@ -76,9 +75,19 @@
|
|||
this.chbBicosAtuacao.Text = "Atuação em nível alto";
|
||||
this.chbBicosAtuacao.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lblBicosQtd
|
||||
//
|
||||
this.lblBicosQtd.AutoSize = true;
|
||||
this.lblBicosQtd.Location = new System.Drawing.Point(6, 21);
|
||||
this.lblBicosQtd.Name = "lblBicosQtd";
|
||||
this.lblBicosQtd.Size = new System.Drawing.Size(62, 13);
|
||||
this.lblBicosQtd.TabIndex = 2;
|
||||
this.lblBicosQtd.Text = "Quantidade";
|
||||
//
|
||||
// btnSalvar
|
||||
//
|
||||
this.btnSalvar.Location = new System.Drawing.Point(176, 63);
|
||||
this.btnSalvar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSalvar.Location = new System.Drawing.Point(352, 63);
|
||||
this.btnSalvar.Name = "btnSalvar";
|
||||
this.btnSalvar.Size = new System.Drawing.Size(94, 23);
|
||||
this.btnSalvar.TabIndex = 3;
|
||||
|
|
@ -86,11 +95,72 @@
|
|||
this.btnSalvar.UseVisualStyleBackColor = true;
|
||||
this.btnSalvar.Click += new System.EventHandler(this.btnSalvar_Click);
|
||||
//
|
||||
// btnSensoriamento
|
||||
//
|
||||
this.btnSensoriamento.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSensoriamento.Location = new System.Drawing.Point(352, 17);
|
||||
this.btnSensoriamento.Name = "btnSensoriamento";
|
||||
this.btnSensoriamento.Size = new System.Drawing.Size(94, 23);
|
||||
this.btnSensoriamento.TabIndex = 4;
|
||||
this.btnSensoriamento.Text = "Sensoriamento";
|
||||
this.btnSensoriamento.UseVisualStyleBackColor = true;
|
||||
this.btnSensoriamento.Click += new System.EventHandler(this.btnSensoriamento_Click);
|
||||
//
|
||||
// gpbReservatorio
|
||||
//
|
||||
this.gpbReservatorio.Controls.Add(this.nudCapMax);
|
||||
this.gpbReservatorio.Controls.Add(this.lblCapacidadeMax);
|
||||
this.gpbReservatorio.Controls.Add(this.txtDensidade);
|
||||
this.gpbReservatorio.Controls.Add(this.lblDensidade);
|
||||
this.gpbReservatorio.Location = new System.Drawing.Point(176, 12);
|
||||
this.gpbReservatorio.Name = "gpbReservatorio";
|
||||
this.gpbReservatorio.Size = new System.Drawing.Size(169, 74);
|
||||
this.gpbReservatorio.TabIndex = 5;
|
||||
this.gpbReservatorio.TabStop = false;
|
||||
this.gpbReservatorio.Text = "Reservatório Herbicida";
|
||||
//
|
||||
// lblDensidade
|
||||
//
|
||||
this.lblDensidade.AutoSize = true;
|
||||
this.lblDensidade.Location = new System.Drawing.Point(10, 21);
|
||||
this.lblDensidade.Name = "lblDensidade";
|
||||
this.lblDensidade.Size = new System.Drawing.Size(58, 13);
|
||||
this.lblDensidade.TabIndex = 0;
|
||||
this.lblDensidade.Text = "Densidade";
|
||||
//
|
||||
// txtDensidade
|
||||
//
|
||||
this.txtDensidade.Location = new System.Drawing.Point(84, 19);
|
||||
this.txtDensidade.Name = "txtDensidade";
|
||||
this.txtDensidade.Size = new System.Drawing.Size(72, 20);
|
||||
this.txtDensidade.TabIndex = 1;
|
||||
this.txtDensidade.Text = "0,00";
|
||||
this.txtDensidade.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
//
|
||||
// lblCapacidadeMax
|
||||
//
|
||||
this.lblCapacidadeMax.AutoSize = true;
|
||||
this.lblCapacidadeMax.Location = new System.Drawing.Point(10, 47);
|
||||
this.lblCapacidadeMax.Name = "lblCapacidadeMax";
|
||||
this.lblCapacidadeMax.Size = new System.Drawing.Size(68, 13);
|
||||
this.lblCapacidadeMax.TabIndex = 2;
|
||||
this.lblCapacidadeMax.Text = "Cap. Máxima";
|
||||
//
|
||||
// nudCapMax
|
||||
//
|
||||
this.nudCapMax.Location = new System.Drawing.Point(84, 45);
|
||||
this.nudCapMax.Name = "nudCapMax";
|
||||
this.nudCapMax.Size = new System.Drawing.Size(72, 20);
|
||||
this.nudCapMax.TabIndex = 4;
|
||||
this.nudCapMax.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
//
|
||||
// frmAtuConfig
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(282, 100);
|
||||
this.ClientSize = new System.Drawing.Size(458, 95);
|
||||
this.Controls.Add(this.gpbReservatorio);
|
||||
this.Controls.Add(this.btnSensoriamento);
|
||||
this.Controls.Add(this.btnSalvar);
|
||||
this.Controls.Add(this.gpbBicos);
|
||||
this.Name = "frmAtuConfig";
|
||||
|
|
@ -101,6 +171,9 @@
|
|||
((System.ComponentModel.ISupportInitialize)(this.nudBicosQtd)).EndInit();
|
||||
this.gpbBicos.ResumeLayout(false);
|
||||
this.gpbBicos.PerformLayout();
|
||||
this.gpbReservatorio.ResumeLayout(false);
|
||||
this.gpbReservatorio.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nudCapMax)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
|
@ -111,5 +184,11 @@
|
|||
private System.Windows.Forms.CheckBox chbBicosAtuacao;
|
||||
private System.Windows.Forms.Label lblBicosQtd;
|
||||
private System.Windows.Forms.Button btnSalvar;
|
||||
private System.Windows.Forms.Button btnSensoriamento;
|
||||
private System.Windows.Forms.GroupBox gpbReservatorio;
|
||||
private System.Windows.Forms.Label lblDensidade;
|
||||
private System.Windows.Forms.TextBox txtDensidade;
|
||||
private System.Windows.Forms.Label lblCapacidadeMax;
|
||||
private System.Windows.Forms.NumericUpDown nudCapMax;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
using AgroBase.Comum;
|
||||
using AgroBase.Forms.Sensoriamento;
|
||||
using AgroBase.Models;
|
||||
using AgroBase.Models.Modules;
|
||||
using Emgu.CV.Ocl;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
|
|
@ -32,6 +34,8 @@ namespace AgroBase.Forms.Atuador
|
|||
|
||||
chbBicosAtuacao.Checked = Disp.Dados.AtuacaoNivelAlto;
|
||||
nudBicosQtd.Value = Disp.Dados.QuantidadeBicos;
|
||||
txtDensidade.Text = Disp.Dados.DensidadeHerbicida.ToString("0.00");
|
||||
nudCapMax.Value = Convert.ToInt32(Disp.Dados.CapacidadeReservatorio);
|
||||
}
|
||||
|
||||
private void frmAtuConfig_FormClosing(object sender, FormClosingEventArgs e)
|
||||
|
|
@ -44,8 +48,18 @@ namespace AgroBase.Forms.Atuador
|
|||
{
|
||||
Disp.Dados.AtuacaoNivelAlto = chbBicosAtuacao.Checked;
|
||||
Disp.Dados.QuantidadeBicos = Convert.ToInt32(nudBicosQtd.Value);
|
||||
Disp.Dados.DensidadeHerbicida = Convert.ToDouble(txtDensidade.Text.Replace(".", ","));
|
||||
Disp.Dados.CapacidadeReservatorio = Convert.ToDouble(nudCapMax.Value);
|
||||
|
||||
Disp.SalvarParametros(Disp.Dados);
|
||||
}
|
||||
|
||||
private void btnSensoriamento_Click(object sender, EventArgs e)
|
||||
{
|
||||
frmSenConfig frmConfig = new frmSenConfig();
|
||||
frmConfig.Dispositivo = T_Code.Atu;
|
||||
frmConfig.Text += " (Atuador)";
|
||||
frmConfig.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,9 +32,9 @@ namespace AgroBase.Forms.Movimentacao
|
|||
private Timer tmrLeitura;
|
||||
|
||||
private int MaxLeituras = 1;
|
||||
private string VideoPorta = VariaveisPortas.CameraCaminho;
|
||||
private string VideoPorta = VariaveisPortas.CameraCaminho.ToString();
|
||||
private string VideoUrl = "street_detector";
|
||||
private string SocketPorta = VariaveisPortas.SocketCaminho;
|
||||
private string SocketPorta = VariaveisPortas.SocketCaminho.ToString();
|
||||
private bool MostrarDebug = true;
|
||||
private string ArquivoLeitura = "leitura_solo.json";
|
||||
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
this.pnlCameraSoloE = new System.Windows.Forms.Panel();
|
||||
this.pnlCameraCaminho = new System.Windows.Forms.Panel();
|
||||
this.pnlAtuadores = new System.Windows.Forms.Panel();
|
||||
this.pnlMapa = new System.Windows.Forms.Panel();
|
||||
this.btnDesenharMapa = new System.Windows.Forms.Button();
|
||||
this.pnlCaminho = new System.Windows.Forms.Panel();
|
||||
this.pnlGraficos = new System.Windows.Forms.Panel();
|
||||
this.chartGraficos = new System.Windows.Forms.DataVisualization.Charting.Chart();
|
||||
this.pnlNiveis = new System.Windows.Forms.Panel();
|
||||
|
|
@ -70,10 +69,16 @@ namespace AgroBase.Forms.Operacoes
|
|||
this.lblDistanciaEsquerda = new System.Windows.Forms.Label();
|
||||
this.lblDistanciaDireita = new System.Windows.Forms.Label();
|
||||
this.pnlInferior = new System.Windows.Forms.Panel();
|
||||
this.chbGPSativo = new System.Windows.Forms.CheckBox();
|
||||
this.chbATUativo = new System.Windows.Forms.CheckBox();
|
||||
this.chbDIRativo = new System.Windows.Forms.CheckBox();
|
||||
this.chbMOVativo = new System.Windows.Forms.CheckBox();
|
||||
this.lblUltimaLeituraRua = new System.Windows.Forms.Label();
|
||||
this.lblUltimaLeituraSolo = new System.Windows.Forms.Label();
|
||||
this.pnlMapa = new System.Windows.Forms.Panel();
|
||||
this.lblPressao = new System.Windows.Forms.Label();
|
||||
this.pnlCameraSolo.SuspendLayout();
|
||||
this.pnlMapa.SuspendLayout();
|
||||
this.pnlAtuadores.SuspendLayout();
|
||||
this.pnlGraficos.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chartGraficos)).BeginInit();
|
||||
this.pnlNiveis.SuspendLayout();
|
||||
|
|
@ -87,22 +92,24 @@ namespace AgroBase.Forms.Operacoes
|
|||
this.pnlCameraSolo.BackColor = System.Drawing.SystemColors.ControlDark;
|
||||
this.pnlCameraSolo.Controls.Add(this.pnlCameraSoloD);
|
||||
this.pnlCameraSolo.Controls.Add(this.pnlCameraSoloE);
|
||||
this.pnlCameraSolo.Location = new System.Drawing.Point(9, 32);
|
||||
this.pnlCameraSolo.Location = new System.Drawing.Point(9, 217);
|
||||
this.pnlCameraSolo.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.pnlCameraSolo.Name = "pnlCameraSolo";
|
||||
this.pnlCameraSolo.Size = new System.Drawing.Size(592, 453);
|
||||
this.pnlCameraSolo.Size = new System.Drawing.Size(592, 268);
|
||||
this.pnlCameraSolo.TabIndex = 0;
|
||||
//
|
||||
// pnlCameraSoloD
|
||||
//
|
||||
this.pnlCameraSoloD.Location = new System.Drawing.Point(299, 186);
|
||||
this.pnlCameraSoloD.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.pnlCameraSoloD.Location = new System.Drawing.Point(299, 2);
|
||||
this.pnlCameraSoloD.Name = "pnlCameraSoloD";
|
||||
this.pnlCameraSoloD.Size = new System.Drawing.Size(289, 264);
|
||||
this.pnlCameraSoloD.TabIndex = 1;
|
||||
//
|
||||
// pnlCameraSoloE
|
||||
//
|
||||
this.pnlCameraSoloE.Location = new System.Drawing.Point(4, 186);
|
||||
this.pnlCameraSoloE.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.pnlCameraSoloE.Location = new System.Drawing.Point(4, 2);
|
||||
this.pnlCameraSoloE.Name = "pnlCameraSoloE";
|
||||
this.pnlCameraSoloE.Size = new System.Drawing.Size(289, 264);
|
||||
this.pnlCameraSoloE.TabIndex = 0;
|
||||
|
|
@ -120,6 +127,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
//
|
||||
this.pnlAtuadores.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.pnlAtuadores.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.pnlAtuadores.Controls.Add(this.lblPressao);
|
||||
this.pnlAtuadores.Location = new System.Drawing.Point(9, 491);
|
||||
this.pnlAtuadores.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.pnlAtuadores.Name = "pnlAtuadores";
|
||||
|
|
@ -127,27 +135,15 @@ namespace AgroBase.Forms.Operacoes
|
|||
this.pnlAtuadores.TabIndex = 2;
|
||||
this.pnlAtuadores.Paint += new System.Windows.Forms.PaintEventHandler(this.pnlAtuadores_Paint);
|
||||
//
|
||||
// pnlMapa
|
||||
// pnlCaminho
|
||||
//
|
||||
this.pnlMapa.BackColor = System.Drawing.Color.White;
|
||||
this.pnlMapa.Controls.Add(this.btnDesenharMapa);
|
||||
this.pnlMapa.Location = new System.Drawing.Point(627, 10);
|
||||
this.pnlMapa.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.pnlMapa.Name = "pnlMapa";
|
||||
this.pnlMapa.Size = new System.Drawing.Size(384, 279);
|
||||
this.pnlMapa.TabIndex = 3;
|
||||
this.pnlMapa.Paint += new System.Windows.Forms.PaintEventHandler(this.pnlMapa_Paint);
|
||||
//
|
||||
// btnDesenharMapa
|
||||
//
|
||||
this.btnDesenharMapa.Location = new System.Drawing.Point(306, 258);
|
||||
this.btnDesenharMapa.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnDesenharMapa.Name = "btnDesenharMapa";
|
||||
this.btnDesenharMapa.Size = new System.Drawing.Size(76, 19);
|
||||
this.btnDesenharMapa.TabIndex = 14;
|
||||
this.btnDesenharMapa.Text = "Desenhar";
|
||||
this.btnDesenharMapa.UseVisualStyleBackColor = true;
|
||||
this.btnDesenharMapa.Click += new System.EventHandler(this.btnDesenharMapa_Click);
|
||||
this.pnlCaminho.BackColor = System.Drawing.Color.White;
|
||||
this.pnlCaminho.Location = new System.Drawing.Point(627, 21);
|
||||
this.pnlCaminho.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.pnlCaminho.Name = "pnlCaminho";
|
||||
this.pnlCaminho.Size = new System.Drawing.Size(384, 279);
|
||||
this.pnlCaminho.TabIndex = 3;
|
||||
this.pnlCaminho.Paint += new System.Windows.Forms.PaintEventHandler(this.pnlCaminho_Paint);
|
||||
//
|
||||
// pnlGraficos
|
||||
//
|
||||
|
|
@ -341,7 +337,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
//
|
||||
// btnCarregarMapa
|
||||
//
|
||||
this.btnCarregarMapa.Location = new System.Drawing.Point(933, 291);
|
||||
this.btnCarregarMapa.Location = new System.Drawing.Point(280, 5);
|
||||
this.btnCarregarMapa.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnCarregarMapa.Name = "btnCarregarMapa";
|
||||
this.btnCarregarMapa.Size = new System.Drawing.Size(76, 22);
|
||||
|
|
@ -354,7 +350,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
//
|
||||
this.lblMapaCarregado.AutoSize = true;
|
||||
this.lblMapaCarregado.Font = new System.Drawing.Font("Mongolian Baiti", 9F, System.Drawing.FontStyle.Bold);
|
||||
this.lblMapaCarregado.Location = new System.Drawing.Point(688, 291);
|
||||
this.lblMapaCarregado.Location = new System.Drawing.Point(11, 11);
|
||||
this.lblMapaCarregado.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblMapaCarregado.Name = "lblMapaCarregado";
|
||||
this.lblMapaCarregado.Size = new System.Drawing.Size(129, 13);
|
||||
|
|
@ -453,7 +449,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
// pnlInclinacao
|
||||
//
|
||||
this.pnlInclinacao.BackColor = System.Drawing.Color.White;
|
||||
this.pnlInclinacao.Location = new System.Drawing.Point(606, 218);
|
||||
this.pnlInclinacao.Location = new System.Drawing.Point(625, 6);
|
||||
this.pnlInclinacao.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.pnlInclinacao.Name = "pnlInclinacao";
|
||||
this.pnlInclinacao.Size = new System.Drawing.Size(78, 84);
|
||||
|
|
@ -463,27 +459,31 @@ namespace AgroBase.Forms.Operacoes
|
|||
// lblDistanciaEsquerda
|
||||
//
|
||||
this.lblDistanciaEsquerda.AutoSize = true;
|
||||
this.lblDistanciaEsquerda.Font = new System.Drawing.Font("Mongolian Baiti", 9F, System.Drawing.FontStyle.Bold);
|
||||
this.lblDistanciaEsquerda.Location = new System.Drawing.Point(9, 16);
|
||||
this.lblDistanciaEsquerda.Font = new System.Drawing.Font("Mongolian Baiti", 9.25F, System.Drawing.FontStyle.Bold);
|
||||
this.lblDistanciaEsquerda.Location = new System.Drawing.Point(608, 300);
|
||||
this.lblDistanciaEsquerda.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblDistanciaEsquerda.Name = "lblDistanciaEsquerda";
|
||||
this.lblDistanciaEsquerda.Size = new System.Drawing.Size(180, 13);
|
||||
this.lblDistanciaEsquerda.Size = new System.Drawing.Size(215, 14);
|
||||
this.lblDistanciaEsquerda.TabIndex = 11;
|
||||
this.lblDistanciaEsquerda.Text = "Distancia da Esquerda: 000 px";
|
||||
this.lblDistanciaEsquerda.Text = "Distancia da Esquerda: 00.00 cm";
|
||||
//
|
||||
// lblDistanciaDireita
|
||||
//
|
||||
this.lblDistanciaDireita.AutoSize = true;
|
||||
this.lblDistanciaDireita.Font = new System.Drawing.Font("Mongolian Baiti", 9F, System.Drawing.FontStyle.Bold);
|
||||
this.lblDistanciaDireita.Location = new System.Drawing.Point(190, 16);
|
||||
this.lblDistanciaDireita.Location = new System.Drawing.Point(834, 301);
|
||||
this.lblDistanciaDireita.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblDistanciaDireita.Name = "lblDistanciaDireita";
|
||||
this.lblDistanciaDireita.Size = new System.Drawing.Size(167, 13);
|
||||
this.lblDistanciaDireita.Size = new System.Drawing.Size(180, 13);
|
||||
this.lblDistanciaDireita.TabIndex = 12;
|
||||
this.lblDistanciaDireita.Text = "Distancia da Direita: 000 px";
|
||||
this.lblDistanciaDireita.Text = "Distancia da Direita: 00.00 cm";
|
||||
//
|
||||
// pnlInferior
|
||||
//
|
||||
this.pnlInferior.Controls.Add(this.chbGPSativo);
|
||||
this.pnlInferior.Controls.Add(this.chbATUativo);
|
||||
this.pnlInferior.Controls.Add(this.chbDIRativo);
|
||||
this.pnlInferior.Controls.Add(this.chbMOVativo);
|
||||
this.pnlInferior.Controls.Add(this.lblUltimaLeituraRua);
|
||||
this.pnlInferior.Controls.Add(this.lblUltimaLeituraSolo);
|
||||
this.pnlInferior.Font = new System.Drawing.Font("Mongolian Baiti", 9F, System.Drawing.FontStyle.Bold);
|
||||
|
|
@ -493,6 +493,46 @@ namespace AgroBase.Forms.Operacoes
|
|||
this.pnlInferior.Size = new System.Drawing.Size(592, 41);
|
||||
this.pnlInferior.TabIndex = 13;
|
||||
//
|
||||
// chbGPSativo
|
||||
//
|
||||
this.chbGPSativo.AutoSize = true;
|
||||
this.chbGPSativo.Location = new System.Drawing.Point(531, 20);
|
||||
this.chbGPSativo.Name = "chbGPSativo";
|
||||
this.chbGPSativo.Size = new System.Drawing.Size(52, 17);
|
||||
this.chbGPSativo.TabIndex = 9;
|
||||
this.chbGPSativo.Text = "GPS";
|
||||
this.chbGPSativo.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chbATUativo
|
||||
//
|
||||
this.chbATUativo.AutoSize = true;
|
||||
this.chbATUativo.Location = new System.Drawing.Point(531, 3);
|
||||
this.chbATUativo.Name = "chbATUativo";
|
||||
this.chbATUativo.Size = new System.Drawing.Size(54, 17);
|
||||
this.chbATUativo.TabIndex = 8;
|
||||
this.chbATUativo.Text = "ATU";
|
||||
this.chbATUativo.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chbDIRativo
|
||||
//
|
||||
this.chbDIRativo.AutoSize = true;
|
||||
this.chbDIRativo.Location = new System.Drawing.Point(467, 23);
|
||||
this.chbDIRativo.Name = "chbDIRativo";
|
||||
this.chbDIRativo.Size = new System.Drawing.Size(50, 17);
|
||||
this.chbDIRativo.TabIndex = 7;
|
||||
this.chbDIRativo.Text = "DIR";
|
||||
this.chbDIRativo.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// chbMOVativo
|
||||
//
|
||||
this.chbMOVativo.AutoSize = true;
|
||||
this.chbMOVativo.Location = new System.Drawing.Point(467, 3);
|
||||
this.chbMOVativo.Name = "chbMOVativo";
|
||||
this.chbMOVativo.Size = new System.Drawing.Size(58, 17);
|
||||
this.chbMOVativo.TabIndex = 6;
|
||||
this.chbMOVativo.Text = "MOV";
|
||||
this.chbMOVativo.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// lblUltimaLeituraRua
|
||||
//
|
||||
this.lblUltimaLeituraRua.AutoSize = true;
|
||||
|
|
@ -513,23 +553,40 @@ namespace AgroBase.Forms.Operacoes
|
|||
this.lblUltimaLeituraSolo.TabIndex = 4;
|
||||
this.lblUltimaLeituraSolo.Text = "Ultima Leitura Solo: 00:00:00.000";
|
||||
//
|
||||
// pnlMapa
|
||||
//
|
||||
this.pnlMapa.Location = new System.Drawing.Point(9, 32);
|
||||
this.pnlMapa.Name = "pnlMapa";
|
||||
this.pnlMapa.Size = new System.Drawing.Size(347, 181);
|
||||
this.pnlMapa.TabIndex = 14;
|
||||
//
|
||||
// lblPressao
|
||||
//
|
||||
this.lblPressao.AutoSize = true;
|
||||
this.lblPressao.Location = new System.Drawing.Point(-2, 0);
|
||||
this.lblPressao.Name = "lblPressao";
|
||||
this.lblPressao.Size = new System.Drawing.Size(57, 13);
|
||||
this.lblPressao.TabIndex = 0;
|
||||
this.lblPressao.Text = "P: 0.00 psi";
|
||||
//
|
||||
// frmOperacaoSeguidorLinha
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.ClientSize = new System.Drawing.Size(1020, 697);
|
||||
this.Controls.Add(this.lblDistanciaEsquerda);
|
||||
this.Controls.Add(this.pnlMapa);
|
||||
this.Controls.Add(this.pnlInferior);
|
||||
this.Controls.Add(this.btnCarregarMapa);
|
||||
this.Controls.Add(this.lblDistanciaDireita);
|
||||
this.Controls.Add(this.lblDistanciaEsquerda);
|
||||
this.Controls.Add(this.pnlInclinacao);
|
||||
this.Controls.Add(this.gpbInformacoesGerais);
|
||||
this.Controls.Add(this.lblMapaCarregado);
|
||||
this.Controls.Add(this.gpbOpcoes);
|
||||
this.Controls.Add(this.pnlNiveis);
|
||||
this.Controls.Add(this.pnlGraficos);
|
||||
this.Controls.Add(this.pnlMapa);
|
||||
this.Controls.Add(this.pnlCaminho);
|
||||
this.Controls.Add(this.pnlAtuadores);
|
||||
this.Controls.Add(this.pnlCameraCaminho);
|
||||
this.Controls.Add(this.pnlCameraSolo);
|
||||
|
|
@ -540,7 +597,8 @@ namespace AgroBase.Forms.Operacoes
|
|||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmOperacaoSeguidorLinha_FormClosing);
|
||||
this.Load += new System.EventHandler(this.frmOperacaoSeguidorLinha_Load);
|
||||
this.pnlCameraSolo.ResumeLayout(false);
|
||||
this.pnlMapa.ResumeLayout(false);
|
||||
this.pnlAtuadores.ResumeLayout(false);
|
||||
this.pnlAtuadores.PerformLayout();
|
||||
this.pnlGraficos.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.chartGraficos)).EndInit();
|
||||
this.pnlNiveis.ResumeLayout(false);
|
||||
|
|
@ -561,7 +619,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
private System.Windows.Forms.Panel pnlCameraSolo;
|
||||
private System.Windows.Forms.Panel pnlCameraCaminho;
|
||||
private System.Windows.Forms.Panel pnlAtuadores;
|
||||
private System.Windows.Forms.Panel pnlMapa;
|
||||
private System.Windows.Forms.Panel pnlCaminho;
|
||||
private System.Windows.Forms.Panel pnlGraficos;
|
||||
private System.Windows.Forms.DataVisualization.Charting.Chart chartGraficos;
|
||||
private System.Windows.Forms.Panel pnlNiveis;
|
||||
|
|
@ -593,10 +651,15 @@ namespace AgroBase.Forms.Operacoes
|
|||
private System.Windows.Forms.Panel pnlInferior;
|
||||
private System.Windows.Forms.Label lblUltimaLeituraRua;
|
||||
private System.Windows.Forms.Label lblUltimaLeituraSolo;
|
||||
private System.Windows.Forms.Button btnDesenharMapa;
|
||||
private System.Windows.Forms.Panel pnlCameraSoloD;
|
||||
private System.Windows.Forms.Panel pnlCameraSoloE;
|
||||
private System.Windows.Forms.ComboBox cmbCameraSoloD;
|
||||
private System.Windows.Forms.Label lblCameraSoloD;
|
||||
private System.Windows.Forms.Panel pnlMapa;
|
||||
private System.Windows.Forms.CheckBox chbGPSativo;
|
||||
private System.Windows.Forms.CheckBox chbATUativo;
|
||||
private System.Windows.Forms.CheckBox chbDIRativo;
|
||||
private System.Windows.Forms.CheckBox chbMOVativo;
|
||||
private System.Windows.Forms.Label lblPressao;
|
||||
}
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ using AgroBase.Models.Modules;
|
|||
using AgroBase.Services;
|
||||
using CefSharp;
|
||||
using CefSharp.WinForms;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
|
|
@ -23,9 +24,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
{
|
||||
private List<CameraSoloModel> CamerasSolo = new List<CameraSoloModel>();
|
||||
|
||||
private CameraService<CameraAnguloModel> cameraCaminho = new CameraService<CameraAnguloModel>();
|
||||
private ChromiumWebBrowser webCaminho = null;
|
||||
private string cameraCaminhoSelecionada = "";
|
||||
private CameraCaminhoModel cameraCaminho;
|
||||
|
||||
private ChromiumWebBrowser webMapa = null;
|
||||
|
||||
|
|
@ -35,12 +34,21 @@ namespace AgroBase.Forms.Operacoes
|
|||
DispositivosService<DirecionalModel> Direcional;
|
||||
DispositivosService<AtuadorModel> Atuador;
|
||||
|
||||
private List<PointF> pathPoints = new List<PointF>();
|
||||
private PointF currentPosition = new PointF(0, 0);
|
||||
|
||||
public frmOperacaoSeguidorLinha()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
// Ativa o double buffering
|
||||
this.DoubleBuffered = true;
|
||||
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
||||
this.SetStyle(ControlStyles.UserPaint, true);
|
||||
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
|
||||
|
||||
pnlAtuadores.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(pnlAtuadores, new object[] { ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true });
|
||||
pnlCaminho.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(pnlCaminho, new object[] { ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true });
|
||||
pnlInclinacao.GetType().GetMethod("SetStyle", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).Invoke(pnlInclinacao, new object[] { ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true });
|
||||
|
||||
}
|
||||
|
||||
private void frmOperacaoSeguidorLinha_Load(object sender, EventArgs e)
|
||||
|
|
@ -68,13 +76,18 @@ namespace AgroBase.Forms.Operacoes
|
|||
Movimentacao = (DispositivosService<MovimentacaoModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Enuns.T_Code.Mov);
|
||||
Direcional = (DispositivosService<DirecionalModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Enuns.T_Code.Dir);
|
||||
Atuador = (DispositivosService<AtuadorModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Enuns.T_Code.Atu);
|
||||
|
||||
chbMOVativo.Checked = Movimentacao != null && Movimentacao._Porta.IsOpen;
|
||||
chbDIRativo.Checked = Direcional != null && Direcional._Porta.IsOpen;
|
||||
chbATUativo.Checked = Atuador != null && Atuador._Porta.IsOpen;
|
||||
chbGPSativo.Checked = GPSService.PortaGPS != null && GPSService.PortaGPS.IsOpen;
|
||||
|
||||
AtualizarGrafico();
|
||||
}
|
||||
|
||||
private void AtualizaListaCameras()
|
||||
{
|
||||
var listaCameras = cameraCaminho.AtualizaListaCameras().ToArray();
|
||||
var listaCameras = new CameraService<object>().AtualizaListaCameras().ToArray();
|
||||
|
||||
var cameras = gpbOpcoes.Controls.OfType<ComboBox>().Where(x => x.Name.Contains("cmbCameraSolo")).ToList();
|
||||
foreach (ComboBox cmb in cameras)
|
||||
|
|
@ -93,8 +106,8 @@ namespace AgroBase.Forms.Operacoes
|
|||
CameraSelecionada = "",
|
||||
combo = cmb,
|
||||
MaxLeituras = 10,
|
||||
SocketPorta = (6535 + CamerasSolo.Count()).ToString(),
|
||||
VideoPorta = (9080 + CamerasSolo.Count()).ToString(),
|
||||
SocketPorta = (VariaveisPortas.SocketSolo + CamerasSolo.Count()).ToString(),
|
||||
VideoPorta = (VariaveisPortas.CameraSolo + CamerasSolo.Count()).ToString(),
|
||||
VideoUrl = "green_objects_" + CamNome,
|
||||
panel = pnlCameraSolo.Controls.OfType<Panel>().Where(x => x.Name.Replace("pnl", "cmb") == cmb.Name).FirstOrDefault(),
|
||||
};
|
||||
|
|
@ -110,14 +123,38 @@ namespace AgroBase.Forms.Operacoes
|
|||
CameraSolo.combo.SelectedIndex = CameraSolo.camera.selectedCamera;
|
||||
}
|
||||
|
||||
cameraCaminho.selectedCamera = cmbCameraCaminho.SelectedIndex > 0 ? cmbCameraCaminho.SelectedIndex : 0;
|
||||
if (cameraCaminho == null)
|
||||
{
|
||||
cameraCaminho = new CameraCaminhoModel()
|
||||
{
|
||||
Nome = "Caminho",
|
||||
Posicao = 0,
|
||||
ArquivoLeitura = "leitura_ruas.json",
|
||||
browser = null,
|
||||
camera = new CameraService<CameraDeepLabV3PlusModel>(),
|
||||
CameraSelecionada = "",
|
||||
combo = cmbCameraCaminho,
|
||||
MaxLeituras = 1,
|
||||
SocketPorta = (VariaveisPortas.SocketCaminho + 0).ToString(),
|
||||
VideoPorta = (VariaveisPortas.CameraCaminho + 0).ToString(),
|
||||
VideoUrl = "street_detector",
|
||||
panel = pnlCameraCaminho,
|
||||
Angulo = 0,
|
||||
AnguloDireito = 0,
|
||||
AnguloEsquerdo = 0,
|
||||
Leituras = new List<CameraDeepLabV3PlusModel>(),
|
||||
PontosExtremos = new List<Point>()
|
||||
};
|
||||
}
|
||||
|
||||
cameraCaminho.camera.selectedCamera = cmbCameraCaminho.SelectedIndex > 0 ? cmbCameraCaminho.SelectedIndex : 0;
|
||||
cmbCameraCaminho.Items.Clear();
|
||||
cmbCameraCaminho.Items.AddRange(listaCameras);
|
||||
if (cmbCameraCaminho.Items.Count == 1)
|
||||
{
|
||||
cameraCaminho.selectedCamera = 0;
|
||||
cameraCaminho.camera.selectedCamera = 0;
|
||||
}
|
||||
cmbCameraCaminho.SelectedIndex = cameraCaminho.selectedCamera;
|
||||
cmbCameraCaminho.SelectedIndex = cameraCaminho.camera.selectedCamera;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -202,17 +239,17 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void cmbCameraCaminho_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (cameraCaminhoSelecionada != "Sem vídeo" && cameraCaminhoSelecionada != "")
|
||||
if (cameraCaminho.CameraSelecionada != "Sem vídeo" && cameraCaminho.CameraSelecionada != "")
|
||||
{
|
||||
//cmbCameraSoloE.Items.Add(cameraCaminhoSelecionada);
|
||||
CamerasSolo.ForEach(Camera =>
|
||||
{
|
||||
Camera.combo.Items.Add(cameraCaminhoSelecionada);
|
||||
Camera.combo.Items.Add(cameraCaminho.CameraSelecionada);
|
||||
});
|
||||
}
|
||||
|
||||
cameraCaminho.selectedCamera = cmbCameraCaminho.SelectedIndex;
|
||||
if (cameraCaminho.selectedCamera > 0)
|
||||
cameraCaminho.camera.selectedCamera = cmbCameraCaminho.SelectedIndex;
|
||||
if (cameraCaminho.camera.selectedCamera > 0)
|
||||
{
|
||||
DesligarCameraCaminho();
|
||||
IniciarCameraCaminho();
|
||||
|
|
@ -221,16 +258,16 @@ namespace AgroBase.Forms.Operacoes
|
|||
{
|
||||
DesligarCameraCaminho();
|
||||
}
|
||||
cameraCaminhoSelecionada = cmbCameraCaminho.Text;
|
||||
cameraCaminho.CameraSelecionada = cmbCameraCaminho.Text;
|
||||
|
||||
//btnIniciarOperacao.Enabled = cmbCameraSolo.SelectedIndex > 0 && cmbCameraCaminho.SelectedIndex > 0;
|
||||
|
||||
if (cameraCaminhoSelecionada != "Sem vídeo" && cameraCaminhoSelecionada != "")
|
||||
if (cameraCaminho.CameraSelecionada != "Sem vídeo" && cameraCaminho.CameraSelecionada != "")
|
||||
{
|
||||
cmbCameraSoloE.Items.Remove(cameraCaminhoSelecionada);
|
||||
cmbCameraSoloE.Items.Remove(cameraCaminho.CameraSelecionada);
|
||||
CamerasSolo.ForEach(Camera =>
|
||||
{
|
||||
Camera.combo.Items.Remove(cameraCaminhoSelecionada);
|
||||
Camera.combo.Items.Remove(cameraCaminho.CameraSelecionada);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -238,26 +275,20 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void IniciarCameraCaminho()
|
||||
{
|
||||
string ArquivoLeitura = "angulos.json";
|
||||
int MaxLeituras = 10;
|
||||
string VideoPorta = VariaveisPortas.CameraCaminho;
|
||||
string VideoUrl = "line_angles";
|
||||
string SocketPorta = VariaveisPortas.SocketCaminho;
|
||||
|
||||
cameraCaminho.ArquivoLeitura = ArquivoLeitura;
|
||||
cameraCaminho.IniciarCamera(
|
||||
PythonService.ScriptLineAngle,
|
||||
new string[] { MaxLeituras.ToString(), VideoPorta, VideoUrl, ArquivoLeitura, "1", SocketPorta },
|
||||
VideoPorta,
|
||||
VideoUrl,
|
||||
SocketPorta
|
||||
cameraCaminho.ArquivoLeitura = cameraCaminho.ArquivoLeitura;
|
||||
cameraCaminho.camera.IniciarCamera(
|
||||
PythonService.ScriptStreetDetector,
|
||||
new string[] { cameraCaminho.MaxLeituras.ToString(), cameraCaminho.VideoPorta, cameraCaminho.VideoUrl, cameraCaminho.ArquivoLeitura, "1", cameraCaminho.SocketPorta },
|
||||
cameraCaminho.VideoPorta,
|
||||
cameraCaminho.VideoUrl,
|
||||
cameraCaminho.SocketPorta
|
||||
);
|
||||
|
||||
if (webCaminho == null)
|
||||
if (cameraCaminho.browser == null)
|
||||
{
|
||||
webCaminho = new ChromiumWebBrowser(cameraCaminho.URLcamera);
|
||||
pnlCameraCaminho.Controls.Add(webCaminho);
|
||||
webCaminho.Dock = DockStyle.Fill;
|
||||
cameraCaminho.browser = new ChromiumWebBrowser(cameraCaminho.camera.URLcamera);
|
||||
cameraCaminho.panel.Controls.Add(cameraCaminho.browser);
|
||||
cameraCaminho.browser.Dock = DockStyle.Fill;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -265,15 +296,15 @@ namespace AgroBase.Forms.Operacoes
|
|||
{
|
||||
try
|
||||
{
|
||||
pnlCameraCaminho.Controls.Remove(webCaminho);
|
||||
webCaminho = null;
|
||||
if (cameraCaminho.socket != null)
|
||||
cameraCaminho.panel.Controls.Remove(cameraCaminho.browser);
|
||||
cameraCaminho.browser = null;
|
||||
if (cameraCaminho.camera.socket != null)
|
||||
{
|
||||
cameraCaminho.socket.Disconnect();
|
||||
cameraCaminho.camera.socket.Disconnect();
|
||||
}
|
||||
if (cameraCaminho.pythonProcess != null)
|
||||
if (cameraCaminho.camera.pythonProcess != null)
|
||||
{
|
||||
cameraCaminho.pythonProcess.Kill();
|
||||
cameraCaminho.camera.pythonProcess.Kill();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -335,7 +366,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
cmbCameraSoloD.Enabled = false;
|
||||
cmbCameraCaminho.Enabled = false;
|
||||
|
||||
Variaveis.OperacaoEmAndamento.IniciarOperacao();
|
||||
Variaveis.OperacaoEmAndamento.IniciarOperacao(null, false);
|
||||
|
||||
tmrLeituras.Tick += TmrLeituras_Tick;
|
||||
tmrLeituras.Start();
|
||||
|
|
@ -410,26 +441,10 @@ namespace AgroBase.Forms.Operacoes
|
|||
AtualizaLeituraCameraSolo(CameraSolo);
|
||||
});
|
||||
|
||||
if (cameraCaminho.socket != null && cameraCaminho.socket.DadosRecebidos.Any())
|
||||
{
|
||||
var leitura = cameraCaminho.socket != null && cameraCaminho.socket.DadosRecebidos.Any() ?
|
||||
cameraCaminho.socket.DadosRecebidos.Last() :
|
||||
new CameraAnguloModel() { angulo = 0, distancia_direita = 0, distancia_esquerda = 0 };
|
||||
|
||||
lblDistanciaEsquerda.Text = "Distancia da Esquerda: " + leitura.distancia_esquerda.ToString("000") + " px";
|
||||
lblDistanciaDireita.Text = "Distancia da Direita: " + leitura.distancia_direita.ToString("000") + " px";
|
||||
lblUltimaLeituraRua.Text = "Ultima Leitura Rua: " + FuncoesGlobais.TimestampToDate(leitura.timestamp);
|
||||
pnlInclinacao.Invalidate();
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Controle.Angulo =
|
||||
leitura.angulo > Variaveis.OperacaoEmAndamento.Controle.Angulo_Max ? Variaveis.OperacaoEmAndamento.Controle.Angulo_Max :
|
||||
leitura.angulo < Variaveis.OperacaoEmAndamento.Controle.Angulo_Min ? Variaveis.OperacaoEmAndamento.Controle.Angulo_Min :
|
||||
leitura.angulo;
|
||||
}
|
||||
AtualizaLeituraCameraCaminho();
|
||||
|
||||
AtualizarGrafico();
|
||||
|
||||
Variaveis.OperacaoEmAndamento.AtualizarDadosControle();
|
||||
AtualizarInformacoesGerais();
|
||||
}
|
||||
|
||||
|
|
@ -479,23 +494,101 @@ namespace AgroBase.Forms.Operacoes
|
|||
}
|
||||
}
|
||||
|
||||
CameraSolo.ErvasNoRadar = Verdes.Count();
|
||||
|
||||
for (int i = 0; i < BicosPorCamera; i++)
|
||||
{
|
||||
int iBico = i + (CameraSolo.Posicao * BicosPorCamera);
|
||||
if (Atuador.Dados.BicosPulverizadores[iBico].Atuado && BicosAnteriores[i] != Atuador.Dados.BicosPulverizadores[iBico].Atuado)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.AtuacoesPorBico[iBico]++;
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.AtuacoesPorBico[iBico]++;
|
||||
}
|
||||
}
|
||||
|
||||
lblUltimaLeituraSolo.Text = "Ultima Leitura Solo: " + FuncoesGlobais.TimestampToDate(leitura.timestamp);
|
||||
pnlAtuadores.Invalidate();
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Controle.BicosAtuados = Atuador.Dados.BicosPulverizadores;
|
||||
Variaveis.OperacaoEmAndamento.Controle.RPM = !Verdes.Any() ?
|
||||
AtualizaInformacoesControleOperacao();
|
||||
}
|
||||
}
|
||||
|
||||
private void AtualizaLeituraCameraCaminho()
|
||||
{
|
||||
try
|
||||
{
|
||||
var contornosJson = File.ReadAllText("Python/Output/" + cameraCaminho.ArquivoLeitura);
|
||||
cameraCaminho.Leituras = JsonConvert.DeserializeObject<CameraDeepLabV3PlusModel[]>(contornosJson).ToList();
|
||||
|
||||
pnlCaminho.Invalidate();
|
||||
|
||||
if (cameraCaminho.PontosExtremos.Any())
|
||||
{
|
||||
double esq_CA = cameraCaminho.PontosExtremos[2].X - cameraCaminho.PontosExtremos[1].X;
|
||||
double esq_CO = cameraCaminho.PontosExtremos[1].Y - cameraCaminho.PontosExtremos[2].Y;
|
||||
double esq_AG = Math.Atan(esq_CO / esq_CA) * (180 / Math.PI);
|
||||
|
||||
double dir_CA = cameraCaminho.PontosExtremos[4].X - cameraCaminho.PontosExtremos[3].X;
|
||||
double dir_CO = cameraCaminho.PontosExtremos[4].Y - cameraCaminho.PontosExtremos[3].Y;
|
||||
double dir_AG = Math.Atan(dir_CO / dir_CA) * (180 / Math.PI);
|
||||
|
||||
cameraCaminho.Angulo = esq_AG - dir_AG;
|
||||
cameraCaminho.AnguloDireito = dir_AG;
|
||||
cameraCaminho.AnguloEsquerdo = esq_AG;
|
||||
}
|
||||
else
|
||||
{
|
||||
cameraCaminho.Angulo = 0;
|
||||
cameraCaminho.AnguloDireito = 0;
|
||||
cameraCaminho.AnguloEsquerdo = 0;
|
||||
}
|
||||
|
||||
pnlInclinacao.Invalidate();
|
||||
|
||||
AtualizaInformacoesControleOperacao();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void AtualizaInformacoesControleOperacao()
|
||||
{
|
||||
TimeSpan tempo = TimeSpan.FromTicks(DateTime.Now.Ticks - Variaveis.OperacaoEmAndamento.TimestampInicio);
|
||||
bool operacaoEmAndamento = tempo.Seconds > Variaveis.OperacaoEmAndamento.TempoIniciarOperacao;
|
||||
|
||||
|
||||
var BicosNaoAtuados = Atuador.Dados.BicosPulverizadores.ToList();
|
||||
BicosNaoAtuados.ForEach(x => x.Atuado = false);
|
||||
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.ErvasNoRadar = CamerasSolo.Sum(x => x.ErvasNoRadar);
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.ErvasIdentificadas = Variaveis.OperacaoEmAndamento.Sensoriamento.AtuacoesPorBico.Sum();
|
||||
if (!operacaoEmAndamento)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Controle.BicosAtuados = BicosNaoAtuados.ToList();
|
||||
Variaveis.OperacaoEmAndamento.Controle.RPM = 0;
|
||||
Variaveis.OperacaoEmAndamento.Controle.Angulo = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Controle.BicosAtuados =
|
||||
!chbATUativo.Checked ? BicosNaoAtuados
|
||||
: Atuador.Dados.BicosPulverizadores;
|
||||
Variaveis.OperacaoEmAndamento.Controle.RPM =
|
||||
!chbMOVativo.Checked ? 0 :
|
||||
!cameraCaminho.PontosExtremos.Any() ? 0 :
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.ErvasNoRadar == 0 ?
|
||||
Variaveis.OperacaoEmAndamento.Controle.RPM_Max :
|
||||
Variaveis.OperacaoEmAndamento.Controle.RPM_Min;
|
||||
Variaveis.OperacaoEmAndamento.Controle.Angulo =
|
||||
!chbDIRativo.Checked ? 0 :
|
||||
cameraCaminho.Angulo > Variaveis.OperacaoEmAndamento.Controle.Angulo_Max ? Variaveis.OperacaoEmAndamento.Controle.Angulo_Max :
|
||||
cameraCaminho.Angulo < Variaveis.OperacaoEmAndamento.Controle.Angulo_Min ? Variaveis.OperacaoEmAndamento.Controle.Angulo_Min :
|
||||
cameraCaminho.Angulo;
|
||||
}
|
||||
|
||||
Variaveis.OperacaoEmAndamento.AtualizarDadosControle();
|
||||
}
|
||||
|
||||
private void pnlAtuadores_Paint(object sender, PaintEventArgs e)
|
||||
|
|
@ -535,7 +628,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
|
||||
// Define a string que representa a atuacao do bico
|
||||
string bicoAtuacao = Variaveis.OperacaoEmAndamento.AtuacoesPorBico[i].ToString("000");
|
||||
string bicoAtuacao = Variaveis.OperacaoEmAndamento.Sensoriamento.AtuacoesPorBico[i].ToString("000");
|
||||
// Define a fonte para o texto
|
||||
Font fontA = new Font("Arial", 8, FontStyle.Bold);
|
||||
// Mede o tamanho do texto
|
||||
|
|
@ -628,20 +721,26 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
private void AtualizarInformacoesGerais()
|
||||
{
|
||||
lblDistanciaPercorrida.Text = "Distancia Percorrida: " + Variaveis.OperacaoEmAndamento.DistanciaPercorrida + " m";
|
||||
lblDistanciaEsquerda.Text = "Distancia da Esquerda: " + Variaveis.OperacaoEmAndamento.Sensoriamento.DistanciaEsquerda.ToString("0.00") + " cm";
|
||||
lblDistanciaDireita.Text = "Distancia da Direita: " + Variaveis.OperacaoEmAndamento.Sensoriamento.DistanciaDireita.ToString("0.00") + " cm";
|
||||
lblUltimaLeituraRua.Text = "Ultima Leitura Rua: " + FuncoesGlobais.TimestampToDate(cameraCaminho.Leituras.FirstOrDefault().timestamp);
|
||||
|
||||
lblDistanciaPercorrida.Text = "Distancia Percorrida: " + Variaveis.OperacaoEmAndamento.Sensoriamento.DistanciaPercorrida.ToString("0.00") + " m";
|
||||
TimeSpan tempo = TimeSpan.FromTicks((Variaveis.OperacaoEmAndamento.TimestampFim > 0 ? Variaveis.OperacaoEmAndamento.TimestampFim : DateTime.Now.Ticks) - Variaveis.OperacaoEmAndamento.TimestampInicio);
|
||||
lblTempoOperacao.Text = "Tempo de Operação: " + tempo.Hours.ToString("00") + ":" + tempo.Minutes.ToString("00") + ":" + tempo.Seconds.ToString("00");
|
||||
lblVelocidadeMedia.Text = "Velocidade Média: " + Variaveis.OperacaoEmAndamento.VelocidadeMedia.ToString("0.00") + " km/h";
|
||||
lblErvasIdentificadas.Text = "Ervas Identificadas: " + Variaveis.OperacaoEmAndamento.ErvasIdentificadas.ToString("000");
|
||||
lblErvasIdentificadas.Text = "Herbicida Aplicado: " + Variaveis.OperacaoEmAndamento.HerbicidaConsumido.ToString("0.000") + " L";
|
||||
lblHerbicidaPorErva.Text = "Herbicida por Erva: " + Variaveis.OperacaoEmAndamento.HerbicidaPorErva.ToString("0.000") + " mL";
|
||||
lblBateriaConsumida.Text = "Bateria Consumida: " + Variaveis.OperacaoEmAndamento.BateriaConsumida.ToString("0.00") + "%";
|
||||
lblVelocidadeMedia.Text = "Velocidade Média: " + Variaveis.OperacaoEmAndamento.Sensoriamento.VelocidadeMedia.ToString("0.00") + " km/h";
|
||||
lblErvasIdentificadas.Text = "Ervas Identificadas: " + Variaveis.OperacaoEmAndamento.Sensoriamento.ErvasIdentificadas.ToString("000");
|
||||
lblHerbicidaAplicado.Text = "Herbicida Aplicado: " + Variaveis.OperacaoEmAndamento.Sensoriamento.HerbicidaConsumido.ToString("0.000") + " L";
|
||||
lblHerbicidaPorErva.Text = "Herbicida por Erva: " + Variaveis.OperacaoEmAndamento.Sensoriamento.HerbicidaPorErva.ToString("0.000") + " mL";
|
||||
lblBateriaConsumida.Text = "Bateria Consumida: " + Variaveis.OperacaoEmAndamento.Sensoriamento.BateriaConsumida.ToString("0.00") + "%";
|
||||
|
||||
lblPressao.Text = "P: " + Atuador.Dados.PressaoLinha.ToString("0.00") + " psi";
|
||||
|
||||
pgbReservatorio.Value = Convert.ToInt32(Atuador.Dados.PercentualReservatorio);
|
||||
lblPorcentagemReservatorio.Text = "Reservatório: " + Atuador.Dados.PercentualReservatorio.ToString("0.00") + "%";
|
||||
|
||||
pgbProgresso.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.ProgressoPercurso);
|
||||
lblPorcentagemProgresso.Text = "Progresso: " + Variaveis.OperacaoEmAndamento.ProgressoPercurso.ToString("0.00") + "%";
|
||||
pgbProgresso.Value = Convert.ToInt32(Variaveis.OperacaoEmAndamento.Sensoriamento.ProgressoPercurso);
|
||||
lblPorcentagemProgresso.Text = "Progresso: " + Variaveis.OperacaoEmAndamento.Sensoriamento.ProgressoPercurso.ToString("0.00") + "%";
|
||||
}
|
||||
|
||||
private void pnlInclinacao_Paint(object sender, PaintEventArgs e)
|
||||
|
|
@ -659,7 +758,7 @@ namespace AgroBase.Forms.Operacoes
|
|||
// Suponha que você tenha uma variável que armazene essa informação.
|
||||
// Por exemplo, o ângulo de 0 graus pode ser diretamente para cima,
|
||||
// e os ângulos aumentam no sentido horário.
|
||||
float anguloInclinacao = cameraCaminho.socket != null && cameraCaminho.socket.DadosRecebidos.Any() ? (float)cameraCaminho.socket.DadosRecebidos.Last().angulo : 0;
|
||||
float anguloInclinacao = (float)cameraCaminho.Angulo;
|
||||
|
||||
Graphics g = e.Graphics;
|
||||
// Desenha o círculo da bússola
|
||||
|
|
@ -712,69 +811,86 @@ namespace AgroBase.Forms.Operacoes
|
|||
|
||||
|
||||
|
||||
private void UpdatePath(float angle, float distance)
|
||||
private void pnlCaminho_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
// Atualiza o ângulo atual com base na nova leitura
|
||||
float currentAngle = angle;
|
||||
Panel pnlContornos = (Panel)sender;
|
||||
if (cameraCaminho.Leituras == null || cameraCaminho.Leituras.Count == 0) return;
|
||||
|
||||
// Converte o ângulo em radianos para calcular a nova posição
|
||||
float angleRadians = currentAngle * (float)Math.PI / 180.0f;
|
||||
Graphics graphics = e.Graphics;
|
||||
graphics.Clear(pnlContornos.BackColor); // Limpa o fundo
|
||||
|
||||
// Calcula a nova posição com base no ângulo e na distância
|
||||
currentPosition = new PointF(
|
||||
currentPosition.X + distance * (float)Math.Cos(angleRadians),
|
||||
currentPosition.Y + distance * (float)Math.Sin(angleRadians)
|
||||
);
|
||||
// Determina as dimensões máximas dos contornos
|
||||
float larguraMaxContornos = 512; // Substitua pelo valor real
|
||||
float alturaMaxContornos = 512; // Substitua pelo valor real
|
||||
|
||||
// Adiciona a nova posição na lista de pontos
|
||||
pathPoints.Add(currentPosition);
|
||||
// Proporção de escala baseada no tamanho do Panel e nas dimensões dos contornos
|
||||
float proporcaoX = pnlContornos.Width / larguraMaxContornos;
|
||||
float proporcaoY = pnlContornos.Height / alturaMaxContornos;
|
||||
float escala = Math.Min(proporcaoX, proporcaoY); // Mantém a proporção sem distorcer
|
||||
|
||||
// Redesenha o painel
|
||||
pnlMapa.Invalidate();
|
||||
}
|
||||
// Calcula o novo tamanho dos contornos após o redimensionamento
|
||||
float novaLargura = larguraMaxContornos * escala;
|
||||
float novaAltura = alturaMaxContornos * escala;
|
||||
|
||||
private void pnlMapa_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
if (pathPoints.Count < 2) return; // Necessário pelo menos 2 pontos para desenhar um caminho
|
||||
// Calcula o deslocamento para centralizar os contornos no Panel
|
||||
float deslocamentoX = (pnlContornos.Width - novaLargura) / 2;
|
||||
float deslocamentoY = (pnlContornos.Height - novaAltura) / 2;
|
||||
|
||||
Graphics g = e.Graphics;
|
||||
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
|
||||
|
||||
// Desenha o caminho
|
||||
for (int i = 1; i < pathPoints.Count; i++)
|
||||
List<Point> pontosCamera = new List<Point>();
|
||||
var Classe = cameraCaminho.ClassMap.FirstOrDefault(x => x.Key == "rua");
|
||||
foreach (var Leitura in cameraCaminho.Leituras.OrderByDescending(x => x.timestamp))
|
||||
{
|
||||
g.DrawLine(Pens.Black, pathPoints[i - 1], pathPoints[i]);
|
||||
foreach (var cameraClass in Leitura.Classes.Where(x => x.Classe == Classe.Key))
|
||||
{
|
||||
if (cameraClass.Contornos == null || cameraClass.Contornos.Length == 0) continue;
|
||||
|
||||
using (Pen pen = new Pen(Color.Blue, 2))
|
||||
{
|
||||
for (int i = 0; i < cameraClass.Contornos.Length - 1; i++)
|
||||
{
|
||||
Point contorno = new Point() { X = cameraClass.Contornos[i][0], Y = cameraClass.Contornos[i][1] };
|
||||
Point contornoP = new Point() { X = cameraClass.Contornos[i + 1][0], Y = cameraClass.Contornos[i + 1][1] };
|
||||
|
||||
// Aplica a escala e o deslocamento às coordenadas
|
||||
Point start = new Point((int)(contorno.X * escala + deslocamentoX), (int)(contorno.Y * escala + deslocamentoY));
|
||||
Point end = new Point((int)(contornoP.X * escala + deslocamentoX), (int)(contornoP.Y * escala + deslocamentoY));
|
||||
|
||||
graphics.DrawLine(pen, start, end);
|
||||
|
||||
pontosCamera.Add(contorno);
|
||||
}
|
||||
|
||||
// Se necessário, fechar o contorno conectando o último ponto ao primeiro
|
||||
if (cameraClass.Contornos.Length > 1)
|
||||
{
|
||||
var primeiro = cameraClass.Contornos.First();
|
||||
var ultimo = cameraClass.Contornos.Last();
|
||||
Point start = new Point((int)(ultimo[0] * escala + deslocamentoX), (int)(ultimo[1] * escala + deslocamentoY));
|
||||
Point end = new Point((int)(primeiro[0] * escala + deslocamentoX), (int)(primeiro[1] * escala + deslocamentoY));
|
||||
graphics.DrawLine(pen, start, end);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Plotar apenas a ultima leitura do json
|
||||
break;
|
||||
}
|
||||
|
||||
using (Pen pen = new Pen(Classe.Value, 2))
|
||||
{
|
||||
cameraCaminho.PontosExtremos = CameraCaminhoModel.DefinirPontosExtremos(pontosCamera);
|
||||
for (int i = 0; i < cameraCaminho.PontosExtremos.Count - 1; i++)
|
||||
{
|
||||
// Aplica a escala e o deslocamento às coordenadas
|
||||
Point start = new Point((int)(cameraCaminho.PontosExtremos[i].X * escala + deslocamentoX), (int)(cameraCaminho.PontosExtremos[i].Y * escala + deslocamentoY));
|
||||
Point end = new Point((int)(cameraCaminho.PontosExtremos[i + 1].X * escala + deslocamentoX), (int)(cameraCaminho.PontosExtremos[i + 1].Y * escala + deslocamentoY));
|
||||
|
||||
graphics.DrawLine(pen, start, end);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void btnDesenharMapa_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tmrMapa.Enabled)
|
||||
{
|
||||
btnDesenharMapa.Text = "Desenhar";
|
||||
tmrMapa.Stop();
|
||||
}
|
||||
else
|
||||
{
|
||||
btnDesenharMapa.Text = "Parar";
|
||||
currentPosition = new PointF(pnlMapa.Width / 2, pnlMapa.Height / 2);
|
||||
tmrMapa = new Timer() { Interval = 1000 };
|
||||
tmrMapa.Tick -= TmrMapa_Tick;
|
||||
tmrMapa.Tick += TmrMapa_Tick;
|
||||
tmrMapa.Start();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Timer tmrMapa = new Timer();
|
||||
float distance = 0;
|
||||
private void TmrMapa_Tick(object sender, EventArgs e)
|
||||
{
|
||||
distance = 5;
|
||||
float angle = new Random().Next(-200, 200);
|
||||
//distance = (float)Variaveis.OperacaoEmAndamento.DistanciaPercorrida - distance;
|
||||
//angle = cameraCaminho.socket != null && cameraCaminho.socket.DadosRecebidos.Any() ? (float)cameraCaminho.socket.DadosRecebidos.Last().angulo : 0;
|
||||
UpdatePath(angle, distance);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@ namespace AgroBase.Forms.Sensoriamento
|
|||
private Timer tmrLeitura;
|
||||
|
||||
private int MaxLeituras = 10;
|
||||
private string VideoPorta = VariaveisPortas.CameraCaminho;
|
||||
private string VideoPorta = VariaveisPortas.CameraCaminho.ToString();
|
||||
private string VideoUrl = "line_angle";
|
||||
private string SocketPorta = VariaveisPortas.SocketCaminho;
|
||||
private string SocketPorta = VariaveisPortas.SocketCaminho.ToString();
|
||||
private bool MostrarDebug = true;
|
||||
private string ArquivoLeitura = "leitura_angulo";
|
||||
|
||||
|
|
|
|||
|
|
@ -35,35 +35,43 @@
|
|||
this.lblCorrente = new System.Windows.Forms.Label();
|
||||
this.lblTemperatura = new System.Windows.Forms.Label();
|
||||
this.gridsTMP = new System.Windows.Forms.DataGridView();
|
||||
this.lblPressao = new System.Windows.Forms.Label();
|
||||
this.gridsULT = new System.Windows.Forms.DataGridView();
|
||||
this.lblFluxo = new System.Windows.Forms.Label();
|
||||
this.gridsFLX = new System.Windows.Forms.DataGridView();
|
||||
this.lblMassa = new System.Windows.Forms.Label();
|
||||
this.gridsMAS = new System.Windows.Forms.DataGridView();
|
||||
this.lblUltrassom = new System.Windows.Forms.Label();
|
||||
this.gridsPRS = new System.Windows.Forms.DataGridView();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsTEN)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsCOR)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsTMP)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsULT)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsFLX)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsMAS)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsPRS)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// gridsTEN
|
||||
//
|
||||
this.gridsTEN.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.gridsTEN.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.gridsTEN.Location = new System.Drawing.Point(15, 25);
|
||||
this.gridsTEN.Name = "gridsTEN";
|
||||
this.gridsTEN.Size = new System.Drawing.Size(418, 124);
|
||||
this.gridsTEN.Size = new System.Drawing.Size(450, 124);
|
||||
this.gridsTEN.TabIndex = 1;
|
||||
//
|
||||
// gridsCOR
|
||||
//
|
||||
this.gridsCOR.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.gridsCOR.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.gridsCOR.Location = new System.Drawing.Point(15, 168);
|
||||
this.gridsCOR.Name = "gridsCOR";
|
||||
this.gridsCOR.Size = new System.Drawing.Size(418, 124);
|
||||
this.gridsCOR.Size = new System.Drawing.Size(450, 124);
|
||||
this.gridsCOR.TabIndex = 1;
|
||||
//
|
||||
// btnSalvar
|
||||
//
|
||||
this.btnSalvar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnSalvar.Location = new System.Drawing.Point(358, 441);
|
||||
this.btnSalvar.Location = new System.Drawing.Point(867, 554);
|
||||
this.btnSalvar.Name = "btnSalvar";
|
||||
this.btnSalvar.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnSalvar.TabIndex = 3;
|
||||
|
|
@ -100,19 +108,93 @@
|
|||
//
|
||||
// gridsTMP
|
||||
//
|
||||
this.gridsTMP.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.gridsTMP.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.gridsTMP.Location = new System.Drawing.Point(15, 311);
|
||||
this.gridsTMP.Name = "gridsTMP";
|
||||
this.gridsTMP.Size = new System.Drawing.Size(418, 124);
|
||||
this.gridsTMP.Size = new System.Drawing.Size(450, 124);
|
||||
this.gridsTMP.TabIndex = 6;
|
||||
//
|
||||
// lblPressao
|
||||
//
|
||||
this.lblPressao.AutoSize = true;
|
||||
this.lblPressao.Location = new System.Drawing.Point(485, 9);
|
||||
this.lblPressao.Name = "lblPressao";
|
||||
this.lblPressao.Size = new System.Drawing.Size(45, 13);
|
||||
this.lblPressao.TabIndex = 9;
|
||||
this.lblPressao.Text = "Pressão";
|
||||
//
|
||||
// gridsULT
|
||||
//
|
||||
this.gridsULT.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.gridsULT.Location = new System.Drawing.Point(15, 454);
|
||||
this.gridsULT.Name = "gridsULT";
|
||||
this.gridsULT.Size = new System.Drawing.Size(450, 124);
|
||||
this.gridsULT.TabIndex = 8;
|
||||
//
|
||||
// lblFluxo
|
||||
//
|
||||
this.lblFluxo.AutoSize = true;
|
||||
this.lblFluxo.Location = new System.Drawing.Point(485, 152);
|
||||
this.lblFluxo.Name = "lblFluxo";
|
||||
this.lblFluxo.Size = new System.Drawing.Size(71, 13);
|
||||
this.lblFluxo.TabIndex = 11;
|
||||
this.lblFluxo.Text = "Fluxo (Vazão)";
|
||||
//
|
||||
// gridsFLX
|
||||
//
|
||||
this.gridsFLX.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.gridsFLX.Location = new System.Drawing.Point(488, 168);
|
||||
this.gridsFLX.Name = "gridsFLX";
|
||||
this.gridsFLX.Size = new System.Drawing.Size(450, 124);
|
||||
this.gridsFLX.TabIndex = 10;
|
||||
//
|
||||
// lblMassa
|
||||
//
|
||||
this.lblMassa.AutoSize = true;
|
||||
this.lblMassa.Location = new System.Drawing.Point(485, 295);
|
||||
this.lblMassa.Name = "lblMassa";
|
||||
this.lblMassa.Size = new System.Drawing.Size(155, 13);
|
||||
this.lblMassa.TabIndex = 13;
|
||||
this.lblMassa.Text = "Massa (Reservatório Herbicida)";
|
||||
//
|
||||
// gridsMAS
|
||||
//
|
||||
this.gridsMAS.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.gridsMAS.Location = new System.Drawing.Point(488, 311);
|
||||
this.gridsMAS.Name = "gridsMAS";
|
||||
this.gridsMAS.Size = new System.Drawing.Size(450, 124);
|
||||
this.gridsMAS.TabIndex = 12;
|
||||
//
|
||||
// lblUltrassom
|
||||
//
|
||||
this.lblUltrassom.AutoSize = true;
|
||||
this.lblUltrassom.Location = new System.Drawing.Point(12, 438);
|
||||
this.lblUltrassom.Name = "lblUltrassom";
|
||||
this.lblUltrassom.Size = new System.Drawing.Size(106, 13);
|
||||
this.lblUltrassom.TabIndex = 15;
|
||||
this.lblUltrassom.Text = "Ultrassom (Distancia)";
|
||||
//
|
||||
// gridsPRS
|
||||
//
|
||||
this.gridsPRS.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.gridsPRS.Location = new System.Drawing.Point(488, 25);
|
||||
this.gridsPRS.Name = "gridsPRS";
|
||||
this.gridsPRS.Size = new System.Drawing.Size(450, 124);
|
||||
this.gridsPRS.TabIndex = 14;
|
||||
//
|
||||
// frmSenConfig
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(445, 472);
|
||||
this.ClientSize = new System.Drawing.Size(954, 585);
|
||||
this.Controls.Add(this.lblUltrassom);
|
||||
this.Controls.Add(this.gridsPRS);
|
||||
this.Controls.Add(this.lblMassa);
|
||||
this.Controls.Add(this.gridsMAS);
|
||||
this.Controls.Add(this.lblFluxo);
|
||||
this.Controls.Add(this.gridsFLX);
|
||||
this.Controls.Add(this.lblPressao);
|
||||
this.Controls.Add(this.gridsULT);
|
||||
this.Controls.Add(this.lblTemperatura);
|
||||
this.Controls.Add(this.gridsTMP);
|
||||
this.Controls.Add(this.lblCorrente);
|
||||
|
|
@ -128,6 +210,10 @@
|
|||
((System.ComponentModel.ISupportInitialize)(this.gridsTEN)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsCOR)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsTMP)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsULT)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsFLX)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsMAS)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.gridsPRS)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
|
|
@ -141,5 +227,13 @@
|
|||
private System.Windows.Forms.Label lblCorrente;
|
||||
private System.Windows.Forms.Label lblTemperatura;
|
||||
private System.Windows.Forms.DataGridView gridsTMP;
|
||||
private System.Windows.Forms.Label lblPressao;
|
||||
private System.Windows.Forms.DataGridView gridsULT;
|
||||
private System.Windows.Forms.Label lblFluxo;
|
||||
private System.Windows.Forms.DataGridView gridsFLX;
|
||||
private System.Windows.Forms.Label lblMassa;
|
||||
private System.Windows.Forms.DataGridView gridsMAS;
|
||||
private System.Windows.Forms.Label lblUltrassom;
|
||||
private System.Windows.Forms.DataGridView gridsPRS;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
using AgroBase.Comum;
|
||||
using AgroBase.Models;
|
||||
using AgroBase.Models.Modules;
|
||||
using AgroBase.Services;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
|
|
@ -17,7 +18,10 @@ namespace AgroBase.Forms.Sensoriamento
|
|||
{
|
||||
public partial class frmSenConfig : Form
|
||||
{
|
||||
DispositivosService<SensoriamentoModel> Disp = (DispositivosService<SensoriamentoModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Sen);
|
||||
IDispositivosService Disp = null;
|
||||
public T_Code Dispositivo = T_Code.Sen;
|
||||
List<SensorModel> Sensores = new List<SensorModel>();
|
||||
|
||||
int ParametrosComecamEm = 3;
|
||||
|
||||
public frmSenConfig()
|
||||
|
|
@ -27,11 +31,26 @@ namespace AgroBase.Forms.Sensoriamento
|
|||
|
||||
private void frmSenConfig_Load(object sender, EventArgs e)
|
||||
{
|
||||
Disp = Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Dispositivo);
|
||||
if (Disp == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch (Dispositivo)
|
||||
{
|
||||
case T_Code.Sen:
|
||||
{
|
||||
Sensores = ((SensoriamentoModel)Disp.Dados).Sensores.ToList();
|
||||
break;
|
||||
}
|
||||
case T_Code.Atu:
|
||||
{
|
||||
Sensores = ((AtuadorModel)Disp.Dados).Sensores.ToList();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
PopulaParametrosSensor();
|
||||
|
||||
PreencheParametrosSensores();
|
||||
|
|
@ -39,7 +58,7 @@ namespace AgroBase.Forms.Sensoriamento
|
|||
|
||||
private void PopulaParametrosSensor()
|
||||
{
|
||||
foreach (var Sensor in Disp.Dados.Sensores)
|
||||
foreach (var Sensor in Sensores)
|
||||
{
|
||||
string gridName = "grid" + Enum.GetName(typeof(S_Code), Sensor.Componente);
|
||||
DataGridView grid = this.Controls.OfType<DataGridView>().ToList().FirstOrDefault(x => x.Name == gridName);
|
||||
|
|
@ -60,7 +79,7 @@ namespace AgroBase.Forms.Sensoriamento
|
|||
|
||||
private void PreencheParametrosSensores()
|
||||
{
|
||||
foreach (var Sensor in Disp.Dados.Sensores)
|
||||
foreach (var Sensor in Sensores)
|
||||
{
|
||||
string gridName = "grid" + Enum.GetName(typeof(S_Code), Sensor.Componente);
|
||||
DataGridView grid = this.Controls.OfType<DataGridView>().ToList().FirstOrDefault(x => x.Name == gridName);
|
||||
|
|
@ -93,7 +112,7 @@ namespace AgroBase.Forms.Sensoriamento
|
|||
return;
|
||||
}
|
||||
|
||||
foreach (var Sensor in Disp.Dados.Sensores)
|
||||
foreach (var Sensor in Sensores)
|
||||
{
|
||||
string gridName = "grid" + Enum.GetName(typeof(S_Code), Sensor.Componente);
|
||||
DataGridView grid = this.Controls.OfType<DataGridView>().ToList().FirstOrDefault(x => x.Name == gridName);
|
||||
|
|
@ -117,7 +136,24 @@ namespace AgroBase.Forms.Sensoriamento
|
|||
}
|
||||
}
|
||||
|
||||
Disp.SalvarParametros(Disp.Dados);
|
||||
switch (Dispositivo)
|
||||
{
|
||||
case T_Code.Sen:
|
||||
{
|
||||
var _Disp = (DispositivosService<SensoriamentoModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Dispositivo);
|
||||
_Disp.Dados.Sensores = Sensores.ToList();
|
||||
_Disp.SalvarParametros(_Disp.Dados);
|
||||
break;
|
||||
}
|
||||
case T_Code.Atu:
|
||||
{
|
||||
var _Disp = (DispositivosService<AtuadorModel>)Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == Dispositivo);
|
||||
_Disp.Dados.Sensores = Sensores.ToList();
|
||||
_Disp.SalvarParametros(_Disp.Dados);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ namespace AgroBase.Forms
|
|||
System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmAcompanhamento));
|
||||
this.pnlFundo = new System.Windows.Forms.Panel();
|
||||
this.lblTemperatura = new System.Windows.Forms.Label();
|
||||
this.lblCorrente = new System.Windows.Forms.Label();
|
||||
this.lblTensao = new System.Windows.Forms.Label();
|
||||
this.lblDistanciaParcial = new System.Windows.Forms.Label();
|
||||
|
|
@ -62,7 +63,7 @@ namespace AgroBase.Forms
|
|||
this.chartDF = new System.Windows.Forms.DataVisualization.Charting.Chart();
|
||||
this.chartEF = new System.Windows.Forms.DataVisualization.Charting.Chart();
|
||||
this.picRobo = new System.Windows.Forms.PictureBox();
|
||||
this.lblDTM_Umidade = new System.Windows.Forms.Label();
|
||||
this.lblDTM_Corrente = new System.Windows.Forms.Label();
|
||||
this.lblDTM_Temperatura = new System.Windows.Forms.Label();
|
||||
this.lblDTM_Sentido = new System.Windows.Forms.Label();
|
||||
this.lblDTM_SentidoSP = new System.Windows.Forms.Label();
|
||||
|
|
@ -70,7 +71,7 @@ namespace AgroBase.Forms
|
|||
this.lblDTM_Potencia = new System.Windows.Forms.Label();
|
||||
this.lblDTM_Velocidade = new System.Windows.Forms.Label();
|
||||
this.lblDTM_RPM = new System.Windows.Forms.Label();
|
||||
this.lblDFM_Umidade = new System.Windows.Forms.Label();
|
||||
this.lblDFM_Corrente = new System.Windows.Forms.Label();
|
||||
this.lblDFM_Temperatura = new System.Windows.Forms.Label();
|
||||
this.lblDFM_Sentido = new System.Windows.Forms.Label();
|
||||
this.lblDFM_SentidoSP = new System.Windows.Forms.Label();
|
||||
|
|
@ -78,7 +79,7 @@ namespace AgroBase.Forms
|
|||
this.lblDFM_Potencia = new System.Windows.Forms.Label();
|
||||
this.lblDFM_Velocidade = new System.Windows.Forms.Label();
|
||||
this.lblDFM_RPM = new System.Windows.Forms.Label();
|
||||
this.lblETM_Umidade = new System.Windows.Forms.Label();
|
||||
this.lblETM_Corrente = new System.Windows.Forms.Label();
|
||||
this.lblETM_Temperatura = new System.Windows.Forms.Label();
|
||||
this.lblETM_Sentido = new System.Windows.Forms.Label();
|
||||
this.lblETM_SentidoSP = new System.Windows.Forms.Label();
|
||||
|
|
@ -86,7 +87,7 @@ namespace AgroBase.Forms
|
|||
this.lblETM_Potencia = new System.Windows.Forms.Label();
|
||||
this.lblETM_Velocidade = new System.Windows.Forms.Label();
|
||||
this.lblETM_RPM = new System.Windows.Forms.Label();
|
||||
this.lblEFM_Umidade = new System.Windows.Forms.Label();
|
||||
this.lblEFM_Corrente = new System.Windows.Forms.Label();
|
||||
this.lblEFM_Temperatura = new System.Windows.Forms.Label();
|
||||
this.lblEFM_Sentido = new System.Windows.Forms.Label();
|
||||
this.lblEFM_SentidoSP = new System.Windows.Forms.Label();
|
||||
|
|
@ -126,7 +127,6 @@ namespace AgroBase.Forms
|
|||
this.btnEFReferenciar = new System.Windows.Forms.Button();
|
||||
this.lblM1 = new System.Windows.Forms.Label();
|
||||
this.picEF = new System.Windows.Forms.PictureBox();
|
||||
this.lblTemperatura = new System.Windows.Forms.Label();
|
||||
this.pnlFundo.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chartET)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.chartDT)).BeginInit();
|
||||
|
|
@ -163,7 +163,7 @@ namespace AgroBase.Forms
|
|||
this.pnlFundo.Controls.Add(this.chartDF);
|
||||
this.pnlFundo.Controls.Add(this.chartEF);
|
||||
this.pnlFundo.Controls.Add(this.picRobo);
|
||||
this.pnlFundo.Controls.Add(this.lblDTM_Umidade);
|
||||
this.pnlFundo.Controls.Add(this.lblDTM_Corrente);
|
||||
this.pnlFundo.Controls.Add(this.lblDTM_Temperatura);
|
||||
this.pnlFundo.Controls.Add(this.lblDTM_Sentido);
|
||||
this.pnlFundo.Controls.Add(this.lblDTM_SentidoSP);
|
||||
|
|
@ -171,7 +171,7 @@ namespace AgroBase.Forms
|
|||
this.pnlFundo.Controls.Add(this.lblDTM_Potencia);
|
||||
this.pnlFundo.Controls.Add(this.lblDTM_Velocidade);
|
||||
this.pnlFundo.Controls.Add(this.lblDTM_RPM);
|
||||
this.pnlFundo.Controls.Add(this.lblDFM_Umidade);
|
||||
this.pnlFundo.Controls.Add(this.lblDFM_Corrente);
|
||||
this.pnlFundo.Controls.Add(this.lblDFM_Temperatura);
|
||||
this.pnlFundo.Controls.Add(this.lblDFM_Sentido);
|
||||
this.pnlFundo.Controls.Add(this.lblDFM_SentidoSP);
|
||||
|
|
@ -179,7 +179,7 @@ namespace AgroBase.Forms
|
|||
this.pnlFundo.Controls.Add(this.lblDFM_Potencia);
|
||||
this.pnlFundo.Controls.Add(this.lblDFM_Velocidade);
|
||||
this.pnlFundo.Controls.Add(this.lblDFM_RPM);
|
||||
this.pnlFundo.Controls.Add(this.lblETM_Umidade);
|
||||
this.pnlFundo.Controls.Add(this.lblETM_Corrente);
|
||||
this.pnlFundo.Controls.Add(this.lblETM_Temperatura);
|
||||
this.pnlFundo.Controls.Add(this.lblETM_Sentido);
|
||||
this.pnlFundo.Controls.Add(this.lblETM_SentidoSP);
|
||||
|
|
@ -187,7 +187,7 @@ namespace AgroBase.Forms
|
|||
this.pnlFundo.Controls.Add(this.lblETM_Potencia);
|
||||
this.pnlFundo.Controls.Add(this.lblETM_Velocidade);
|
||||
this.pnlFundo.Controls.Add(this.lblETM_RPM);
|
||||
this.pnlFundo.Controls.Add(this.lblEFM_Umidade);
|
||||
this.pnlFundo.Controls.Add(this.lblEFM_Corrente);
|
||||
this.pnlFundo.Controls.Add(this.lblEFM_Temperatura);
|
||||
this.pnlFundo.Controls.Add(this.lblEFM_Sentido);
|
||||
this.pnlFundo.Controls.Add(this.lblEFM_SentidoSP);
|
||||
|
|
@ -234,6 +234,17 @@ namespace AgroBase.Forms
|
|||
this.pnlFundo.Size = new System.Drawing.Size(1484, 749);
|
||||
this.pnlFundo.TabIndex = 0;
|
||||
//
|
||||
// lblTemperatura
|
||||
//
|
||||
this.lblTemperatura.AutoSize = true;
|
||||
this.lblTemperatura.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblTemperatura.Location = new System.Drawing.Point(639, 631);
|
||||
this.lblTemperatura.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblTemperatura.Name = "lblTemperatura";
|
||||
this.lblTemperatura.Size = new System.Drawing.Size(198, 12);
|
||||
this.lblTemperatura.TabIndex = 173;
|
||||
this.lblTemperatura.Text = "Temp atual: 0,00ºC - Mín: 0,00ºC - Máx: 0,00ºC";
|
||||
//
|
||||
// lblCorrente
|
||||
//
|
||||
this.lblCorrente.AutoSize = true;
|
||||
|
|
@ -463,15 +474,15 @@ namespace AgroBase.Forms
|
|||
this.picRobo.TabIndex = 158;
|
||||
this.picRobo.TabStop = false;
|
||||
//
|
||||
// lblDTM_Umidade
|
||||
// lblDTM_Corrente
|
||||
//
|
||||
this.lblDTM_Umidade.AutoSize = true;
|
||||
this.lblDTM_Umidade.Location = new System.Drawing.Point(1273, 790);
|
||||
this.lblDTM_Umidade.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblDTM_Umidade.Name = "lblDTM_Umidade";
|
||||
this.lblDTM_Umidade.Size = new System.Drawing.Size(69, 13);
|
||||
this.lblDTM_Umidade.TabIndex = 157;
|
||||
this.lblDTM_Umidade.Text = "Umidade: 0%";
|
||||
this.lblDTM_Corrente.AutoSize = true;
|
||||
this.lblDTM_Corrente.Location = new System.Drawing.Point(1273, 790);
|
||||
this.lblDTM_Corrente.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblDTM_Corrente.Name = "lblDTM_Corrente";
|
||||
this.lblDTM_Corrente.Size = new System.Drawing.Size(66, 13);
|
||||
this.lblDTM_Corrente.TabIndex = 157;
|
||||
this.lblDTM_Corrente.Text = "Corrente: 0A";
|
||||
//
|
||||
// lblDTM_Temperatura
|
||||
//
|
||||
|
|
@ -543,15 +554,15 @@ namespace AgroBase.Forms
|
|||
this.lblDTM_RPM.TabIndex = 150;
|
||||
this.lblDTM_RPM.Text = "RPM: 0";
|
||||
//
|
||||
// lblDFM_Umidade
|
||||
// lblDFM_Corrente
|
||||
//
|
||||
this.lblDFM_Umidade.AutoSize = true;
|
||||
this.lblDFM_Umidade.Location = new System.Drawing.Point(1273, 384);
|
||||
this.lblDFM_Umidade.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblDFM_Umidade.Name = "lblDFM_Umidade";
|
||||
this.lblDFM_Umidade.Size = new System.Drawing.Size(69, 13);
|
||||
this.lblDFM_Umidade.TabIndex = 149;
|
||||
this.lblDFM_Umidade.Text = "Umidade: 0%";
|
||||
this.lblDFM_Corrente.AutoSize = true;
|
||||
this.lblDFM_Corrente.Location = new System.Drawing.Point(1273, 384);
|
||||
this.lblDFM_Corrente.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblDFM_Corrente.Name = "lblDFM_Corrente";
|
||||
this.lblDFM_Corrente.Size = new System.Drawing.Size(66, 13);
|
||||
this.lblDFM_Corrente.TabIndex = 149;
|
||||
this.lblDFM_Corrente.Text = "Corrente: 0A";
|
||||
//
|
||||
// lblDFM_Temperatura
|
||||
//
|
||||
|
|
@ -623,15 +634,15 @@ namespace AgroBase.Forms
|
|||
this.lblDFM_RPM.TabIndex = 142;
|
||||
this.lblDFM_RPM.Text = "RPM: 0";
|
||||
//
|
||||
// lblETM_Umidade
|
||||
// lblETM_Corrente
|
||||
//
|
||||
this.lblETM_Umidade.AutoSize = true;
|
||||
this.lblETM_Umidade.Location = new System.Drawing.Point(10, 790);
|
||||
this.lblETM_Umidade.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblETM_Umidade.Name = "lblETM_Umidade";
|
||||
this.lblETM_Umidade.Size = new System.Drawing.Size(69, 13);
|
||||
this.lblETM_Umidade.TabIndex = 141;
|
||||
this.lblETM_Umidade.Text = "Umidade: 0%";
|
||||
this.lblETM_Corrente.AutoSize = true;
|
||||
this.lblETM_Corrente.Location = new System.Drawing.Point(10, 790);
|
||||
this.lblETM_Corrente.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblETM_Corrente.Name = "lblETM_Corrente";
|
||||
this.lblETM_Corrente.Size = new System.Drawing.Size(66, 13);
|
||||
this.lblETM_Corrente.TabIndex = 141;
|
||||
this.lblETM_Corrente.Text = "Corrente: 0A";
|
||||
//
|
||||
// lblETM_Temperatura
|
||||
//
|
||||
|
|
@ -703,15 +714,15 @@ namespace AgroBase.Forms
|
|||
this.lblETM_RPM.TabIndex = 134;
|
||||
this.lblETM_RPM.Text = "RPM: 0";
|
||||
//
|
||||
// lblEFM_Umidade
|
||||
// lblEFM_Corrente
|
||||
//
|
||||
this.lblEFM_Umidade.AutoSize = true;
|
||||
this.lblEFM_Umidade.Location = new System.Drawing.Point(10, 384);
|
||||
this.lblEFM_Umidade.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblEFM_Umidade.Name = "lblEFM_Umidade";
|
||||
this.lblEFM_Umidade.Size = new System.Drawing.Size(69, 13);
|
||||
this.lblEFM_Umidade.TabIndex = 133;
|
||||
this.lblEFM_Umidade.Text = "Umidade: 0%";
|
||||
this.lblEFM_Corrente.AutoSize = true;
|
||||
this.lblEFM_Corrente.Location = new System.Drawing.Point(10, 384);
|
||||
this.lblEFM_Corrente.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblEFM_Corrente.Name = "lblEFM_Corrente";
|
||||
this.lblEFM_Corrente.Size = new System.Drawing.Size(66, 13);
|
||||
this.lblEFM_Corrente.TabIndex = 133;
|
||||
this.lblEFM_Corrente.Text = "Corrente: 0A";
|
||||
//
|
||||
// lblEFM_Temperatura
|
||||
//
|
||||
|
|
@ -1103,17 +1114,6 @@ namespace AgroBase.Forms
|
|||
this.picEF.TabIndex = 90;
|
||||
this.picEF.TabStop = false;
|
||||
//
|
||||
// lblTemperatura
|
||||
//
|
||||
this.lblTemperatura.AutoSize = true;
|
||||
this.lblTemperatura.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.lblTemperatura.Location = new System.Drawing.Point(639, 631);
|
||||
this.lblTemperatura.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblTemperatura.Name = "lblTemperatura";
|
||||
this.lblTemperatura.Size = new System.Drawing.Size(198, 12);
|
||||
this.lblTemperatura.TabIndex = 173;
|
||||
this.lblTemperatura.Text = "Temp atual: 0,00ºC - Mín: 0,00ºC - Máx: 0,00ºC";
|
||||
//
|
||||
// frmAcompanhamento
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
|
|
@ -1150,7 +1150,7 @@ namespace AgroBase.Forms
|
|||
public System.Windows.Forms.DataVisualization.Charting.Chart chartDF;
|
||||
public System.Windows.Forms.DataVisualization.Charting.Chart chartEF;
|
||||
private System.Windows.Forms.PictureBox picRobo;
|
||||
private System.Windows.Forms.Label lblDTM_Umidade;
|
||||
private System.Windows.Forms.Label lblDTM_Corrente;
|
||||
private System.Windows.Forms.Label lblDTM_Temperatura;
|
||||
private System.Windows.Forms.Label lblDTM_Sentido;
|
||||
private System.Windows.Forms.Label lblDTM_SentidoSP;
|
||||
|
|
@ -1158,7 +1158,7 @@ namespace AgroBase.Forms
|
|||
private System.Windows.Forms.Label lblDTM_Potencia;
|
||||
private System.Windows.Forms.Label lblDTM_Velocidade;
|
||||
private System.Windows.Forms.Label lblDTM_RPM;
|
||||
private System.Windows.Forms.Label lblDFM_Umidade;
|
||||
private System.Windows.Forms.Label lblDFM_Corrente;
|
||||
private System.Windows.Forms.Label lblDFM_Temperatura;
|
||||
private System.Windows.Forms.Label lblDFM_Sentido;
|
||||
private System.Windows.Forms.Label lblDFM_SentidoSP;
|
||||
|
|
@ -1166,7 +1166,7 @@ namespace AgroBase.Forms
|
|||
private System.Windows.Forms.Label lblDFM_Potencia;
|
||||
private System.Windows.Forms.Label lblDFM_Velocidade;
|
||||
private System.Windows.Forms.Label lblDFM_RPM;
|
||||
private System.Windows.Forms.Label lblETM_Umidade;
|
||||
private System.Windows.Forms.Label lblETM_Corrente;
|
||||
private System.Windows.Forms.Label lblETM_Temperatura;
|
||||
private System.Windows.Forms.Label lblETM_Sentido;
|
||||
private System.Windows.Forms.Label lblETM_SentidoSP;
|
||||
|
|
@ -1174,7 +1174,7 @@ namespace AgroBase.Forms
|
|||
private System.Windows.Forms.Label lblETM_Potencia;
|
||||
private System.Windows.Forms.Label lblETM_Velocidade;
|
||||
private System.Windows.Forms.Label lblETM_RPM;
|
||||
private System.Windows.Forms.Label lblEFM_Umidade;
|
||||
private System.Windows.Forms.Label lblEFM_Corrente;
|
||||
private System.Windows.Forms.Label lblEFM_Temperatura;
|
||||
private System.Windows.Forms.Label lblEFM_Sentido;
|
||||
private System.Windows.Forms.Label lblEFM_SentidoSP;
|
||||
|
|
|
|||
|
|
@ -128,8 +128,8 @@ namespace AgroBase.Forms
|
|||
Label lblM_Temperatura = pnlFundo.Controls.OfType<Label>().FirstOrDefault(ctrl => ctrl.Name == "lbl" + Motor.ID + "M_Temperatura");
|
||||
lblM_Temperatura.Text = "Temperatura: " + Motor.Temperatura.ToString("0.00") + "ºC";
|
||||
lblM_Temperatura.ForeColor = Motor.Alarmes.Any(x => x.Tipo == S_Code.sTMP && (x.Maximo || x.Minimo)) ? Color.Red : Color.Black;
|
||||
Label lblM_Umidade = pnlFundo.Controls.OfType<Label>().FirstOrDefault(ctrl => ctrl.Name == "lbl" + Motor.ID + "M_Umidade");
|
||||
lblM_Umidade.Text = "Umidade: " + Motor.Umidade.ToString("0.00") + "%";
|
||||
Label lblM_Corrente = pnlFundo.Controls.OfType<Label>().FirstOrDefault(ctrl => ctrl.Name == "lbl" + Motor.ID + "M_Corrente");
|
||||
lblM_Corrente.Text = "Corrente: " + Motor.Corrente.ToString("0.00") + "A";
|
||||
|
||||
MovSensorimanetoGrafico Log = null;
|
||||
if (Motor.LogGrafico.Count > 0)
|
||||
|
|
|
|||
|
|
@ -1,17 +1,7 @@
|
|||
using AgroBase.Services;
|
||||
using CefSharp;
|
||||
using CefSharp.DevTools.IO;
|
||||
using CefSharp.WinForms;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AgroBase.Forms
|
||||
|
|
@ -75,8 +65,8 @@ namespace AgroBase.Forms
|
|||
}
|
||||
else if (!picLoading.Visible && GPSService.UltimaLeitura != null)
|
||||
{
|
||||
mapaService.AtualizarPosicaoMapaGPS(GPSService.UltimaLeitura.Latitude, GPSService.UltimaLeitura.Longitude);
|
||||
chromiumWebBrowser.Reload();
|
||||
//mapaService.AtualizarPosicaoMapaGPS(GPSService.UltimaLeitura.Latitude, GPSService.UltimaLeitura.Longitude);
|
||||
//chromiumWebBrowser.Reload();
|
||||
|
||||
lblDatahora.Text = "Ultima Leitura: " + GPSService.UltimaLeitura.DataHora.ToString("dd/MM/yyyy HH:mm:ss");
|
||||
lblLatitude.Text = "Latitude: " + GPSService.UltimaLeitura.Latitude;
|
||||
|
|
|
|||
|
|
@ -122,11 +122,17 @@ namespace AgroBase.Forms
|
|||
|
||||
Funcoes = AtuadorModel.Funcoes.ToList();
|
||||
Pinout = AtuadorModel.Pinout.ToList();
|
||||
Dispositivos = Disp.Dados.BicosPulverizadores.Select(x => new DispositivoDataModel()
|
||||
Dispositivos = new List<DispositivoDataModel>();
|
||||
Dispositivos.AddRange(Disp.Dados.BicosPulverizadores.Select(x => new DispositivoDataModel()
|
||||
{
|
||||
ID = x.ID,
|
||||
Funcoes = x.Funcoes
|
||||
}).ToList();
|
||||
}).ToList());
|
||||
Dispositivos.AddRange(Disp.Dados.Sensores.Select(x => new DispositivoDataModel()
|
||||
{
|
||||
ID = x.ID,
|
||||
Funcoes = x.Funcoes
|
||||
}).ToList());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -265,7 +265,7 @@ namespace AgroBase
|
|||
{
|
||||
if (MovConectado || DirConectado || AtuConectado)
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.IniciarOperacao();
|
||||
Variaveis.OperacaoEmAndamento.IniciarOperacao(null, false);
|
||||
|
||||
cmbModoOperacao.Enabled = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,114 @@
|
|||
using AgroBase.Services;
|
||||
using CefSharp.WinForms;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AgroBase.Models
|
||||
{
|
||||
public class CameraCaminhoModel
|
||||
{
|
||||
public string Nome { get; set; }
|
||||
public int Posicao { get; set; }
|
||||
public CameraService<CameraDeepLabV3PlusModel> camera { get; set; }
|
||||
public ChromiumWebBrowser browser { get; set; }
|
||||
public Panel panel { get; set; }
|
||||
public ComboBox combo { get; set; }
|
||||
public string ArquivoLeitura { get; set; }
|
||||
public int MaxLeituras { get; set; }
|
||||
public string VideoPorta { get; set; }
|
||||
public string VideoUrl { get; set; }
|
||||
public string SocketPorta { get; set; }
|
||||
public string CameraSelecionada { get; set; }
|
||||
|
||||
public Dictionary<string, Color> ClassMap = new Dictionary<string, Color>()
|
||||
{
|
||||
{ "background", Color.Black },
|
||||
{ "rua", Color.DarkRed },
|
||||
{ "cana", Color.DarkGreen },
|
||||
{ "ceu", Color.Gold },
|
||||
};
|
||||
|
||||
public List<CameraDeepLabV3PlusModel> Leituras { get; set; } = new List<CameraDeepLabV3PlusModel>();
|
||||
public List<Point> PontosExtremos { get; set; } = new List<Point>();
|
||||
public double Angulo { get; set; }
|
||||
public double AnguloEsquerdo { get; set; }
|
||||
public double AnguloDireito { get; set; }
|
||||
|
||||
|
||||
public static List<Point> DefinirPontosExtremos(List<Point> PontosCamera)
|
||||
{
|
||||
if (!PontosCamera.Any())
|
||||
{
|
||||
return new List<Point>();
|
||||
}
|
||||
List<Point> Pontos = new List<Point>()
|
||||
{
|
||||
new Point(9999, -1), // Ponto 0 - Mais a esquerda e abaixo
|
||||
new Point(9999, -1), // Ponto 1 - Mais a esquerda e abaixo, e esquerda > Ponto0.X
|
||||
new Point(9999, 9999), // Ponto 2 - Mais a esquerda e acima
|
||||
new Point(-1, 9999), // Ponto 3 - Mais a direita e acima
|
||||
new Point(-1, -1), // Ponto 4 - Mais a direita e abaixo, e direita < Ponto5.X
|
||||
new Point(-1, -1), // Ponto 5 - Mais a direita e abaixo
|
||||
};
|
||||
|
||||
foreach (var Ponto in PontosCamera)
|
||||
{
|
||||
// Ponto 0 - Mais a esquerda e abaixo
|
||||
if (Ponto.X < Pontos[0].X)
|
||||
{
|
||||
Pontos[0] = new Point() { X = Ponto.X, Y = Ponto.Y };
|
||||
}
|
||||
// Ponto 5 - Mais a direita e abaixo
|
||||
if (Ponto.X > Pontos[5].X)
|
||||
{
|
||||
Pontos[5] = new Point() { X = Ponto.X, Y = Ponto.Y };
|
||||
}
|
||||
}
|
||||
var Ponto0 = PontosCamera.Where(Ponto => Ponto.X == Pontos[0].X).OrderByDescending(Ponto => Ponto.Y).First();
|
||||
Pontos[0] = Ponto0;
|
||||
var Ponto5 = PontosCamera.Where(Ponto => Ponto.X == Pontos[5].X).OrderByDescending(Ponto => Ponto.Y).First();
|
||||
Pontos[5] = Ponto5;
|
||||
|
||||
foreach (var Ponto in PontosCamera)
|
||||
{
|
||||
// Ponto 1 - Mais a esquerda e abaixo, e esquerda > Ponto0.X
|
||||
if (Ponto.X < Pontos[1].X && Ponto.X > Ponto0.X)
|
||||
{
|
||||
Pontos[1] = new Point() { X = Ponto.X, Y = Ponto.Y };
|
||||
}
|
||||
// Ponto 4 Mais a direita e abaixo, e direita < Ponto5.X
|
||||
if (Ponto.X > Pontos[4].X && Ponto.X < Ponto5.X)
|
||||
{
|
||||
Pontos[4] = new Point() { X = Ponto.X, Y = Ponto.Y };
|
||||
}
|
||||
}
|
||||
var Ponto1 = PontosCamera.Where(Ponto => Ponto.X == Pontos[1].X).OrderByDescending(Ponto => Ponto.Y).First();
|
||||
Pontos[1] = Ponto1;
|
||||
var Ponto4 = PontosCamera.Where(Ponto => Ponto.X == Pontos[4].X).OrderByDescending(Ponto => Ponto.Y).First();
|
||||
Pontos[4] = Ponto4;
|
||||
|
||||
int Y_min = PontosCamera.OrderBy(Ponto => Ponto.Y).First().Y;
|
||||
foreach (var Ponto in PontosCamera.Where(x => x.Y == Y_min))
|
||||
{
|
||||
// Ponto 2 - Mais a esquerda e acima
|
||||
if (Ponto.X < Pontos[2].X)
|
||||
{
|
||||
Pontos[2] = new Point() { X = Ponto.X, Y = Ponto.Y };
|
||||
}
|
||||
// Ponto 3 - Mais a direita e acima
|
||||
if (Ponto.X > Pontos[3].X)
|
||||
{
|
||||
Pontos[3] = new Point() { X = Ponto.X, Y = Ponto.Y };
|
||||
}
|
||||
}
|
||||
|
||||
return Pontos;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -23,5 +23,7 @@ namespace AgroBase.Models
|
|||
public string VideoUrl { get; set; }
|
||||
public string SocketPorta { get; set; }
|
||||
public string CameraSelecionada { get; set; }
|
||||
|
||||
public int ErvasNoRadar { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,6 +73,10 @@ namespace AgroBase.Models
|
|||
sCOR = 322,
|
||||
sTEN = 112,
|
||||
sFLX = 198,
|
||||
sULT = 531,
|
||||
sMAS = 532,
|
||||
sBIC = 422,
|
||||
sPRS = 333,
|
||||
}
|
||||
|
||||
public enum BotoesJoystick
|
||||
|
|
|
|||
|
|
@ -17,11 +17,18 @@ namespace AgroBase.Models.Modules
|
|||
public static List<PinoutModel> Pinout { get; set; }
|
||||
public static List<FuncoesPinout> Funcoes { get; set; } = new List<FuncoesPinout>() { FuncoesPinout.Geral };
|
||||
public int QuantidadeBicos { get; set; } = 10;
|
||||
public double DensidadeHerbicida { get; set; }
|
||||
public double CapacidadeReservatorio { get; set; } = 30;
|
||||
public bool AtuacaoNivelAlto { get; set; } = true;
|
||||
public List<AtuadorBicoModel> BicosPulverizadores { get; set; } = new List<AtuadorBicoModel>();
|
||||
public List<SensorModel> Sensores { get; set; } = new List<SensorModel>();
|
||||
public double PercentualInicioPulverizacao { get; set; } = 0.3;
|
||||
|
||||
|
||||
public double MassaReservatorio { get; set; } = 0;
|
||||
public double VolumeReservatorio { get; set; } = 0;
|
||||
public double PercentualReservatorio { get; set; } = 0;
|
||||
public double MediaNivelFluxo { get; set; } = 0;
|
||||
public double PressaoLinha { get; set; } = 0;
|
||||
|
||||
|
||||
public static AtuadorModel CarregarParametrosIniciais()
|
||||
|
|
@ -30,23 +37,80 @@ namespace AgroBase.Models.Modules
|
|||
{
|
||||
QuantidadeBicos = 10,
|
||||
Conectado = false,
|
||||
BicosPulverizadores = new List<AtuadorBicoModel>()
|
||||
BicosPulverizadores = new List<AtuadorBicoModel>(),
|
||||
Sensores = new List<SensorModel>()
|
||||
{
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "FLXLN",
|
||||
Descricao = "Fluxo na linha principal",
|
||||
Prioridade = 10,
|
||||
Componente = S_Code.sFLX,
|
||||
Aferir = false,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.Fluxo,
|
||||
},
|
||||
DelayAmostragem = 200,
|
||||
UnidadeMedida = "L/m",
|
||||
Parametros = new List<string[]>()
|
||||
{
|
||||
new string[] { "Calibragem", "00450" }
|
||||
},
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "MASRS",
|
||||
Descricao = "Massa do reservatório de herbicida",
|
||||
Prioridade = 3,
|
||||
Componente = S_Code.sMAS,
|
||||
Aferir = false,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.DT,
|
||||
FuncoesPinout.SCK,
|
||||
},
|
||||
DelayAmostragem = 1000,
|
||||
UnidadeMedida = "Kg",
|
||||
Parametros = new List<string[]>(),
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "PRSLN",
|
||||
Descricao = "Pressão na linha principal",
|
||||
Prioridade = 3,
|
||||
Componente = S_Code.sPRS,
|
||||
Aferir = false,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.Pressao,
|
||||
},
|
||||
DelayAmostragem = 1000,
|
||||
UnidadeMedida = "psi",
|
||||
Parametros = new List<string[]>(),
|
||||
},
|
||||
},
|
||||
};
|
||||
for (int i = 0; i < Atuador.QuantidadeBicos; i++)
|
||||
{
|
||||
Atuador.BicosPulverizadores.Add(new AtuadorBicoModel()
|
||||
{
|
||||
ID = "B" + (i + 1).ToString("00"),
|
||||
Posicao = i + 1,
|
||||
Comandar = false,
|
||||
Posicao = i + 1,
|
||||
Comandar = false,
|
||||
Atuado = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.Solenoide,
|
||||
FuncoesPinout.Fluxo
|
||||
},
|
||||
StatusBico = false,
|
||||
NivelFluxo = 0
|
||||
MediaNivelFluxo = 0
|
||||
});
|
||||
}
|
||||
return Atuador;
|
||||
|
|
@ -55,8 +119,9 @@ namespace AgroBase.Models.Modules
|
|||
public List<string> ProtocoloConfiguracao(bool Conectar)
|
||||
{
|
||||
List<string> Config = BicosPulverizadores.Select(x => x.ProtocoloConfiguracaoBico(Conectar)).ToList();
|
||||
Config.AddRange(Sensores.Select(x => x.ProtocoloConfiguracaoSensor(Pinout, Conectar)).ToList());
|
||||
string ProtocoloMOD = ((int)F_Code.Cfg).ToString() +
|
||||
"MD " + ";" + // 0 ~ 2
|
||||
"MD".PadRight(5, ' ') + ";" + // 0 ~ 2
|
||||
(Conectar ? "1" : "0") + ";" + // 4
|
||||
_TaxaAmostragem.ToString("00000") + ";" + // 6 ~ 10
|
||||
(Pinout.Any(x => x.Funcao == FuncoesPinout.Geral) ? Pinout.FirstOrDefault(x => x.Funcao == FuncoesPinout.Geral).Pino.ToString("00") : "-1") + ";" + // 12 ~ 13
|
||||
|
|
@ -73,7 +138,8 @@ namespace AgroBase.Models.Modules
|
|||
string[] Dados = Protocolo.Replace(SerialService.BeginSensor, "").Split(SerialService.EndLine[0])[0].Split(';');
|
||||
S_Code TipoSensor = (S_Code)(int.Parse(Dados[0]));
|
||||
AtuadorBicoModel Bico = BicosPulverizadores.FirstOrDefault(x => x.ID == Dados[1]);
|
||||
if (Bico == null)
|
||||
SensorModel Sensor = Sensores.FirstOrDefault(x => x.ID == Dados[1]);
|
||||
if (Bico == null && Sensor == null)
|
||||
{
|
||||
if (Dados[1] == "MD ")
|
||||
{
|
||||
|
|
@ -85,26 +151,105 @@ namespace AgroBase.Models.Modules
|
|||
{
|
||||
switch (TipoSensor)
|
||||
{
|
||||
case S_Code.sFLX:
|
||||
case S_Code.sCFG:
|
||||
{
|
||||
Bico.StatusBico = Dados[2] == "1";
|
||||
double nivelFluxo = 0;
|
||||
double.TryParse(Dados[3].Replace(".", ","), out nivelFluxo);
|
||||
Bico.NivelFluxo = nivelFluxo;
|
||||
bool Inicializado = Dados[2] == "1";
|
||||
if (Bico != null)
|
||||
{
|
||||
Bico.Inicializado = Inicializado;
|
||||
}
|
||||
if (Sensor != null)
|
||||
{
|
||||
Sensor.Inicializado = Inicializado;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case S_Code.sTST:
|
||||
{
|
||||
bool testando = Dados[1] == "1";
|
||||
Bico.Testando = testando;
|
||||
bool Testando = Dados[1] == "1";
|
||||
if (Bico != null)
|
||||
{
|
||||
Bico.Testando = Testando;
|
||||
}
|
||||
if (Sensor != null)
|
||||
{
|
||||
Sensor.Testando = Testando;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case S_Code.sCFG:
|
||||
case S_Code.sBIC:
|
||||
{
|
||||
Bico.Inicializado = Dados[2] == "1";
|
||||
bool StatusBico = Dados[2] == "1";
|
||||
Bico.StatusBico = StatusBico;
|
||||
break;
|
||||
}
|
||||
case S_Code.sFLX:
|
||||
{
|
||||
double nivelFluxo = 0;
|
||||
double.TryParse(Dados[2].Replace(".", ","), out nivelFluxo);
|
||||
int tempo = 0;
|
||||
int.TryParse(Dados[3].Replace(".", ","), out tempo);
|
||||
|
||||
if (nivelFluxo > 0)
|
||||
{
|
||||
MediaNivelFluxo = nivelFluxo;
|
||||
|
||||
foreach (var bico in BicosPulverizadores.Where(x => x.Atuado))
|
||||
{
|
||||
bico.MediaNivelFluxo = nivelFluxo / BicosPulverizadores.Count(y => y.Atuado);
|
||||
};
|
||||
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.HerbicidaConsumido += nivelFluxo;
|
||||
}
|
||||
|
||||
Sensor.Leituras = new List<double>()
|
||||
{
|
||||
nivelFluxo,
|
||||
tempo
|
||||
};
|
||||
break;
|
||||
}
|
||||
case S_Code.sMAS:
|
||||
{
|
||||
double massa = 0;
|
||||
double.TryParse(Dados[2].Replace(".", ","), out massa);
|
||||
MassaReservatorio = massa;
|
||||
VolumeReservatorio = massa / DensidadeHerbicida;
|
||||
PercentualReservatorio = VolumeReservatorio / CapacidadeReservatorio * 100;
|
||||
|
||||
Sensor.Leituras = new List<double>()
|
||||
{
|
||||
massa
|
||||
};
|
||||
break;
|
||||
}
|
||||
case S_Code.sPRS:
|
||||
{
|
||||
double pressao = 0;
|
||||
double.TryParse(Dados[2].Replace(".", ","), out pressao);
|
||||
int leitura = 0;
|
||||
int.TryParse(Dados[3].Replace(".", ","), out leitura);
|
||||
PressaoLinha = pressao;
|
||||
|
||||
Sensor.Leituras = new List<double>()
|
||||
{
|
||||
pressao,
|
||||
leitura
|
||||
};
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (Sensor != null)
|
||||
{
|
||||
if (Sensor.Leituras[0] > Sensor.ValorMaximo)
|
||||
{
|
||||
Sensor.ValorMaximo = Sensor.Leituras[0];
|
||||
}
|
||||
else if (Sensor.Leituras[0] < Sensor.ValorMinimo)
|
||||
{
|
||||
Sensor.ValorMinimo = Sensor.Leituras[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -172,19 +317,18 @@ namespace AgroBase.Models.Modules
|
|||
public bool Testando { get; set; }
|
||||
public List<FuncoesPinout> Funcoes { get; set; }
|
||||
public bool StatusBico { get; set; }
|
||||
public double NivelFluxo { get; set; }
|
||||
public double MediaNivelFluxo { get; set; }
|
||||
|
||||
|
||||
public string ProtocoloConfiguracaoBico(bool Conectar)
|
||||
{
|
||||
var _pinout = AtuadorModel.Pinout.Where(x => x.ComponenteID == ID).ToList();
|
||||
return ((int)F_Code.Cfg).ToString() +
|
||||
ID + ";" + // 0 ~ 2
|
||||
ID.PadRight(5, ' ') + ";" + // 0 ~ 2
|
||||
(Conectar ? "1" : "0") + ";" + // 4
|
||||
(Comandar ? "1" : "0") + ";" + // 6
|
||||
Posicao.ToString("00") + ";" + // 8 ~ 9
|
||||
(_pinout.Any(x => x.Funcao == FuncoesPinout.Solenoide) ? _pinout.FirstOrDefault(x => x.Funcao == FuncoesPinout.Solenoide).Pino.ToString("00") : "-1") + "," + // 11 ~ 12
|
||||
(_pinout.Any(x => x.Funcao == FuncoesPinout.Fluxo) ? _pinout.FirstOrDefault(x => x.Funcao == FuncoesPinout.Fluxo).Pino.ToString("00") : "-1"); // 14 ~ 15
|
||||
(_pinout.Any(x => x.Funcao == FuncoesPinout.Solenoide) ? _pinout.FirstOrDefault(x => x.Funcao == FuncoesPinout.Solenoide).Pino.ToString("00") : "-1"); // 11 ~ 12
|
||||
}
|
||||
|
||||
public string ProtocoloComando()
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ namespace AgroBase.Models
|
|||
public int TempoEmAtividade { get; set; } = 0;
|
||||
public double DistanciaPercorridaTotal { get; set; } = 0;
|
||||
public double DistanciaPercorridaParcial { get; set; } = 0;
|
||||
public double DistanciaPercorridaOperacao { get; set; } = 0;
|
||||
public Timer tmrRegistrador { get; set; }
|
||||
|
||||
|
||||
|
|
@ -394,6 +395,7 @@ namespace AgroBase.Models
|
|||
double VelocidadeMedia = Motores.Average(x => x.VelocidadeInstantanea * 1000 / 3600);
|
||||
DistanciaPercorridaTotal += 1 * VelocidadeMedia;
|
||||
DistanciaPercorridaParcial += (UltimaDirecao == Direcao.Frente ? 1 : UltimaDirecao == Direcao.Tras ? -1 : 0) * VelocidadeMedia;
|
||||
DistanciaPercorridaOperacao += 1 * VelocidadeMedia;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -436,6 +438,8 @@ namespace AgroBase.Models
|
|||
public double Temperatura { get; set; } = 0;
|
||||
public double Umidade { get; set; } = 0;
|
||||
public double IndiceCalor { get; set; } = 0;
|
||||
public double Corrente { get; set; } = 0;
|
||||
public double Tensao { get; set; } = 0;
|
||||
public ConfiguracaoSentidoMotor ConfigSentidos { get; set; }
|
||||
public bool Testando { get; set; } = false;
|
||||
public List<AlarmeModel> Alarmes { get; set; } = new List<AlarmeModel>();
|
||||
|
|
@ -536,15 +540,35 @@ namespace AgroBase.Models
|
|||
return "";
|
||||
}
|
||||
|
||||
public void AtualizarTemperaturaMotor(SensorModel Sensor)
|
||||
public void AtualizarSensoresMotor(SensorModel Sensor)
|
||||
{
|
||||
Temperatura = Sensor.Leituras[0];
|
||||
bool Computar = true;
|
||||
switch (Sensor.Componente)
|
||||
{
|
||||
case S_Code.sTMP:
|
||||
Temperatura = Sensor.Leituras[0];
|
||||
break;
|
||||
case S_Code.sCOR:
|
||||
Corrente = Sensor.Leituras[0];
|
||||
Tensao = Sensor.Leituras[1];
|
||||
break;
|
||||
default:
|
||||
Computar = false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (!Computar)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
AlarmeModel _Alarme = new AlarmeModel()
|
||||
{
|
||||
Tipo = S_Code.sTMP,
|
||||
Tipo = Sensor.Componente,
|
||||
Valor = Sensor.Leituras[0],
|
||||
Maximo = Temperatura > Sensor.LimiteMaximo,
|
||||
Minimo = Temperatura < Sensor.LimiteMinimo,
|
||||
Maximo = Sensor.Leituras[0] > Sensor.LimiteMaximo,
|
||||
Minimo = Sensor.Leituras[0] < Sensor.LimiteMinimo,
|
||||
ParaMaximo = true,
|
||||
ParaMinimo = true
|
||||
};
|
||||
|
|
@ -573,6 +597,8 @@ namespace AgroBase.Models
|
|||
Alarme = Alarmes.Any(x => (x.Maximo && x.ParaMaximo) || (x.Minimo && x.ParaMinimo));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public class SensoriamentoMotorTestes
|
||||
|
|
|
|||
|
|
@ -267,13 +267,26 @@ namespace AgroBase.Models.Modules
|
|||
REF180,
|
||||
REF270,
|
||||
Solenoide,
|
||||
DT,
|
||||
SCK,
|
||||
Pressao,
|
||||
Fluxo,
|
||||
Leitura1,
|
||||
Leitura2,
|
||||
Leitura3,
|
||||
Leitura4,
|
||||
I2C,
|
||||
Tensao,
|
||||
Corrente,
|
||||
Echo,
|
||||
Trigger,
|
||||
Massa,
|
||||
}
|
||||
|
||||
public static class PinoutUtils
|
||||
{
|
||||
public static List<FuncoesPinout> PinosSecundarios = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.SCK,
|
||||
FuncoesPinout.Trigger,
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,23 +131,142 @@ namespace AgroBase.Models.Modules
|
|||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "ABAT",
|
||||
ID = "AMVET",
|
||||
Prioridade = 10,
|
||||
Descricao = "Corrente da bateria",
|
||||
Descricao = "Corrente do Motor BLDC ET",
|
||||
Componente = S_Code.sCOR,
|
||||
Aferir = true,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.Corrente,
|
||||
FuncoesPinout.I2C,
|
||||
},
|
||||
DelayAmostragem = 500,
|
||||
UnidadeMedida = "A",
|
||||
Parametros = new List<string[]>()
|
||||
{
|
||||
new string[] { "V offset", "00.413" },
|
||||
new string[] { "Sensibilidade", "000.35" },
|
||||
new string[] { "Endereço I2C", "0x40" },
|
||||
},
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "AMVEF",
|
||||
Prioridade = 10,
|
||||
Descricao = "Corrente do Motor BLDC EF",
|
||||
Componente = S_Code.sCOR,
|
||||
Aferir = true,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.I2C,
|
||||
},
|
||||
DelayAmostragem = 500,
|
||||
UnidadeMedida = "A",
|
||||
Parametros = new List<string[]>()
|
||||
{
|
||||
new string[] { "Endereço I2C", "0x41" },
|
||||
},
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "AMVDT",
|
||||
Prioridade = 10,
|
||||
Descricao = "Corrente do Motor BLDC DT",
|
||||
Componente = S_Code.sCOR,
|
||||
Aferir = true,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.I2C,
|
||||
},
|
||||
DelayAmostragem = 500,
|
||||
UnidadeMedida = "A",
|
||||
Parametros = new List<string[]>()
|
||||
{
|
||||
new string[] { "Endereço I2C", "0x42" },
|
||||
},
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "AMVDF",
|
||||
Prioridade = 10,
|
||||
Descricao = "Corrente do Motor BLDC DF",
|
||||
Componente = S_Code.sCOR,
|
||||
Aferir = true,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.I2C,
|
||||
},
|
||||
DelayAmostragem = 500,
|
||||
UnidadeMedida = "A",
|
||||
Parametros = new List<string[]>()
|
||||
{
|
||||
new string[] { "Endereço I2C", "0x43" },
|
||||
},
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "AMP",
|
||||
Prioridade = 10,
|
||||
Descricao = "Corrente dos Motores de Passo",
|
||||
Componente = S_Code.sCOR,
|
||||
Aferir = true,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.I2C,
|
||||
},
|
||||
DelayAmostragem = 500,
|
||||
UnidadeMedida = "A",
|
||||
Parametros = new List<string[]>()
|
||||
{
|
||||
new string[] { "Endereço I2C", "0x44" },
|
||||
},
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "AAT",
|
||||
Prioridade = 10,
|
||||
Descricao = "Corrente do Módulo Atuador",
|
||||
Componente = S_Code.sCOR,
|
||||
Aferir = true,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.I2C,
|
||||
},
|
||||
DelayAmostragem = 500,
|
||||
UnidadeMedida = "A",
|
||||
Parametros = new List<string[]>()
|
||||
{
|
||||
new string[] { "Endereço I2C", "0x45" },
|
||||
},
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "APC",
|
||||
Prioridade = 10,
|
||||
Descricao = "Corrente do Computador",
|
||||
Componente = S_Code.sCOR,
|
||||
Aferir = true,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.I2C,
|
||||
},
|
||||
DelayAmostragem = 500,
|
||||
UnidadeMedida = "A",
|
||||
Parametros = new List<string[]>()
|
||||
{
|
||||
new string[] { "Endereço I2C", "0x46" },
|
||||
},
|
||||
},
|
||||
new SensorModel()
|
||||
|
|
@ -170,15 +289,51 @@ namespace AgroBase.Models.Modules
|
|||
new string[] { "V offset", "0.0000" },
|
||||
},
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "SUESQ",
|
||||
Descricao = "Sensor Ultrassom Esquerdo",
|
||||
Prioridade = 2,
|
||||
Componente = S_Code.sULT,
|
||||
Aferir = true,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.Echo,
|
||||
FuncoesPinout.Trigger,
|
||||
},
|
||||
DelayAmostragem = 1000,
|
||||
UnidadeMedida = "cm",
|
||||
Parametros = new List<string[]>(),
|
||||
},
|
||||
new SensorModel()
|
||||
{
|
||||
ID = "SUDIR",
|
||||
Descricao = "Sensor Ultrassom Direito",
|
||||
Prioridade = 2,
|
||||
Componente = S_Code.sULT,
|
||||
Aferir = true,
|
||||
Inicializado = false,
|
||||
Testando = false,
|
||||
Funcoes = new List<FuncoesPinout>()
|
||||
{
|
||||
FuncoesPinout.Echo,
|
||||
FuncoesPinout.Trigger,
|
||||
},
|
||||
DelayAmostragem = 1000,
|
||||
UnidadeMedida = "cm",
|
||||
Parametros = new List<string[]>(),
|
||||
},
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public List<string> ProtocoloConfiguracao(bool Conectar)
|
||||
{
|
||||
List<string> Config = Sensores.Select(x => x.ProtocoloConfiguracaoSensor(Conectar)).ToList();
|
||||
List<string> Config = Sensores.Select(x => x.ProtocoloConfiguracaoSensor(Pinout, Conectar)).ToList();
|
||||
string ProtocoloMOD = ((int)F_Code.Cfg).ToString() +
|
||||
"MD " + ";" + // 0 ~ 4
|
||||
"MD".PadRight(5, ' ') + ";" + // 0 ~ 4
|
||||
(Conectar ? "1" : "0") + ";" + // 6
|
||||
_TaxaAmostragem.ToString("00000"); // 8 ~ 12
|
||||
Config.Add(ProtocoloMOD);
|
||||
|
|
@ -214,32 +369,32 @@ namespace AgroBase.Models.Modules
|
|||
|
||||
switch (TipoSensor)
|
||||
{
|
||||
case S_Code.sCFG:
|
||||
Sensor.Inicializado = Dados[2] == "1";
|
||||
break;
|
||||
case S_Code.sCOR:
|
||||
double leitura = -1;
|
||||
double.TryParse(Dados[2].Replace(".", ","), out leitura);
|
||||
double vPin = -1;
|
||||
double.TryParse(Dados[3].Replace(".", ","), out vPin);
|
||||
double vBarramento = -1;
|
||||
double.TryParse(Dados[2].Replace(".", ","), out vBarramento);
|
||||
double vShunt = -1;
|
||||
double.TryParse(Dados[3].Replace(".", ","), out vShunt);
|
||||
double corrente = -1;
|
||||
double.TryParse(Dados[4].Replace(".", ","), out corrente);
|
||||
|
||||
double potencia = -1;
|
||||
double.TryParse(Dados[5].Replace(".", ","), out potencia);
|
||||
|
||||
Sensor.Leituras = new List<double>()
|
||||
{
|
||||
corrente,
|
||||
leitura,
|
||||
vPin,
|
||||
vBarramento,
|
||||
potencia,
|
||||
vShunt,
|
||||
};
|
||||
|
||||
if (corrente > Sensor.ValorMaximo)
|
||||
if (Sensor.Descricao.Contains("Bateria"))
|
||||
{
|
||||
Sensor.ValorMaximo = corrente;
|
||||
frmInstancial.frmAcompanhamento.AtualizarSensores("Corrente atual: " + corrente.ToString("0.00") + "A - Mín: " + Sensor.ValorMinimo.ToString("0.00") + "A - Máx: " + Sensor.ValorMaximo.ToString("0.00") + "A");
|
||||
}
|
||||
else if (corrente < Sensor.ValorMinimo)
|
||||
{
|
||||
Sensor.ValorMinimo = corrente;
|
||||
}
|
||||
|
||||
frmInstancial.frmAcompanhamento.AtualizarSensores("Corrente atual: " + corrente.ToString("0.00") + "A - Mín: " + Sensor.ValorMinimo.ToString("0.00") + "A - Máx: " + Sensor.ValorMaximo.ToString("0.00") + "A");
|
||||
|
||||
|
||||
AtualizaGrafico = true;
|
||||
break;
|
||||
case S_Code.sTEN:
|
||||
|
|
@ -256,57 +411,69 @@ namespace AgroBase.Models.Modules
|
|||
leituraV,
|
||||
vPinV,
|
||||
};
|
||||
|
||||
if (tensao > Sensor.ValorMaximo)
|
||||
{
|
||||
Sensor.ValorMaximo = tensao;
|
||||
}
|
||||
else if (tensao < Sensor.ValorMinimo)
|
||||
{
|
||||
Sensor.ValorMinimo = tensao;
|
||||
}
|
||||
|
||||
frmInstancial.frmAcompanhamento.AtualizarSensores("Tensão atual: " + tensao.ToString("0.00") + "V - Mín: " + Sensor.ValorMinimo.ToString("0.00") + "V - Máx: " + Sensor.ValorMaximo.ToString("0.00") + "V");
|
||||
if (Sensor.Descricao.Contains("Bateria"))
|
||||
{
|
||||
frmInstancial.frmAcompanhamento.AtualizarSensores("Tensão atual: " + tensao.ToString("0.00") + "V - Mín: " + Sensor.ValorMinimo.ToString("0.00") + "V - Máx: " + Sensor.ValorMaximo.ToString("0.00") + "V");
|
||||
}
|
||||
|
||||
AtualizaGrafico = true;
|
||||
|
||||
break;
|
||||
case S_Code.sCFG:
|
||||
{
|
||||
Sensor.Inicializado = Dados[2] == "1";
|
||||
break;
|
||||
}
|
||||
case S_Code.sTMP: {
|
||||
case S_Code.sTMP:
|
||||
double temp = -1;
|
||||
double.TryParse(Dados[2].Replace(".", ","), out temp);
|
||||
Sensor.Leituras = new List<double>() { temp };
|
||||
if (temp > Sensor.ValorMaximo)
|
||||
{
|
||||
Sensor.ValorMaximo = temp;
|
||||
}
|
||||
else if (temp < Sensor.ValorMinimo)
|
||||
{
|
||||
Sensor.ValorMinimo = temp;
|
||||
}
|
||||
|
||||
MovSensoriamentoMotor Motor =
|
||||
Variaveis.DispositivosConectados.Any(x => x.Dispositivo == T_Code.Mov) ?
|
||||
((MovimentacaoModel)(Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Mov).Dados)).Motores.FirstOrDefault(x => Sensor.ID.Contains(x.ID)) :
|
||||
null;
|
||||
if (Motor != null)
|
||||
{
|
||||
Motor.AtualizarTemperaturaMotor(Sensor);
|
||||
}
|
||||
|
||||
if (Sensor.ID == "TBAT")
|
||||
if (Sensor.Descricao.Contains("Bateria"))
|
||||
{
|
||||
frmInstancial.frmAcompanhamento.AtualizarSensores("Temp atual: " + temp.ToString("0.00") + "ºC - Mín: " + Sensor.ValorMinimo.ToString("0.00") + "ºC - Máx: " + Sensor.ValorMaximo.ToString("0.00") + "ºC");
|
||||
}
|
||||
|
||||
AtualizaGrafico = true;
|
||||
break;
|
||||
}
|
||||
case S_Code.sULT:
|
||||
double distancia = -1;
|
||||
double.TryParse(Dados[2].Replace(".", ","), out distancia);
|
||||
int duracao = -1;
|
||||
int.TryParse(Dados[3], out duracao);
|
||||
|
||||
Sensor.Leituras = new List<double>()
|
||||
{
|
||||
distancia,
|
||||
duracao,
|
||||
};
|
||||
|
||||
if (Sensor.ID == "SUESQ")
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.DistanciaEsquerda = distancia;
|
||||
}
|
||||
else if (Sensor.ID == "SUDIR")
|
||||
{
|
||||
Variaveis.OperacaoEmAndamento.Sensoriamento.DistanciaDireita = distancia;
|
||||
}
|
||||
|
||||
AtualizaGrafico = true;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if (Sensor.Leituras[0] > Sensor.ValorMaximo)
|
||||
{
|
||||
Sensor.ValorMaximo = Sensor.Leituras[0];
|
||||
}
|
||||
else if (Sensor.Leituras[0] < Sensor.ValorMinimo)
|
||||
{
|
||||
Sensor.ValorMinimo = Sensor.Leituras[0];
|
||||
}
|
||||
|
||||
MovSensoriamentoMotor Motor =
|
||||
Variaveis.DispositivosConectados.Any(x => x.Dispositivo == T_Code.Mov) ?
|
||||
((MovimentacaoModel)(Variaveis.DispositivosConectados.FirstOrDefault(x => x.Dispositivo == T_Code.Mov).Dados)).Motores.FirstOrDefault(x => Sensor.ID.Contains(x.ID)) :
|
||||
null;
|
||||
if (Motor != null)
|
||||
{
|
||||
Motor.AtualizarSensoresMotor(Sensor);
|
||||
}
|
||||
|
||||
if (AtualizaGrafico)
|
||||
|
|
@ -436,9 +603,9 @@ namespace AgroBase.Models.Modules
|
|||
|
||||
public List<SenSensorimanetoGrafico> LogGrafico = new List<SenSensorimanetoGrafico>();
|
||||
|
||||
public string ProtocoloConfiguracaoSensor(bool Conectar)
|
||||
public string ProtocoloConfiguracaoSensor(List<PinoutModel> Pinout, bool Conectar)
|
||||
{
|
||||
var _pinout = SensoriamentoModel.Pinout.Where(x => x.ComponenteID == ID).ToList();
|
||||
var _pinout = Pinout.Where(x => x.ComponenteID == ID).ToList();
|
||||
string Protocolo = ((int)F_Code.Cfg).ToString() +
|
||||
ID.PadRight(5, ' ') + ";" + // 0 ~ 4
|
||||
(Conectar ? "1" : "0") + ";" + // 6
|
||||
|
|
@ -446,7 +613,8 @@ namespace AgroBase.Models.Modules
|
|||
(Aferir ? "1" : "0") + ";" + // 12
|
||||
DelayAmostragem.ToString("00000") + ";" + // 14 ~ 18
|
||||
Prioridade.ToString("00") + ";" + // 20 ~ 21
|
||||
(_pinout.Any(x => x.Funcao != FuncoesPinout.NaoConectado) ? _pinout.FirstOrDefault(x => x.Funcao != FuncoesPinout.NaoConectado).Pino.ToString("00") : "-1"); // 23 ~ 24
|
||||
(_pinout.Any(x => x.Funcao != FuncoesPinout.NaoConectado) ? _pinout.FirstOrDefault(x => x.Funcao != FuncoesPinout.NaoConectado).Pino.ToString("00") : "-1") + ";" + // 23 ~ 24
|
||||
(_pinout.Any(x => PinoutUtils.PinosSecundarios.Any(y => y == x.Funcao)) ? _pinout.FirstOrDefault(x => PinoutUtils.PinosSecundarios.Any(y => y == x.Funcao)).Pino.ToString("00") : "-1"); // 26 ~ 27
|
||||
foreach (var Parametro in Parametros)
|
||||
{
|
||||
Protocolo += ";" + Parametro[1];
|
||||
|
|
|
|||
|
|
@ -52,12 +52,12 @@ namespace AgroBase.Models
|
|||
this.DispDir = Dir;
|
||||
this.DispAtu = Atu;
|
||||
|
||||
AtuacoesPorBico = new List<int>();
|
||||
this.Sensoriamento.AtuacoesPorBico = new List<int>();
|
||||
if (DispAtu != null)
|
||||
{
|
||||
for (int i = 0; i < DispAtu.Dados.QuantidadeBicos; i++)
|
||||
{
|
||||
AtuacoesPorBico.Add(0);
|
||||
this.Sensoriamento.AtuacoesPorBico.Add(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -74,17 +74,9 @@ namespace AgroBase.Models
|
|||
public OperacaoControleModel Controle { get; set; }
|
||||
public OperacaoControleModel ControleAnterior { get; set; }
|
||||
public List<OperacaoModulosMandatoriosModel> ModulosMandatorios { get; set; }
|
||||
|
||||
public int ErvasNoRadar { get; set; } = 0;
|
||||
|
||||
public double VelocidadeMedia { get; set; } = 0;
|
||||
public double HerbicidaConsumido { get; set; } = 0;
|
||||
public double HerbicidaPorErva { get; set; } = 0;
|
||||
public double BateriaConsumida { get; set; } = 0;
|
||||
public int ErvasIdentificadas { get; set; } = 0;
|
||||
public List<int> AtuacoesPorBico { get; set; } = new List<int>();
|
||||
public double DistanciaPercorrida { get; set; } = 0;
|
||||
public double ProgressoPercurso { get; set; } = 0;
|
||||
public OperacaoSensoriamentoModel Sensoriamento { get; set; } = new OperacaoSensoriamentoModel();
|
||||
public int TempoIniciarOperacao { get; set; } = 10;
|
||||
|
||||
|
||||
public static OperacaoModel CarregarParametrosOperacaoPadrao(ModoOperacao Modo)
|
||||
{
|
||||
|
|
@ -96,21 +88,26 @@ namespace AgroBase.Models
|
|||
{
|
||||
Controle = new OperacaoControleModel(),
|
||||
ControleAnterior = new OperacaoControleModel(),
|
||||
AtuacoesPorBico = new List<int>(),
|
||||
BateriaConsumida = 0,
|
||||
DistanciaPercorrida = 0,
|
||||
ErvasIdentificadas = 0,
|
||||
ErvasNoRadar = 0,
|
||||
HerbicidaConsumido = 0,
|
||||
HerbicidaPorErva = 0,
|
||||
Iniciado = false,
|
||||
ProgressoPercurso = 0,
|
||||
TimestampInicio = 0,
|
||||
TimestampFim = 0,
|
||||
VelocidadeMedia = 0,
|
||||
DispAtu = AtuConectado,
|
||||
DispDir = DirConectado,
|
||||
DispMov = MovConectado,
|
||||
Sensoriamento = new OperacaoSensoriamentoModel()
|
||||
{
|
||||
AtuacoesPorBico = new List<int>(),
|
||||
BateriaConsumida = 0,
|
||||
DistanciaPercorrida = 0,
|
||||
ErvasIdentificadas = 0,
|
||||
ErvasNoRadar = 0,
|
||||
HerbicidaConsumido = 0,
|
||||
HerbicidaPorErva = 0,
|
||||
ProgressoPercurso = 0,
|
||||
VelocidadeMedia = 0,
|
||||
DistanciaDireita = 0,
|
||||
DistanciaEsquerda = 0,
|
||||
}
|
||||
};
|
||||
|
||||
switch (Modo)
|
||||
|
|
@ -210,7 +207,7 @@ namespace AgroBase.Models
|
|||
{
|
||||
for (int i = 0; i < OperacaoCarregar.DispAtu.Dados.QuantidadeBicos; i++)
|
||||
{
|
||||
OperacaoCarregar.AtuacoesPorBico.Add(0);
|
||||
OperacaoCarregar.Sensoriamento.AtuacoesPorBico.Add(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -252,16 +249,21 @@ namespace AgroBase.Models
|
|||
}
|
||||
|
||||
|
||||
public void IniciarOperacao(OperacaoControleModel controle = null)
|
||||
public void IniciarOperacao(OperacaoControleModel controle = null, bool DaIHM = true)
|
||||
{
|
||||
Iniciado = true;
|
||||
TimestampInicio = DateTime.Now.Ticks;
|
||||
TimestampFim = 0;
|
||||
DispMov.Dados.DistanciaPercorridaOperacao = 0;
|
||||
|
||||
if (controle != null)
|
||||
{
|
||||
Controle = controle;
|
||||
}
|
||||
frmOperacao.Show();
|
||||
if (DaIHM)
|
||||
{
|
||||
frmOperacao.Show();
|
||||
}
|
||||
}
|
||||
|
||||
public void FinalizarOperacao()
|
||||
|
|
@ -316,8 +318,8 @@ namespace AgroBase.Models
|
|||
{
|
||||
return;
|
||||
}
|
||||
VelocidadeMedia = DispMov.Dados.Motores.Average(x => x.VelocidadeInstantanea);
|
||||
DistanciaPercorrida = DispMov.Dados.DistanciaPercorridaTotal;
|
||||
Sensoriamento.VelocidadeMedia = DispMov.Dados.Motores.Average(x => x.VelocidadeInstantanea);
|
||||
Sensoriamento.DistanciaPercorrida = DispMov.Dados.DistanciaPercorridaOperacao;
|
||||
}
|
||||
|
||||
public List<string> EnviarProtocoloComando(IDispositivosService Dispositivo)
|
||||
|
|
@ -331,14 +333,22 @@ namespace AgroBase.Models
|
|||
|
||||
if (Dispositivo.Dispositivo == T_Code.Mov)
|
||||
{
|
||||
GeneralJoystick.RPM = Controle.RPM;
|
||||
if (Controle.RPM == 0)
|
||||
{
|
||||
DirecaoAtual = Direcao.Parado;
|
||||
}
|
||||
else
|
||||
{
|
||||
GeneralJoystick.RPM = Controle.RPM;
|
||||
DirecaoAtual = Direcao.Frente;
|
||||
if (Controle.RPM < 0)
|
||||
{
|
||||
GeneralJoystick.RPM *= -1;
|
||||
DirecaoAtual = Direcao.Tras;
|
||||
}
|
||||
else
|
||||
{
|
||||
DirecaoAtual = Direcao.Frente;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (Dispositivo.Dispositivo == T_Code.Dir)
|
||||
|
|
@ -409,4 +419,19 @@ namespace AgroBase.Models
|
|||
public bool Conectado { get; set; }
|
||||
}
|
||||
|
||||
public class OperacaoSensoriamentoModel
|
||||
{
|
||||
public int ErvasNoRadar { get; set; } = 0;
|
||||
public double VelocidadeMedia { get; set; } = 0;
|
||||
public double HerbicidaConsumido { get; set; } = 0;
|
||||
public double HerbicidaPorErva { get; set; } = 0;
|
||||
public double BateriaConsumida { get; set; } = 0;
|
||||
public int ErvasIdentificadas { get; set; } = 0;
|
||||
public List<int> AtuacoesPorBico { get; set; } = new List<int>();
|
||||
public double DistanciaPercorrida { get; set; } = 0;
|
||||
public double ProgressoPercurso { get; set; } = 0;
|
||||
public double DistanciaEsquerda { get; set; } = 0;
|
||||
public double DistanciaDireita { get; set; } = 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,11 +37,11 @@ namespace AgroBase.Models
|
|||
|
||||
public static class VariaveisPortas
|
||||
{
|
||||
public static string GPS { get; } = "6512";
|
||||
public static string CameraSolo { get; } = "6513";
|
||||
public static string CameraCaminho { get; } = "6514";
|
||||
public static string SocketSolo { get; } = "6360";
|
||||
public static string SocketCaminho { get; } = "6365";
|
||||
public static int GPS { get; } = 6512;
|
||||
public static int CameraSolo { get; } = 6522;
|
||||
public static int CameraCaminho { get; } = 6544;
|
||||
public static int SocketSolo { get; } = 6568;
|
||||
public static int SocketCaminho { get; } = 6588;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -201,6 +201,7 @@ namespace AgroBase.Comum
|
|||
case T_Code.Sen:
|
||||
Dados = CarregarParametros(SensoriamentoModel.CarregarParametrosIniciais());
|
||||
frmConfig = new frmSenConfig();
|
||||
((frmSenConfig)frmConfig).Dispositivo = T_Code.Sen;
|
||||
break;
|
||||
case T_Code.Atu:
|
||||
Dados = CarregarParametros(AtuadorModel.CarregarParametrosIniciais());
|
||||
|
|
@ -356,12 +357,18 @@ namespace AgroBase.Comum
|
|||
else if (Dados is AtuadorModel atuModel && Dispositivo == T_Code.Atu)
|
||||
{
|
||||
clbDispositivos.Items.Clear();
|
||||
var Bicos = atuModel.BicosPulverizadores;
|
||||
var Bicos = atuModel.BicosPulverizadores.ToList();
|
||||
foreach (var Bico in Bicos)
|
||||
{
|
||||
clbDispositivos.Items.Add(Bico.ID.ToString());
|
||||
clbDispositivos.SetItemChecked(clbDispositivos.Items.Count - 1, Bico.Comandar);
|
||||
}
|
||||
var Sensores = atuModel.Sensores.ToList();
|
||||
foreach (var Sensor in Sensores)
|
||||
{
|
||||
clbDispositivos.Items.Add(Sensor.ID.ToString());
|
||||
clbDispositivos.SetItemChecked(clbDispositivos.Items.Count - 1, Sensor.Aferir);
|
||||
}
|
||||
}
|
||||
clbDispositivos.ItemCheck -= clbDispositivos_ItemCheck;
|
||||
clbDispositivos.ItemCheck += clbDispositivos_ItemCheck;
|
||||
|
|
@ -558,9 +565,17 @@ namespace AgroBase.Comum
|
|||
if (Dados is AtuadorModel atuModel)
|
||||
{
|
||||
atuModel.BicosPulverizadores.ForEach(x => x.Comandar = false);
|
||||
atuModel.Sensores.ForEach(x => x.Aferir = false);
|
||||
foreach (var Item in ((CheckedListBox)sender).CheckedItems)
|
||||
{
|
||||
atuModel.BicosPulverizadores.First(x => x.ID == Item.ToString()).Comandar = true;
|
||||
if (atuModel.BicosPulverizadores.Any(x => x.ID == Item.ToString()))
|
||||
{
|
||||
atuModel.BicosPulverizadores.FirstOrDefault(x => x.ID == Item.ToString()).Comandar = true;
|
||||
}
|
||||
else if (atuModel.Sensores.Any(x => x.ID == Item.ToString()))
|
||||
{
|
||||
atuModel.Sensores.FirstOrDefault(x => x.ID == Item.ToString()).Aferir = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
using AgroBase.Models;
|
||||
using CefSharp.DevTools.IO;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AgroBase.Services
|
||||
|
|
@ -69,9 +65,11 @@ namespace AgroBase.Services
|
|||
{
|
||||
NomeArquivoMapa = nomeArquivoMapa;
|
||||
|
||||
pythonProcess = PythonService.RunScript(PythonService.ScriptMapGPS, new string[] { VariaveisPortas.GPS, PathUpdateMarker });
|
||||
//pythonProcess = PythonService.RunScript(PythonService.ScriptMapGPS, new string[] { VariaveisPortas.GPS.ToString(), PathUpdateMarker });
|
||||
|
||||
MapaUrl = new Uri("http://localhost:" + VariaveisPortas.GPS + "/").AbsoluteUri;
|
||||
//MapaUrl = new Uri("http://localhost:" + VariaveisPortas.GPS + "/").AbsoluteUri;
|
||||
|
||||
MapaUrl = new Uri(Variaveis.CaminhoSistema + "Utils\\offline_maps\\index.html").AbsoluteUri;
|
||||
}
|
||||
|
||||
public async void AtualizarPosicaoMapaGPS(double lat, double lon)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
CACHE MANIFEST
|
||||
|
||||
NETWORK:
|
||||
*
|
||||
|
||||
CACHE:
|
||||
index.html
|
||||
style.css
|
||||
|
||||
script.js
|
||||
gmapapi.js
|
||||
gmapcache/main.js
|
||||
gmapcache/components.js
|
||||
gmapcache/empty.js
|
||||
|
||||
gmapcache/gstatic/arrow-down.png
|
||||
gmapcache/gstatic/cb/mod_cb_scout/cb_scout_sprite_api_003.png
|
||||
gmapcache/gstatic/cb/target_locking.gif
|
||||
gmapcache/gstatic/google_white.png
|
||||
gmapcache/gstatic/iw3.png
|
||||
gmapcache/gstatic/iws3.png
|
||||
gmapcache/gstatic/mapcontrols3d7.png
|
||||
gmapcache/gstatic/markers2/marker_sprite.png
|
||||
gmapcache/gstatic/mv/imgs8.png
|
||||
gmapcache/gstatic/rotate2.png
|
||||
gmapcache/gstatic/szc4.png
|
||||
gmapcache/gstatic/transparent.png
|
||||
|
||||
gmapcache/gstatic/openhand_8_8.cur
|
||||
gmapcache/gstatic/closedhand_8_8.cur
|
||||
|
||||
FALLBACK:
|
||||
gmapcache/googleapis/maps/api/js/AuthenticationService.Authenticate gmapcache/empty.js
|
||||
gmapcache/googleapis/maps/api/js/QuotaService.RecordEvent gmapcache/empty.js
|
||||
gmapcache/googleapis/maps/api/js/StaticMapService.GetMapImage gmapcache/empty.js
|
||||
gmapcache/googleapis/maps/api/js/ViewportInfoService.GetViewportInfo gmapcache/empty.js
|
||||
gmapcache/googleapis/maps/gen_204 gmapcache/empty.js
|
||||
gmapcache/googleapis/mapslt/ft gmapcache/empty.js
|
||||
|
|
@ -0,0 +1,224 @@
|
|||
window.google = window.google || {};
|
||||
google.maps = google.maps || {};
|
||||
(function () {
|
||||
|
||||
function getScript(src) {
|
||||
document.write('<' + 'script src="' + src + '"' + ' type="text/javascript"><' + '/script>');
|
||||
}
|
||||
|
||||
var modules = google.maps.modules = {};
|
||||
google.maps.__gjsload__ = function (name, text) {
|
||||
modules[name] = text;
|
||||
};
|
||||
|
||||
google.maps.Load = function (apiLoad) {
|
||||
delete google.maps.Load;
|
||||
apiLoad([null, [
|
||||
[
|
||||
["http://mt0.googleapis.com/vt?lyrs=m@174000000\u0026src=api\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"m@174000000"
|
||||
],
|
||||
[
|
||||
["http://khm0.googleapis.com/kh?v=107\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
1,
|
||||
"107"
|
||||
],
|
||||
[
|
||||
["http://mt0.googleapis.com/vt?lyrs=h@174000000\u0026src=api\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
"imgtp=png32\u0026",
|
||||
null,
|
||||
"h@174000000"
|
||||
],
|
||||
[
|
||||
["http://mt0.googleapis.com/vt?lyrs=t@128,r@174000000\u0026src=api\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"t@128,r@174000000"
|
||||
],
|
||||
null,
|
||||
[
|
||||
[null, 0, 7, 7, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1293600000]
|
||||
],
|
||||
[
|
||||
[366500000, 1297000000],
|
||||
[386200000, 1320034790]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],
|
||||
[null, 0, 8, 8, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1279600000]
|
||||
],
|
||||
[
|
||||
[345000000, 1279600000],
|
||||
[386200000, 1286700000]
|
||||
],
|
||||
[
|
||||
[354690000, 1286700000],
|
||||
[386200000, 1320035000]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],
|
||||
[null, 0, 9, 9, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1279600000]
|
||||
],
|
||||
[
|
||||
[340000000, 1279600000],
|
||||
[386200000, 1286700000]
|
||||
],
|
||||
[
|
||||
[348900000, 1286700000],
|
||||
[386200000, 1302000000]
|
||||
],
|
||||
[
|
||||
[368300000, 1302000000],
|
||||
[386200000, 1320035000]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],
|
||||
[null, 0, 10, 19, [
|
||||
[
|
||||
[329890840, 1246055600],
|
||||
[386930130, 1284960940]
|
||||
],
|
||||
[
|
||||
[344646740, 1284960940],
|
||||
[386930130, 1288476560]
|
||||
],
|
||||
[
|
||||
[350277470, 1288476560],
|
||||
[386930130, 1310531620]
|
||||
],
|
||||
[
|
||||
[370277730, 1310531620],
|
||||
[386930130, 1320034790]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],
|
||||
[null, 3, 7, 7, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1293600000]
|
||||
],
|
||||
[
|
||||
[366500000, 1297000000],
|
||||
[386200000, 1320034790]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],
|
||||
[null, 3, 8, 8, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1279600000]
|
||||
],
|
||||
[
|
||||
[345000000, 1279600000],
|
||||
[386200000, 1286700000]
|
||||
],
|
||||
[
|
||||
[354690000, 1286700000],
|
||||
[386200000, 1320035000]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],
|
||||
[null, 3, 9, 9, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1279600000]
|
||||
],
|
||||
[
|
||||
[340000000, 1279600000],
|
||||
[386200000, 1286700000]
|
||||
],
|
||||
[
|
||||
[348900000, 1286700000],
|
||||
[386200000, 1302000000]
|
||||
],
|
||||
[
|
||||
[368300000, 1302000000],
|
||||
[386200000, 1320035000]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],
|
||||
[null, 3, 10, null, [
|
||||
[
|
||||
[329890840, 1246055600],
|
||||
[386930130, 1284960940]
|
||||
],
|
||||
[
|
||||
[344646740, 1284960940],
|
||||
[386930130, 1288476560]
|
||||
],
|
||||
[
|
||||
[350277470, 1288476560],
|
||||
[386930130, 1310531620]
|
||||
],
|
||||
[
|
||||
[370277730, 1310531620],
|
||||
[386930130, 1320034790]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]]
|
||||
],
|
||||
[
|
||||
["http://cbk0.googleapis.com/cbk?"]
|
||||
],
|
||||
[
|
||||
["http://khmdb0.googleapis.com/kh?v=53\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"53"
|
||||
],
|
||||
[
|
||||
[
|
||||
"http://mt0.googleapis.com/mapslt?hl=en-US\u0026"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"gmapcache/googleapis/mapslt/ft?hl=en-US\u0026"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"http://mt0.googleapis.com/vt?hl=en-US\u0026"
|
||||
]
|
||||
]
|
||||
], [
|
||||
"en-US",
|
||||
"US",
|
||||
null,
|
||||
0,
|
||||
null,
|
||||
null,
|
||||
"gmapcache/gstatic/",
|
||||
"http://csi.gstatic.com",
|
||||
"https://maps.googleapis.com",
|
||||
"gmapcache/googleapis"
|
||||
], [
|
||||
"http://maps.gstatic.com/intl/en_us/mapfiles/api-3/8/5",
|
||||
"3.8.5"
|
||||
], [275480768],
|
||||
1.0, null, null, null, null, 0, "", null, null, 0,
|
||||
"http://khm.googleapis.com/mz?v=107\u0026",
|
||||
null,
|
||||
"https://earthbuilder.google.com",
|
||||
"https://earthbuilder.googleapis.com"
|
||||
], loadScriptTime);
|
||||
};
|
||||
|
||||
var loadScriptTime = (new Date).getTime();
|
||||
getScript("gmapcache/main.js");
|
||||
getScript("gmapcache/components.js");
|
||||
})();
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
window.google = window.google || {};
|
||||
google.maps = google.maps || {};
|
||||
(function() {
|
||||
|
||||
function getScript(src) {
|
||||
document.write('<' + 'script src="' + src + '"' +
|
||||
' type="text/javascript"><' + '/script>');
|
||||
}
|
||||
|
||||
var modules = google.maps.modules = {};
|
||||
google.maps.__gjsload__ = function(name, text) {
|
||||
modules[name] = text;
|
||||
};
|
||||
|
||||
google.maps.Load = function(apiLoad) {
|
||||
delete google.maps.Load;
|
||||
apiLoad([null,[[["http://mt0.googleapis.com/vt?lyrs=m@174000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=m@174000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"m@174000000"],[["http://khm0.googleapis.com/kh?v=107\u0026hl=en-US\u0026","http://khm1.googleapis.com/kh?v=107\u0026hl=en-US\u0026"],null,null,null,1,"107"],[["http://mt0.googleapis.com/vt?lyrs=h@174000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=h@174000000\u0026src=api\u0026hl=en-US\u0026"],null,null,"imgtp=png32\u0026",null,"h@174000000"],[["http://mt0.googleapis.com/vt?lyrs=t@128,r@174000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=t@128,r@174000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"t@128,r@174000000"],null,[[null,0,7,7,[[[330000000,1246050000],[386200000,1293600000]],[[366500000,1297000000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,0,8,8,[[[330000000,1246050000],[386200000,1279600000]],[[345000000,1279600000],[386200000,1286700000]],[[354690000,1286700000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,0,9,9,[[[330000000,1246050000],[386200000,1279600000]],[[340000000,1279600000],[386200000,1286700000]],[[348900000,1286700000],[386200000,1302000000]],[[368300000,1302000000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,0,10,19,[[[329890840,1246055600],[386930130,1284960940]],[[344646740,1284960940],[386930130,1288476560]],[[350277470,1288476560],[386930130,1310531620]],[[370277730,1310531620],[386930130,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,3,7,7,[[[330000000,1246050000],[386200000,1293600000]],[[366500000,1297000000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,8,8,[[[330000000,1246050000],[386200000,1279600000]],[[345000000,1279600000],[386200000,1286700000]],[[354690000,1286700000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,9,9,[[[330000000,1246050000],[386200000,1279600000]],[[340000000,1279600000],[386200000,1286700000]],[[348900000,1286700000],[386200000,1302000000]],[[368300000,1302000000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,10,null,[[[329890840,1246055600],[386930130,1284960940]],[[344646740,1284960940],[386930130,1288476560]],[[350277470,1288476560],[386930130,1310531620]],[[370277730,1310531620],[386930130,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]]],[["http://cbk0.googleapis.com/cbk?","http://cbk1.googleapis.com/cbk?"]],[["http://khmdb0.googleapis.com/kh?v=53\u0026hl=en-US\u0026","http://khmdb1.googleapis.com/kh?v=53\u0026hl=en-US\u0026"],null,null,null,null,"53"],[["http://mt0.googleapis.com/mapslt?hl=en-US\u0026","http://mt1.googleapis.com/mapslt?hl=en-US\u0026"]],[["http://mt0.googleapis.com/mapslt/ft?hl=en-US\u0026","http://mt1.googleapis.com/mapslt/ft?hl=en-US\u0026"]],[["http://mt0.googleapis.com/vt?hl=en-US\u0026","http://mt1.googleapis.com/vt?hl=en-US\u0026"]]],["en-US","US",null,0,null,null,"http://maps.gstatic.com/mapfiles/","http://csi.gstatic.com","https://maps.googleapis.com","http://maps.googleapis.com"],["http://maps.gstatic.com/intl/en_us/mapfiles/api-3/8/5","3.8.5"],[275480768],1.0,null,null,null,null,0,"",null,null,0,"http://khm.googleapis.com/mz?v=107\u0026",null,"https://earthbuilder.google.com","https://earthbuilder.googleapis.com"], loadScriptTime);
|
||||
};
|
||||
var loadScriptTime = (new Date).getTime();
|
||||
getScript("http://maps.gstatic.com/intl/en_us/mapfiles/api-3/8/5/main.js");
|
||||
})();
|
||||
|
After Width: | Height: | Size: 87 B |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 326 B |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 326 B |
|
After Width: | Height: | Size: 620 B |
|
After Width: | Height: | Size: 574 B |
|
After Width: | Height: | Size: 95 B |
|
|
@ -0,0 +1,44 @@
|
|||
(function(){function aa(a){throw a;}var ca=void 0,i=!0,j=null,k=!1,da=encodeURIComponent,m=window,ea=Object,fa=Infinity,n=document,o=Math,ga=Array,ha=screen,ia=navigator,ja=Error,ka=String,la=RegExp;function ma(a,b){return a.onload=b}function na(a,b){return a.center_changed=b}function oa(a,b){return a.isEmpty=b}function pa(a,b){return a.version=b}function ra(a,b){return a.width=b}function sa(a,b){return a.extend=b}function ta(a,b){return a.onerror=b}function ua(a,b){return a.map_changed=b}
|
||||
function va(a,b){return a.visible_changed=b}function wa(a,b){return a.minZoom=b}function xa(a,b){return a.remove=b}function ya(a,b){return a.equals=b}function za(a,b){return a.setZoom=b}function Aa(a,b){return a.tileSize=b}function Ca(a,b){return a.getDetails=b}function Da(a,b){return a.getBounds=b}function Ea(a,b){return a.changed=b}function Fa(a,b){return a.clear=b}function Ga(a,b){return a.name=b}function Ha(a,b){return a.overflow=b}function Ia(a,b){return a.getTile=b}
|
||||
function Ja(a,b){return a.toString=b}function Ka(a,b){return a.length=b}function La(a,b){return a.getZoom=b}function Ma(a,b){return a.size=b}function Na(a,b){return a.search=b}function Oa(a,b){return a.releaseTile=b}function Pa(a,b){return a.maxZoom=b}function Qa(a,b){return a.getUrl=b}function Ra(a,b){return a.contains=b}function Sa(a,b){return a.height=b}function Ta(a,b){return a.zoom=b}
|
||||
var Ua="appendChild",p="push",Va="isEmpty",Xa="deviceXDPI",r="trigger",u="bindTo",Ya="shift",Za="exec",$a="clearTimeout",ab="fromLatLngToPoint",v="width",w="round",bb="slice",cb="replace",db="nodeType",eb="ceil",fb="floor",gb="getVisible",hb="offsetWidth",ib="concat",jb="removeListener",kb="extend",lb="charAt",mb="unbind",nb="preventDefault",ob="getNorthEast",pb="minZoom",rb="indexOf",sb="fromCharCode",tb="remove",ub="equals",vb="createElement",wb="atan2",xb="firstChild",yb="forEach",zb="setZoom",
|
||||
Ab="sqrt",x="setAttribute",Bb="setValues",Cb="tileSize",Eb="toUrlValue",Fb="addListenerOnce",Gb="removeAt",Hb="changed",y="type",Ib="getTileUrl",Jb="clearInstanceListeners",A="bind",Kb="name",Lb="getTime",Mb="getElementsByTagName",Nb="substr",Ob="getTile",Pb="notify",Qb="toString",Rb="setVisible",B="length",Sb="onRemove",C="prototype",Tb="setTimeout",Vb="intersects",Wb="document",Xb="split",Yb="opacity",E="forward",Zb="getLength",$b="getSouthWest",ac="getAt",bc="message",cc="hasOwnProperty",F="style",
|
||||
G="addListener",dc="removeChild",ec="insertAt",fc="target",gc="releaseTile",hc="call",ic="getMap",jc="atan",kc="random",lc="returnValue",mc="charCodeAt",nc="getArray",oc="href",pc="maxZoom",qc="console",rc="addDomListener",sc="setMap",tc="contains",uc="apply",vc="setAt",wc="tagName",xc="parentNode",yc="asin",zc="label",H="height",Ac="splice",Bc="offsetHeight",Cc="join",Dc="toLowerCase",Ec="ERROR",Fc="INVALID_REQUEST",Hc="MAX_DIMENSIONS_EXCEEDED",Ic="MAX_ELEMENTS_EXCEEDED",Jc="MAX_WAYPOINTS_EXCEEDED",
|
||||
Kc="OK",Lc="OVER_QUERY_LIMIT",Mc="REQUEST_DENIED",Nc="UNKNOWN_ERROR",Oc="ZERO_RESULTS";function Pc(){return function(){}}function Qc(a){return function(){return this[a]}}var I,Rc=[];function Sc(a){return function(){return Rc[a][uc](this,arguments)}}var Tc={ROADMAP:"roadmap",SATELLITE:"satellite",HYBRID:"hybrid",TERRAIN:"terrain"};var Uc={TOP_LEFT:1,TOP_CENTER:2,TOP:2,TOP_RIGHT:3,LEFT_CENTER:4,LEFT_TOP:5,LEFT:5,LEFT_BOTTOM:6,RIGHT_TOP:7,RIGHT:7,RIGHT_CENTER:8,RIGHT_BOTTOM:9,BOTTOM_LEFT:10,BOTTOM_CENTER:11,BOTTOM:11,BOTTOM_RIGHT:12};var Vc=this;o[fb](2147483648*o[kc]())[Qb](36);function Wc(a){var b=a;if(a instanceof ga)b=[],Xc(b,a);else if(a instanceof ea){var c=b={},d;for(d in c)c[cc](d)&&delete c[d];for(var e in a)a[cc](e)&&(c[e]=Wc(a[e]))}return b}function Xc(a,b){Ka(a,b[B]);for(var c=0;c<b[B];++c)a[c]=Wc(b[c])}function Yc(a,b){a[b]||(a[b]=[]);return a[b]}function Zc(a,b){return a[b]?a[b][B]:0};var $c=la("'","g");function ad(a,b){var c=[];bd(a,b,c);return c[Cc]("&")[cb]($c,"%27")}function bd(a,b,c){for(var d=1;d<b.Y[B];++d){var e=b.Y[d],f=a[d+b.$];if(f!=j)if(3==e[zc])for(var g=0;g<f[B];++g)cd(f[g],d,e,c);else cd(f,d,e,c)}}function cd(a,b,c,d){if("m"==c[y]){var e=d[B];bd(a,c.V,d);d[Ac](e,0,[b,"m",d[B]-e][Cc](""))}else"b"==c[y]&&(a=a?"1":"0"),d[p]([b,c[y],da(a)][Cc](""))};function dd(a){this.l=a||[]}function ed(a){this.l=a||[]}var fd=new dd,gd=new dd;var hd={METRIC:0,IMPERIAL:1},id={DRIVING:"DRIVING",WALKING:"WALKING",BICYCLING:"BICYCLING"};var jd=o.abs,kd=o[eb],ld=o[fb],md=o.max,nd=o.min,od=o[w],pd="number",qd="object",rd="string",sd="undefined";function J(a){return a?a[B]:0}function td(){return i}function ud(a,b){for(var c=0,d=J(a);c<d;++c)if(a[c]===b)return i;return k}function vd(a,b){wd(b,function(c){a[c]=b[c]})}function xd(a){for(var b in a)return k;return i}function L(a,b){function c(){}c.prototype=b[C];a.prototype=new c}function yd(a,b,c){b!=j&&(a=o.max(a,b));c!=j&&(a=o.min(a,c));return a}
|
||||
function zd(a,b,c){return((a-b)%(c-b)+(c-b))%(c-b)+b}function Ad(a,b){return 1.0E-9>=o.abs(a-b)}function M(a){return a*(o.PI/180)}function Bd(a){return a/(o.PI/180)}function Cd(a,b){for(var c=Dd(ca,J(b)),d=Dd(ca,0);d<c;++d)a[p](b[d])}function Ed(a){return typeof a!=sd}function N(a){return typeof a==pd}function Fd(a){return typeof a==qd}function Hd(){}function Dd(a,b){return a==j?b:a}function Id(a){a[cc]("_instance")||(a._instance=new a);return a._instance}function Jd(a){return typeof a==rd}
|
||||
function O(a,b){if(a)for(var c=0,d=J(a);c<d;++c)b(a[c],c)}function wd(a,b){for(var c in a)b(c,a[c])}function P(a,b,c){if(2<arguments[B]){var d=Kd(arguments,2);return function(){return b[uc](a||this,0<arguments[B]?d[ib](Ld(arguments)):d)}}return function(){return b[uc](a||this,arguments)}}function Md(a,b,c){var d=Kd(arguments,2);return function(){return b[uc](a,d)}}function Kd(a,b,c){return Function[C][hc][uc](ga[C][bb],arguments)}function Ld(a){return ga[C][bb][hc](a,0)}
|
||||
function Nd(){return(new Date)[Lb]()}function Od(a,b){if(a)return function(){--a||b()};b();return Hd}function Pd(a){return a!=j&&typeof a==qd&&typeof a[B]==pd}function Qd(a){var b="";O(arguments,function(a){J(a)&&"/"==a[0]?b=a:(b&&"/"!=b[J(b)-1]&&(b+="/"),b+=a)});return b}function Rd(a){a=a||m.event;Sd(a);Td(a);return k}function Sd(a){a.cancelBubble=i;a.stopPropagation&&a.stopPropagation()}function Td(a){a.returnValue=k;a[nb]&&a[nb]()}
|
||||
function Ud(a){a.returnValue=a[lc]?"true":"";typeof a[lc]!=rd?a.handled=i:a.returnValue="true"}function Vd(a){return function(){var b=this,c=arguments;Wd(function(){a[uc](b,c)})}}function Wd(a){return m[Tb](a,0)}function Xd(a,b){var c=a[Mb]("head")[0],d=a[vb]("script");d[x]("type","text/javascript");d[x]("charset","UTF-8");d[x]("src",b);c[Ua](d)};function Q(a,b,c){a-=0;b-=0;c||(a=yd(a,-90,90),b=zd(b,-180,180));this.Ta=a;this.Ua=b}I=Q[C];Ja(I,function(){return"("+this.lat()+", "+this.lng()+")"});ya(I,function(a){return!a?k:Ad(this.lat(),a.lat())&&Ad(this.lng(),a.lng())});I.lat=Qc("Ta");I.lng=Qc("Ua");function Yd(a,b){var c=o.pow(10,b);return o[w](a*c)/c}I.toUrlValue=function(a){a=Ed(a)?a:6;return Yd(this.lat(),a)+","+Yd(this.lng(),a)};function Zd(a,b){-180==a&&180!=b&&(a=180);-180==b&&180!=a&&(b=180);this.b=a;this.e=b}function $d(a){return a.b>a.e}I=Zd[C];oa(I,function(){return 360==this.b-this.e});I.intersects=function(a){var b=this.b,c=this.e;return this[Va]()||a[Va]()?k:$d(this)?$d(a)||a.b<=this.e||a.e>=b:$d(a)?a.b<=c||a.e>=b:a.b<=c&&a.e>=b};Ra(I,function(a){-180==a&&(a=180);var b=this.b,c=this.e;return $d(this)?(a>=b||a<=c)&&!this[Va]():a>=b&&a<=c});
|
||||
sa(I,function(a){this[tc](a)||(this[Va]()?this.b=this.e=a:ae(a,this.b)<ae(this.e,a)?this.b=a:this.e=a)});ya(I,function(a){return 1.0E-9>=o.abs(a.b-this.b)%360+o.abs(be(a)-be(this))});function ae(a,b){var c=b-a;return 0<=c?c:b+180-(a-180)}function be(a){return a[Va]()?0:$d(a)?360-(a.b-a.e):a.e-a.b}I.ob=function(){var a=(this.b+this.e)/2;$d(this)&&(a=zd(a+180,-180,180));return a};function ce(a,b){this.b=a;this.e=b}I=ce[C];oa(I,function(){return this.b>this.e});
|
||||
I.intersects=function(a){var b=this.b,c=this.e;return b<=a.b?a.b<=c&&a.b<=a.e:b<=a.e&&b<=c};Ra(I,function(a){return a>=this.b&&a<=this.e});sa(I,function(a){this[Va]()?this.e=this.b=a:a<this.b?this.b=a:a>this.e&&(this.e=a)});ya(I,function(a){return this[Va]()?a[Va]():1.0E-9>=o.abs(a.b-this.b)+o.abs(this.e-a.e)});I.ob=function(){return(this.e+this.b)/2};function de(a,b){a&&!b&&(b=a);if(a){var c=yd(a.lat(),-90,90),d=yd(b.lat(),-90,90);this.aa=new ce(c,d);c=a.lng();d=b.lng();360<=d-c?this.ba=new Zd(-180,180):(c=zd(c,-180,180),d=zd(d,-180,180),this.ba=new Zd(c,d))}else this.aa=new ce(1,-1),this.ba=new Zd(180,-180)}I=de[C];I.getCenter=function(){return new Q(this.aa.ob(),this.ba.ob())};Ja(I,function(){return"("+this[$b]()+", "+this[ob]()+")"});I.toUrlValue=function(a){var b=this[$b](),c=this[ob]();return[b[Eb](a),c[Eb](a)][Cc]()};
|
||||
ya(I,function(a){return!a?k:this.aa[ub](a.aa)&&this.ba[ub](a.ba)});Ra(I,function(a){return this.aa[tc](a.lat())&&this.ba[tc](a.lng())});I.intersects=function(a){return this.aa[Vb](a.aa)&&this.ba[Vb](a.ba)};I.Va=Sc(4);sa(I,function(a){this.aa[kb](a.lat());this.ba[kb](a.lng());return this});I.union=function(a){this[kb](a[$b]());this[kb](a[ob]());return this};I.getSouthWest=function(){return new Q(this.aa.b,this.ba.b,i)};I.getNorthEast=function(){return new Q(this.aa.e,this.ba.e,i)};
|
||||
I.toSpan=function(){return new Q(this.aa[Va]()?0:this.aa.e-this.aa.b,be(this.ba),i)};oa(I,function(){return this.aa[Va]()||this.ba[Va]()});function ee(a,b){return function(c){if(!b)for(var d in c)a[d]||aa(ja("Unknown property <"+(d+">")));var e;for(d in a)try{var f=c[d];if(!a[d](f)){e="Invalid value for property <"+(d+(">: "+f));break}}catch(g){e="Error in property <"+(d+(">: ("+(g[bc]+")")));break}e&&aa(ja(e));return i}}function fe(a){return a==j}function ge(a){try{return!!a.cloneNode}catch(b){return k}}function he(a,b){var c=Ed(b)?b:i;return function(b){return b==j&&c||b instanceof a}}
|
||||
function ie(a){return function(b){for(var c in a)if(a[c]==b)return i;return k}}function je(a){return function(b){Pd(b)||aa(ja("Value is not an array"));var c;O(b,function(b,e){try{a(b)||(c="Invalid value at position "+(e+(": "+b)))}catch(f){c="Error in element at position "+(e+(": ("+(f[bc]+")")))}});c&&aa(ja(c));return i}}
|
||||
function ke(a){var b=arguments,c=b[B];return function(){for(var a=[],e=0;e<c;++e)try{if(b[e][uc](this,arguments))return i}catch(f){a[p](f[bc])}J(a)&&aa(ja("Invalid value: "+(arguments[0]+(" ("+(a[Cc](" | ")+")")))));return k}}var le=ke(N,fe),me=ke(Jd,fe),ne=ke(function(a){return a===!!a},fe),oe=ke(he(Q,k),Jd),pe=je(oe);var qe=ee({routes:je(ee({},i))},i);var re="geometry",se="drawing_impl",te="geocoder",ue="infowindow",ve="layers",we="map",xe="marker",ye="maxzoom",ze="onion",Ae="places_impl",Be="poly",Ce="search_impl",De="stats",Ee="usage";var Fe={main:[],common:["main"],util:["common"],adsense:["main"],adsense_impl:["util"],controls:["util"]};Fe.directions=["util",re];Fe.distance_matrix=["util"];Fe.drawing=["main"];Fe[se]=["controls"];Fe.visualization=["main"];Fe.visualization_impl=["util"];Fe.earthbuilder_impl=[ze];Fe.elevation=["util",re];Fe.buzz=["main"];Fe[te]=["util"];Fe[re]=["main"];Fe[ue]=["util"];Fe.kml=[ze,"util",we];Fe[ve]=[we];Fe[we]=["common"];Fe[xe]=["util"];Fe[ye]=["util"];Fe[ze]=["util",we];Fe.overlay=["common"];
|
||||
Fe.panoramio=["main"];Fe.places=["main"];Fe[Ae]=["controls"];Fe[Be]=["util",we];Na(Fe,["main"]);Fe[Ce]=[ze];Fe[De]=["util"];Fe.streetview=["util",re];Fe[Ee]=["util"];Fe.weather=["main"];Fe.weather_impl=[ze];function Ge(a,b){this.e=a;this.n={};this.d=[];this.b=j;this.f=(this.j=!!b.match(/^https?:\/\/[^:\/]*\/intl/))?b[cb]("/intl","/cat_js/intl"):b}function He(a,b){a.n[b]||(a.j?(a.d[p](b),a.b||(a.b=m[Tb](P(a,a.A),0))):Xd(a.e,Qd(a.f,b)+".js"))}Ge[C].A=function(){var a=Qd(this.f,"%7B"+this.d[Cc](",")+"%7D.js");Ka(this.d,0);m[$a](this.b);this.b=j;Xd(this.e,a)};var Ie="click",Je="contextmenu",Ke="forceredraw",Le="staticmaploaded",Me="panby",Ne="panto",Oe="insert",Pe="remove";var R={};R.df=function(){return this}().navigator&&-1!=ia.userAgent[Dc]()[rb]("msie");R.Vc={};R.addListener=function(a,b,c){return new Qe(a,b,c,0)};R.qe=function(a,b){var c=a.__e3_,c=c&&c[b];return!!c&&!xd(c)};R.removeListener=function(a){a[tb]()};R.clearListeners=function(a,b){wd(Re(a,b),function(a,b){b&&b[tb]()})};R.clearInstanceListeners=function(a){wd(Re(a),function(a,c){c&&c[tb]()})};function Se(a,b){a.__e3_||(a.__e3_={});var c=a.__e3_;c[b]||(c[b]={});return c[b]}
|
||||
function Re(a,b){var c,d=a.__e3_||{};if(b)c=d[b]||{};else{c={};for(var e in d)vd(c,d[e])}return c}R.trigger=function(a,b,c){if(R.qe(a,b)){var d=Kd(arguments,2),e=Re(a,b),f;for(f in e){var g=e[f];g&&g.d[uc](g.b,d)}}};R.addDomListener=function(a,b,c,d){if(a.addEventListener){var e=d?4:1;a.addEventListener(b,c,d);c=new Qe(a,b,c,e)}else a.attachEvent?(c=new Qe(a,b,c,2),a.attachEvent("on"+b,Te(c))):(a["on"+b]=c,c=new Qe(a,b,c,3));return c};
|
||||
R.addDomListenerOnce=function(a,b,c,d){var e=R[rc](a,b,function(){e[tb]();return c[uc](this,arguments)},d);return e};R.R=function(a,b,c,d){c=Ue(c,d);return R[rc](a,b,c)};function Ue(a,b){return function(c){return b[hc](a,c,this)}}R.bind=function(a,b,c,d){return R[G](a,b,P(c,d))};R.addListenerOnce=function(a,b,c){var d=R[G](a,b,function(){d[tb]();return c[uc](this,arguments)});return d};R.forward=function(a,b,c){return R[G](a,b,Ve(b,c))};R.va=function(a,b,c,d){return R[rc](a,b,Ve(b,c,!d))};
|
||||
R.wg=function(){var a=R.Vc,b;for(b in a)a[b][tb]();R.Vc={};(a=Vc.CollectGarbage)&&a()};function Ve(a,b,c){return function(d){var e=[b,a];Cd(e,arguments);R[r][uc](this,e);c&&Ud[uc](j,arguments)}}function Qe(a,b,c,d){this.b=a;this.e=b;this.d=c;this.f=j;this.j=d;this.id=++We;Se(a,b)[this.id]=this;R.df&&"tagName"in a&&(R.Vc[this.id]=this)}var We=0;
|
||||
function Te(a){return a.f=function(b){b||(b=m.event);if(b&&!b[fc])try{b.target=b.srcElement}catch(c){}var d=a.d[uc](a.b,[b]);return b&&Ie==b[y]&&(b=b.srcElement)&&"A"==b[wc]&&"javascript:void(0)"==b[oc]?k:d}}
|
||||
xa(Qe[C],function(){if(this.b){switch(this.j){case 1:this.b.removeEventListener(this.e,this.d,k);break;case 4:this.b.removeEventListener(this.e,this.d,i);break;case 2:this.b.detachEvent("on"+this.e,this.f);break;case 3:this.b["on"+this.e]=j}delete Se(this.b,this.e)[this.id];this.f=this.d=this.b=j;delete R.Vc[this.id]}});function Xe(a,b){this.e=a;this.b=b;this.d=Ye(b)}function Ye(a){var b={};wd(a,function(a,d){O(d,function(d){b[d]||(b[d]=[]);b[d][p](a)})});return b}function Ze(){this.b=[]}Ze[C].Ab=function(a,b){var c=new Ge(n,a),d=this.e=new Xe(c,b);O(this.b,function(a){a(d)});Ka(this.b,0)};Ze[C].Vd=function(a){this.e?a(this.e):this.b[p](a)};function $e(){this.f={};this.b={};this.j={};this.e={};this.d=new Ze}$e[C].Ab=function(a,b){this.d.Ab(a,b)};
|
||||
function af(a,b){a.f[b]||(a.f[b]=i,a.d.Vd(function(c){O(c.b[b],function(b){a.e[b]||af(a,b)});He(c.e,b)}))}function bf(a,b,c){a.e[b]=c;O(a.b[b],function(a){a(c)});delete a.b[b]}$e[C].Dc=function(a,b){var c=this,d=c.j;c.d.Vd(function(e){var f=e.b[a]||[],g=e.d[a]||[],h=d[a]=Od(f[B],function(){delete d[a];cf[f[0]](b);O(g,function(a){d[a]&&d[a]()})});O(f,function(a){c.e[a]&&h()})})};function df(a,b){Id($e).Dc(a,b)}var cf={},ef=Vc.google.maps;ef.__gjsload__=df;wd(ef.modules,df);delete ef.modules;function S(a,b,c){var d=Id($e);if(d.e[a])b(d.e[a]);else{var e=d.b;e[a]||(e[a]=[]);e[a][p](b);c||af(d,a)}}function ff(a,b){bf(Id($e),a,b)}function gf(a){var b=Fe;Id($e).Ab(a,b)}function hf(a){var b=Yc(jf.l,12),c=[],d=Od(J(b),function(){a[uc](j,c)});O(b,function(a,b){S(a,function(a){c[b]=a;d()},i)})};function kf(){}kf[C].route=function(a,b){S("directions",function(c){c.Vg(a,b,i)})};function T(a,b){this.x=a;this.y=b}var lf=new T(0,0);Ja(T[C],function(){return"("+this.x+", "+this.y+")"});ya(T[C],function(a){return!a?k:a.x==this.x&&a.y==this.y});T[C].round=function(){this.x=od(this.x);this.y=od(this.y)};T[C].Zc=Sc(0);function U(a,b,c,d){ra(this,a);Sa(this,b);this.B=c||"px";this.n=d||"px"}var mf=new U(0,0);Ja(U[C],function(){return"("+this[v]+", "+this[H]+")"});ya(U[C],function(a){return!a?k:a[v]==this[v]&&a[H]==this[H]});function nf(a){this.F=this.D=fa;this.G=this.J=-fa;O(a,P(this,this[kb]))}function of(a,b,c,d){var e=new nf;e.F=a;e.D=b;e.G=c;e.J=d;return e}I=nf[C];oa(I,function(){return!(this.F<this.G&&this.D<this.J)});sa(I,function(a){a&&(this.F=nd(this.F,a.x),this.G=md(this.G,a.x),this.D=nd(this.D,a.y),this.J=md(this.J,a.y))});I.getCenter=function(){return new T((this.F+this.G)/2,(this.D+this.J)/2)};ya(I,function(a){return!a?k:this.F==a.F&&this.D==a.D&&this.G==a.G&&this.J==a.J});I.Va=Sc(3);
|
||||
var pf=of(-fa,-fa,fa,fa),qf=of(0,0,0,0);function V(){}I=V[C];I.get=function(a){var b=rf(this)[a];if(b){var a=b.tb,b=b.Qe,c="get"+sf(a);return b[c]?b[c]():b.get(a)}return this[a]};I.set=function(a,b){var c=rf(this);if(c[cc](a)){var d=c[a],c=d.tb,d=d.Qe,e="set"+sf(c);if(d[e])d[e](b);else d.set(c,b)}else this[a]=b,tf(this,a)};I.notify=function(a){var b=rf(this);b[cc](a)?(a=b[a],a.Qe[Pb](a.tb)):tf(this,a)};I.setValues=function(a){for(var b in a){var c=a[b],d="set"+sf(b);if(this[d])this[d](c);else this.set(b,c)}};I.setOptions=V[C][Bb];
|
||||
Ea(I,Pc());function tf(a,b){var c=b+"_changed";if(a[c])a[c]();else a[Hb](b);R[r](a,b[Dc]()+"_changed")}var uf={};function sf(a){return uf[a]||(uf[a]=a[Nb](0,1).toUpperCase()+a[Nb](1))}function vf(a,b,c,d,e){rf(a)[b]={Qe:c,tb:d};e||tf(a,b)}function rf(a){a.gm_accessors_||(a.gm_accessors_={});return a.gm_accessors_}function wf(a){a.gm_bindings_||(a.gm_bindings_={});return a.gm_bindings_}
|
||||
V[C].bindTo=function(a,b,c,d){var c=c||a,e=this;e[mb](a);wf(e)[a]=R[G](b,c[Dc]()+"_changed",function(){tf(e,a)});vf(e,a,b,c,d)};V[C].unbind=function(a){var b=wf(this)[a];b&&(delete wf(this)[a],R[jb](b),b=this.get(a),delete rf(this)[a],this[a]=b)};V[C].unbindAll=function(){var a=[];wd(wf(this),function(b){a[p](b)});O(a,P(this,this[mb]))};var xf=V;function yf(a,b,c){this.heading=a;this.pitch=yd(b,-90,90);Ta(this,o.max(0,c))}var zf=ee({zoom:N,heading:N,pitch:N});function Af(a){if(!Fd(a)||!a)return""+a;a.__gm_id||(a.__gm_id=++Bf);return""+a.__gm_id}var Bf=0;function Cf(){this.ua={}}Cf[C].X=function(a){var b=this.ua,c=Af(a);b[c]||(b[c]=a,R[r](this,Oe,a),this.b&&this.b(a))};xa(Cf[C],function(a){var b=this.ua,c=Af(a);b[c]&&(delete b[c],R[r](this,Pe,a),this[Sb]&&this[Sb](a))});Ra(Cf[C],function(a){return!!this.ua[Af(a)]});Cf[C].forEach=function(a){var b=this.ua,c;for(c in b)a[hc](this,b[c])};function Df(a){return function(){return this.get(a)}}function Ef(a,b){return b?function(c){b(c)||aa(ja("Invalid value for property <"+(a+(">: "+c))));this.set(a,c)}:function(b){this.set(a,b)}}function Ff(a,b){wd(b,function(b,d){var e=Df(b);a["get"+sf(b)]=e;d&&(e=Ef(b,d),a["set"+sf(b)]=e)})};var Gf="set_at",Hf="insert_at",If="remove_at";function Jf(a){this.b=a||[];Kf(this)}L(Jf,V);I=Jf[C];I.getAt=function(a){return this.b[a]};I.forEach=function(a){for(var b=0,c=this.b[B];b<c;++b)a(this.b[b],b)};I.setAt=function(a,b){var c=this.b[a],d=this.b[B];if(a<d)this.b[a]=b,R[r](this,Gf,a,c),this.gc&&this.gc(a,c);else{for(c=d;c<a;++c)this[ec](c,ca);this[ec](a,b)}};I.insertAt=function(a,b){this.b[Ac](a,0,b);Kf(this);R[r](this,Hf,a);this.ec&&this.ec(a)};
|
||||
I.removeAt=function(a){var b=this.b[a];this.b[Ac](a,1);Kf(this);R[r](this,If,a,b);this.fc&&this.fc(a,b);return b};I.push=function(a){this[ec](this.b[B],a);return this.b[B]};I.pop=function(){return this[Gb](this.b[B]-1)};I.getArray=Qc("b");function Kf(a){a.set("length",a.b[B])}Fa(I,function(){for(;this.get("length");)this.pop()});Ff(Jf[C],{length:ca});function Lf(){}L(Lf,V);var Mf=V;function Nf(a,b){this.b=a||0;this.e=b||0}Nf[C].heading=Qc("b");Nf[C].Ba=Sc(8);var Of=new Nf;function Pf(){}L(Pf,V);Pf[C].set=function(a,b){b!=j&&(!b||!N(b[pc])||!b[Cb]||!b[Cb][v]||!b[Cb][H]||!b[Ob]||!b[Ob][uc])&&aa(ja("Expected value implementing google.maps.MapType"));return V[C].set[uc](this,arguments)};function Qf(){this.f=[];this.e=this.b=this.d=j};function Rf(){}L(Rf,V);var Sf=[];function Tf(a){this[Bb](a)}L(Tf,V);Ff(Tf[C],{content:ke(fe,Jd,ge),position:he(Q),size:he(U),map:ke(he(Rf),he(Lf)),anchor:he(V),zIndex:le});function Uf(a){this[Bb](a);m[Tb](function(){S(ue,Hd)},100)}L(Uf,Tf);Uf[C].open=function(a,b){this.set("anchor",b);this.set("map",a)};Uf[C].close=function(){this.set("map",j)};Ea(Uf[C],function(a){var b=this;S(ue,function(c){c[Hb](b,a)})});function Vf(a,b,c,d,e){this.url=a;Ma(this,b||e);this.origin=c;this.anchor=d;this.scaledSize=e};function Wf(a){this[Bb](a)}L(Wf,V);Ea(Wf[C],function(a){if("map"==a||"panel"==a){var b=this;S("directions",function(c){c.Pk(b,a)})}});Ff(Wf[C],{directions:qe,map:he(Rf),panel:ke(ge,fe),routeIndex:le});function Xf(){}Xf[C].getDistanceMatrix=function(a,b){S("distance_matrix",function(c){c.b(a,b)})};function Yf(){}Yf[C].getElevationAlongPath=function(a,b){S("elevation",function(c){c.b(a,b)})};Yf[C].getElevationForLocations=function(a,b){S("elevation",function(c){c.e(a,b)})};var Zf,$f;function ag(){S(te,Hd)}ag[C].geocode=function(a,b){S(te,function(c){c.geocode(a,b)})};function bg(a,b,c){this.e=j;this.set("url",a);this.set("bounds",b);this[Bb](c)}L(bg,V);ua(bg[C],function(){var a=this,b=a.e,c=a.e=a.get("map");b!=c&&(b&&b.d[tb](a),c&&c.d.X(a),S("kml",function(b){b.nj(a,a.get("map"))}))});Ff(bg[C],{map:he(Rf),url:j,bounds:j,opacity:le});function cg(a,b){this.set("url",a);this[Bb](b)}L(cg,V);ua(cg[C],function(){var a=this;S("kml",function(b){b.Kk(a)})});Ff(cg[C],{map:he(Rf),defaultViewport:j,metadata:j,status:j,url:j});var dg={UNKNOWN:"UNKNOWN",OK:Kc,INVALID_REQUEST:Fc,DOCUMENT_NOT_FOUND:"DOCUMENT_NOT_FOUND",FETCH_ERROR:"FETCH_ERROR",INVALID_DOCUMENT:"INVALID_DOCUMENT",DOCUMENT_TOO_LARGE:"DOCUMENT_TOO_LARGE",LIMITS_EXCEEDED:"LIMITS_EXECEEDED",TIMED_OUT:"TIMED_OUT"};function eg(){S(ve,Hd)}L(eg,V);ua(eg[C],function(){var a=this;S(ve,function(b){b.b(a)})});Ff(eg[C],{map:he(Rf)});function fg(){S(ve,Hd)}L(fg,V);ua(fg[C],function(){var a=this;S(ve,function(b){b.e(a)})});Ff(fg[C],{map:he(Rf)});function gg(a){this.l=a||[]}function hg(a){this.l=a||[]}var ig=new gg,jg=new gg,kg=new hg;function lg(a){this.l=a||[]}function mg(a){this.l=a||[]}function ng(a){this.l=a||[]}function og(a){this.l=a||[]}function pg(a){this.l=a||[]}function qg(a){this.l=a||[]}Qa(lg[C],function(a){return Yc(this.l,0)[a]});var rg=new lg,sg=new lg,tg=new lg,ug=new lg,vg=new lg,wg=new lg,xg=new lg,yg=new lg,zg=new lg;function Ag(a){a=a.l[0];return a!=j?a:""}function Bg(){var a=Cg(jf).l[1];return a!=j?a:""}function Dg(){var a=Cg(jf).l[9];return a!=j?a:""}function Eg(a){a=a.l[0];return a!=j?a:""}
|
||||
function Fg(a){a=a.l[1];return a!=j?a:""}function Gg(){var a=jf.l[4],a=(a?new pg(a):Hg).l[0];return a!=j?a:0}function Ig(){var a=jf.l[5];return a!=j?a:1}function Jg(){var a=jf.l[11];return a!=j?a:""}var Kg=new mg,Lg=new ng;function Cg(a){return(a=a.l[2])?new ng(a):Lg}var Mg=new og;function Ng(){var a=jf.l[3];return a?new og(a):Mg}var Hg=new pg;var jf;function Og(){this.b=new T(128,128);this.e=256/360;this.d=256/(2*o.PI)}Og[C].fromLatLngToPoint=function(a,b){var c=b||new T(0,0),d=this.b;c.x=d.x+a.lng()*this.e;var e=yd(o.sin(M(a.lat())),-(1-1.0E-15),1-1.0E-15);c.y=d.y+0.5*o.log((1+e)/(1-e))*-this.d;return c};Og[C].fromPointToLatLng=function(a,b){var c=this.b;return new Q(Bd(2*o[jc](o.exp((a.y-c.y)/-this.d))-o.PI/2),(a.x-c.x)/this.e,b)};function Pg(a,b,c){if(a=a[ab](b))c=o.pow(2,c),a.x*=c,a.y*=c;return a};function Qg(a,b){var c=a.lat()+Bd(b);90<c&&(c=90);var d=a.lat()-Bd(b);-90>d&&(d=-90);var e=o.sin(b),f=o.cos(M(a.lat()));if(90==c||-90==d||1.0E-6>f)return new de(new Q(d,-180),new Q(c,180));e=Bd(o[yc](e/f));return new de(new Q(d,a.lng()-e),new Q(c,a.lng()+e))};function Rg(a){this.Yb=a||0;this.Sb=R[A](this,Ke,this,this.I)}L(Rg,V);Rg[C].O=function(){var a=this;a.f||(a.f=m[Tb](function(){a.f=ca;a.Z()},a.Yb))};Rg[C].I=function(){this.f&&m[$a](this.f);this.f=ca;this.Z()};Rg[C].Z=Pc();Rg[C].Q=Sc(2);function Sg(a,b){var c=a[F];ra(c,b[v]+b.B);Sa(c,b[H]+b.n)}function Tg(a){return new U(a[hb],a[Bc])};function Ug(a){this.l=a||[]}var Vg;function Wg(a){this.l=a||[]}var Xg;function Yg(a){this.l=a||[]}var Zg;function $g(a){this.l=a||[]}var ah;
|
||||
function bh(a){if(!ah){var b=[];ah={$:-1,Y:b};if(!Xg){var c=[];Xg={$:-1,Y:c};c[1]={type:"i",label:1};c[2]={type:"i",label:1}}b[1]={type:"m",label:1,V:Xg};b[2]={type:"e",label:1};b[3]={type:"u",label:1};Zg||(c=[],Zg={$:-1,Y:c},c[1]={type:"u",label:1},c[2]={type:"u",label:1},c[3]={type:"e",label:1});b[4]={type:"m",label:1,V:Zg};Vg||(c=[],Vg={$:-1,Y:c},c[1]={type:"e",label:1},c[2]={type:"b",label:1},c[3]={type:"b",label:1},c[5]={type:"s",label:1},c[6]={type:"s",label:1},c[100]={type:"b",label:1});b[5]=
|
||||
{type:"m",label:1,V:Vg}}return ad(a.l,ah)}La($g[C],function(){var a=this.l[2];return a!=j?a:0});za($g[C],function(a){this.l[2]=a});function ch(a,b,c){Rg[hc](this);this.A=b;this.n=new Og;this.B=c+"/maps/api/js/StaticMapService.GetMapImage";this.set("div",a)}L(ch,Rg);var dh={roadmap:0,satellite:2,hybrid:3,terrain:4},eh={"0":1,2:2,3:2,4:2};I=ch[C];I.bf=Df("center");I.af=Df("zoom");function fh(a){var b=a.get("tilt")||a.get("mapMaker")||J(a.get("styles")),a=a.get("mapTypeId");return b?j:dh[a]}
|
||||
Ea(I,function(){var a=this.bf(),b=this.af(),c=fh(this);if(a&&!a[ub](this.C)||this.d!=b||this.H!=c)gh(this.j),this.O(),this.d=b,this.H=c;this.C=a});function gh(a){a[xc]&&a[xc][dc](a)}
|
||||
I.Z=function(){var a="",b=this.bf(),c=this.af(),d=fh(this),e=this.get("size");if(b&&1<c&&d!=j&&e&&e[v]&&e[H]&&this.b){Sg(this.b,e);var f;(b=Pg(this.n,b,c))?(f=new nf,f.F=o[w](b.x-e[v]/2),f.G=f.F+e[v],f.D=o[w](b.y-e[H]/2),f.J=f.D+e[H]):f=j;b=eh[d];if(f){var a=new $g,g=1<(22>c&&(m.devicePixelRatio||ha[Xa]&&ha[Xa]/96||1))?2:1,h;a.l[0]=a.l[0]||[];h=new Wg(a.l[0]);h.l[0]=f.F*g;h.l[1]=f.D*g;a.l[1]=b;a[zb](c);a.l[3]=a.l[3]||[];c=new Yg(a.l[3]);c.l[0]=(f.G-f.F)*g;c.l[1]=(f.J-f.D)*g;1<g&&(c.l[2]=2);a.l[4]=
|
||||
a.l[4]||[];c=new Ug(a.l[4]);c.l[0]=d;c.l[1]=i;c.l[4]=Ag(Cg(jf));d=Bg()[Dc]();if("cn"==d||"in"==d||"kr"==d)c.l[5]=d;a=this.A(this.B+unescape("%3F")+bh(a))}}this.j&&e&&(Sg(this.j,e),e=a,d=this.j,e!=d.src?(gh(d),ma(d,Md(this,this.zf,i)),ta(d,Md(this,this.zf,k)),d.src=e):!d[xc]&&e&&this.b[Ua](d))};I.zf=function(a){var b=this.j;ma(b,j);ta(b,j);a&&(b[xc]||this.b[Ua](b),Sg(b,this.get("size")),R[r](this,Le))};
|
||||
I.div_changed=function(){var a=this.get("div"),b=this.b;if(a)if(b)a[Ua](b);else{b=this.b=n[vb]("div");Ha(b[F],"hidden");var c=this.j=n[vb]("img");R[rc](b,Je,Td);c.ontouchstart=c.ontouchmove=c.ontouchend=c.ontouchcancel=Rd;Sg(c,mf);a[Ua](b);this.Z()}else b&&(gh(b),this.b=j)};function hh(a){this.b=[];this.e=a||Nd()}var ih;function jh(a,b,c){c=c||Nd()-a.e;ih&&a.b[p]([b,c]);return c};var kh;function lh(a,b){var c=this;c.f=new V;var d=c.controls=[];wd(Uc,function(a,b){d[b]=new Jf});c.N=a;c.setPov(new yf(0,0,1));c[Bb](b);c[gb]()==ca&&c[Rb](i);c.Ub=b&&b.Ub||new Cf;R[Fb](this,"pano_changed",Vd(function(){S(xe,function(a){a.b(c.Ub,c)})}))}L(lh,Lf);va(lh[C],function(){var a=this;!a.d&&a[gb]()&&(a.d=i,S("streetview",function(b){b.f(a)}))});Ff(lh[C],{visible:ne,pano:me,position:he(Q),pov:ke(zf,fe),links:ca,enableCloseButton:ne});lh[C].getContainer=Qc("N");lh[C].M=Qc("f");
|
||||
lh[C].registerPanoProvider=Ef("panoProvider");function mh(a,b){var c=new nh(b);for(c.b=[a];J(c.b);){var d=c,e=c.b[Ya]();d.e(e);for(e=e[xb];e;e=e.nextSibling)1==e[db]&&d.b[p](e)}}function nh(a){this.e=a};var oh=Vc[Wb]&&Vc[Wb][vb]("div");function ph(a){for(var b;b=a[xb];)qh(b),a[dc](b)}function qh(a){mh(a,function(a){R[Jb](a)})};function rh(a,b){kh&&jh(kh,"mc");var c=this,d=b||{};c[Bb](d);c.d=new Cf;c.Tb=new Jf;c.mapTypes=new Pf;c.features=new xf;var e=c.Ub=new Cf;e.b=function(){delete e.b;S(xe,Vd(function(a){a.b(e,c)}))};c.$d=new Cf;c.ee=new Cf;c.ce=new Cf;Sf[p](a);c.B=new lh(a,{visible:k,enableCloseButton:i,Ub:e});c[Pb]("streetView");c.b=a;var f=Tg(a);d.noClear||ph(a);var g=j;sh(d.useStaticMap,f)&&(g=new ch(a,Zf,Dg()),R[E](g,Le,this),R[Fb](g,Le,function(){jh(kh,"smv")}),g.set("size",f),g[u]("center",c),g[u]("zoom",c),g[u]("mapTypeId",
|
||||
c),g[u]("styles",c),g[u]("mapMaker",c));c.n=new Mf;c.overlayMapTypes=new Jf;var h=c.controls=[];wd(Uc,function(a,b){h[b]=new Jf});c.j=new Qf;S(we,function(a){a.Ph(c,d,g)})}L(rh,Rf);I=rh[C];I.streetView_changed=function(){this.get("streetView")||this.set("streetView",this.B)};I.getDiv=Qc("b");I.M=Qc("n");I.panBy=function(a,b){var c=this.n;S(we,function(){R[r](c,Me,a,b)})};I.panTo=function(a){var b=this.n;S(we,function(){R[r](b,Ne,a)})};
|
||||
I.panToBounds=function(a){var b=this.n;S(we,function(){R[r](b,"pantolatlngbounds",a)})};I.fitBounds=function(a){var b=this;S(we,function(c){c.fitBounds(b,a)})};function sh(a,b){if(Ed(a))return!!a;var c=b[v],d=b[H];return 384E3>=c*d&&800>=c&&800>=d}Ff(rh[C],{bounds:j,streetView:he(Lf),center:he(Q),zoom:le,mapTypeId:me,projection:j,heading:le,tilt:le});function th(a){this[Bb](a);S(xe,Hd)}L(th,V);var uh=ke(Jd,he(ea));Ff(th[C],{position:he(Q),title:me,icon:uh,shadow:uh,shape:td,cursor:me,clickable:ne,animation:td,draggable:ne,visible:ne,flat:ne,zIndex:le});th[C].getVisible=function(){return this.get("visible")!=k};th[C].getClickable=function(){return this.get("clickable")!=k};function vh(a){th[hc](this,a)}L(vh,th);ua(vh[C],function(){this.e&&this.e.Ub[tb](this);(this.e=this.get("map"))&&this.e.Ub.X(this)});vh.MAX_ZINDEX=1E6;Ff(vh[C],{map:ke(he(Rf),he(Lf))});function wh(){S(ye,Hd)}wh[C].getMaxZoomAtLatLng=function(a,b){S(ye,function(c){c.getMaxZoomAtLatLng(a,b)})};function xh(a,b){if(Jd(a)||le(a))this.set("tableId",a),this[Bb](b);else this[Bb](a)}L(xh,V);Ea(xh[C],function(a){if(!("suppressInfoWindows"==a||"clickable"==a)){var b=this;S(ze,function(a){a.Jk(b)})}});Ff(xh[C],{map:he(Rf),tableId:le,query:ke(Jd,Fd)});function yh(){}L(yh,V);ua(yh[C],function(){var a=this;S("overlay",function(b){b.b(a)})});Ff(yh[C],{panes:ca,projection:ca,map:ke(he(Rf),he(Lf))});function zh(a){var b,c=k;if(a instanceof Jf)if(0<a.get("length")){var d=a[ac](0);d instanceof Q?(b=new Jf,b[ec](0,a)):d instanceof Jf?d[Zb]()&&!(d[ac](0)instanceof Q)?c=i:b=a:c=i}else b=a;else Pd(a)?0<a[B]?(d=a[0],d instanceof Q?(b=new Jf,b[ec](0,new Jf(a))):Pd(d)?d[B]&&!(d[0]instanceof Q)?c=i:(b=new Jf,O(a,function(a,c){b[ec](c,new Jf(a))})):c=i):b=new Jf:c=i;c&&aa(ja("Invalid value for constructor parameter 0: "+a));return b}function Ah(a){return a&&a.radius||6378137};function Bh(a){this[Bb](a);S(Be,Hd)}L(Bh,V);ua(Bh[C],va(Bh[C],function(){var a=this;S(Be,function(b){b.b(a)})}));na(Bh[C],function(){R[r](this,"bounds_changed")});Bh[C].radius_changed=Bh[C].center_changed;Da(Bh[C],function(){var a=this.get("radius"),b=this.get("center");if(b&&N(a)){var c=this.get("map"),c=c&&c.M().get("mapType");return Qg(b,a/Ah(c))}return j});Ff(Bh[C],{center:he(Q),editable:ne,map:he(Rf),radius:le,visible:ne});function Ch(){this.set("latLngs",new Jf([new Jf]))}L(Ch,V);ua(Ch[C],va(Ch[C],function(){var a=this;S(Be,function(b){b.e(a)})}));Ch[C].getPath=function(){return this.get("latLngs")[ac](0)};Ch[C].setPath=function(a){a=zh(a);this.get("latLngs")[vc](0,a[ac](0)||new Jf)};Ff(Ch[C],{editable:ne,map:he(Rf),visible:ne});function Dh(a){Ch[hc](this);this[Bb](a);S(Be,Hd)}L(Dh,Ch);Dh[C].f=i;Dh[C].getPaths=function(){return this.get("latLngs")};Dh[C].setPaths=function(a){this.set("latLngs",zh(a))};function Eh(a){Ch[hc](this);this[Bb](a);S(Be,Hd)}L(Eh,Ch);Eh[C].f=k;function Fh(a){Rg[hc](this);this[Bb](a);S(Be,Hd)}L(Fh,Rg);ua(Fh[C],va(Fh[C],function(){var a=this;S(Be,function(b){b.d(a)})}));Ff(Fh[C],{editable:ne,bounds:he(de),map:he(Rf),visible:ne});function Gh(){}Gh[C].getPanoramaByLocation=function(a,b,c){var d=this.Pa;S("streetview",function(e){e.d(a,b,c,d)})};Gh[C].getPanoramaById=function(a,b){var c=this.Pa;S("streetview",function(d){d.e(a,b,c)})};function Hh(a){this.b=a}Ia(Hh[C],function(a,b,c){c=c[vb]("div");a={fa:c,qa:a,zoom:b};c.pa=a;this.b.X(a);return c});Oa(Hh[C],function(a){this.b[tb](a.pa);a.pa=j});Hh[C].sb=function(a){R[r](a.pa,"stop",a.pa)};function Ih(a){Aa(this,a[Cb]);Ga(this,a[Kb]);this.alt=a.alt;wa(this,a[pb]);Pa(this,a[pc]);var b=new Cf,c=new Hh(b);Ia(this,P(c,c[Ob]));Oa(this,P(c,c[gc]));this.sb=P(c,c.sb);var d=P(a,a[Ib]);this.set("opacity",a[Yb]);var e=this;S(we,function(c){(new c.uk(b,d,j,a))[u]("opacity",e)})}L(Ih,V);Ih[C].Nb=i;Ff(Ih[C],{opacity:le});function Jh(a,b){var c=b||{};this.C=c.baseMapTypeId||"roadmap";this.A=a;wa(this,c[pb]);Pa(this,c[pc]||20);Ga(this,c[Kb]);this.alt=c.alt;Aa(this,new U(256,256));Ia(this,Hd)};var Kh={Animation:{BOUNCE:1,DROP:2,e:3,b:4},Circle:Bh,ControlPosition:Uc,GroundOverlay:bg,ImageMapType:Ih,InfoWindow:Uf,LatLng:Q,LatLngBounds:de,MVCArray:Jf,MVCObject:V,Map:rh,MapTypeControlStyle:{DEFAULT:0,HORIZONTAL_BAR:1,DROPDOWN_MENU:2},MapTypeId:Tc,MapTypeRegistry:Pf,Marker:vh,MarkerImage:Vf,NavigationControlStyle:{DEFAULT:0,SMALL:1,ANDROID:2,ZOOM_PAN:3,kl:4,Hk:5},OverlayView:yh,Point:T,Polygon:Dh,Polyline:Eh,Rectangle:Fh,ScaleControlStyle:{DEFAULT:0},Size:U,ZoomControlStyle:{DEFAULT:0,SMALL:1,
|
||||
LARGE:2,Hk:3,ANDROID:4},event:R};
|
||||
vd(Kh,{BicyclingLayer:eg,DirectionsRenderer:Wf,DirectionsService:kf,DirectionsStatus:{OK:Kc,UNKNOWN_ERROR:Nc,OVER_QUERY_LIMIT:Lc,REQUEST_DENIED:Mc,INVALID_REQUEST:Fc,ZERO_RESULTS:Oc,MAX_WAYPOINTS_EXCEEDED:Jc,NOT_FOUND:"NOT_FOUND"},DirectionsTravelMode:id,DirectionsUnitSystem:hd,DistanceMatrixService:Xf,DistanceMatrixStatus:{OK:Kc,INVALID_REQUEST:Fc,OVER_QUERY_LIMIT:Lc,REQUEST_DENIED:Mc,UNKNOWN_ERROR:Nc,MAX_ELEMENTS_EXCEEDED:Ic,MAX_DIMENSIONS_EXCEEDED:Hc},DistanceMatrixElementStatus:{OK:Kc,NOT_FOUND:"NOT_FOUND",
|
||||
ZERO_RESULTS:Oc},ElevationService:Yf,ElevationStatus:{OK:Kc,UNKNOWN_ERROR:Nc,OVER_QUERY_LIMIT:Lc,REQUEST_DENIED:Mc,INVALID_REQUEST:Fc,fl:"DATA_NOT_AVAILABLE"},FusionTablesLayer:xh,Geocoder:ag,GeocoderLocationType:{ROOFTOP:"ROOFTOP",RANGE_INTERPOLATED:"RANGE_INTERPOLATED",GEOMETRIC_CENTER:"GEOMETRIC_CENTER",APPROXIMATE:"APPROXIMATE"},GeocoderStatus:{OK:Kc,UNKNOWN_ERROR:Nc,OVER_QUERY_LIMIT:Lc,REQUEST_DENIED:Mc,INVALID_REQUEST:Fc,ZERO_RESULTS:Oc,ERROR:Ec},KmlLayer:cg,KmlLayerStatus:dg,MaxZoomService:wh,
|
||||
MaxZoomStatus:{OK:Kc,ERROR:Ec},StreetViewPanorama:lh,StreetViewService:Gh,StreetViewStatus:{OK:Kc,UNKNOWN_ERROR:Nc,ZERO_RESULTS:Oc},StyledMapType:Jh,TrafficLayer:fg,TravelMode:id,UnitSystem:hd});function Lh(a){this[Bb](a);S(ze,Hd)}L(Lh,V);Ea(Lh[C],function(a){if(!("map"!=a&&"token"!=a)){var b=this;S(ze,function(a){a.Mk(b)})}});Ff(Lh[C],{map:he(Rf)});function Mh(){this.b=new Cf}L(Mh,V);ua(Mh[C],function(){var a=this[ic]();this.b[yb](function(b){b[sc](a)})});Ff(Mh[C],{map:he(Rf)});function Nh(a){this.e=1729;this.b=a}function Oh(a,b,c){for(var d=ga(b[B]),e=0,f=b[B];e<f;++e)d[e]=b[mc](e);d.unshift(c);b=a.e;a=a.b;e=c=0;for(f=d[B];e<f;++e)c*=b,c+=d[e],c%=a;return c};function Ph(){var a=Gg(),b=new Nh(131071),c=unescape("%26%74%6F%6B%65%6E%3D");return function(d){var d=d[cb](Qh,"%27"),e=d+c;Rh||(Rh=/(?:https?:\/\/[^/]+)?(.*)/);d=Rh[Za](d);return e+Oh(b,d&&d[1],a)}}var Qh=la("'","g"),Rh;function Sh(){var a=new Nh(2147483647);return function(b){return Oh(a,b,0)}};cf.main=function(a){eval(a)};ff("main",{});function Th(){for(var a in ea[C])m[qc]&&m[qc].log("Warning: This site adds property <"+a+"> to Object.prototype. Extending Object.prototype breaks JavaScript for..in loops, which are used heavily in Google Maps API v3.")}
|
||||
m.google.maps.Load(function(a,b){var c=m.google.maps;Th();"version"in c&&m[qc]&&m[qc].log("Warning: you have included the Google Maps API multiple times on this page. This may cause unexpected errors.");jf=new qg(a);o[kc]()<Ig()&&(ih=i);kh=new hh(b);jh(kh,"jl");Zf=Ph();$f=Sh();var d=Ng();gf(Eg(d));wd(Kh,function(a,b){c[a]=b});pa(c,Fg(d));m[Tb](function(){S("util",function(a){a.b.b()})},5E3);R[rc](m,"unload",R.wg);var e=Jg();e&&hf(function(){eval("window."+e+"()")})});var Uh=new ed;
|
||||
})();
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html manifest="appcache.manifest">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Offline Map example in web browser</title>
|
||||
<link type="text/css" rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="map"></div>
|
||||
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
|
||||
<script>window.google && window.google.maps || document.write('<script src="gmapapi.js"><\/script>')</script>
|
||||
<script type="text/javascript" src="webStorage.js"></script>
|
||||
<script type="text/javascript" src="script.js"></script>
|
||||
<script type="text/javascript" src="map.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
var element = document.getElementById("map");
|
||||
|
||||
var mapTypeIds = [];
|
||||
for(var type in google.maps.MapTypeId) {
|
||||
mapTypeIds.push(google.maps.MapTypeId[type]);
|
||||
}
|
||||
|
||||
mapTypeIds.push("OSM");
|
||||
mapTypeIds.push("MyGmap");
|
||||
mapTypeIds.push("LocalGmap");
|
||||
mapTypeIds.push("WebStorageGmap");
|
||||
mapTypeIds.push("LocalMyGmap");
|
||||
mapTypeIds.push("WebStorageMyGmap");
|
||||
|
||||
var map = new google.maps.Map(element, {
|
||||
center: new google.maps.LatLng(-22.18416881313122, -47.382545097935264),
|
||||
zoom: 17,
|
||||
mapTypeId: "MyGmap",
|
||||
mapTypeControlOptions: {
|
||||
mapTypeIds: mapTypeIds,
|
||||
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
|
||||
}
|
||||
});
|
||||
|
||||
map.mapTypes.set("OSM", new google.maps.ImageMapType({
|
||||
getTileUrl: getOsmTileImgSrc,
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "OSM",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("MyGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: getGmapTileImgSrc,
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "MyGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("LocalGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: getLocalTileImgSrc,
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "LocalGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("WebStorageGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: getWebStorageTileImgSrc,
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "WebStorageGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("LocalMyGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: function(coord, zoom) {
|
||||
return checkTileInSprites(coord, zoom) ?
|
||||
getLocalTileImgSrc(coord, zoom) :
|
||||
getGmapTileImgSrc(coord, zoom);
|
||||
},
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "LocalMyGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("WebStorageMyGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: function(coord, zoom) {
|
||||
var image = getWebStorageTileImgSrc(coord, zoom);
|
||||
return image ? image : getGmapTileImgSrc(coord, zoom);
|
||||
},
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "WebStorageMyGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
google.maps.event.addListener(map, 'click', function(point) {
|
||||
var marker = new google.maps.Marker({
|
||||
position: point.latLng,
|
||||
map: map
|
||||
});
|
||||
|
||||
google.maps.event.addListener(marker, 'dblclick', function() {
|
||||
marker.setMap(null);
|
||||
});
|
||||
|
||||
google.maps.event.addListener(marker, 'click', function() {
|
||||
new google.maps.InfoWindow({
|
||||
content: 'lat: ' + point.latLng.lat() + '<br>lng:' + point.latLng.lng()
|
||||
}).open(map, marker);
|
||||
});
|
||||
});
|
||||
|
||||
function CustomControl(controlDiv, map, title, handler) {
|
||||
controlDiv.style.padding = '5px';
|
||||
|
||||
var controlUI = document.createElement('DIV');
|
||||
controlUI.style.backgroundColor = 'white';
|
||||
controlUI.style.borderStyle = 'solid';
|
||||
controlUI.style.borderWidth = '2px';
|
||||
controlUI.style.cursor = 'pointer';
|
||||
controlUI.style.textAlign = 'center';
|
||||
controlUI.title = title;
|
||||
controlDiv.appendChild(controlUI);
|
||||
|
||||
var controlText = document.createElement('DIV');
|
||||
controlText.style.fontFamily = 'Arial,sans-serif';
|
||||
controlText.style.fontSize = '12px';
|
||||
controlText.style.paddingLeft = '4px';
|
||||
controlText.style.paddingRight = '4px';
|
||||
controlText.innerHTML = title;
|
||||
controlUI.appendChild(controlText);
|
||||
|
||||
google.maps.event.addDomListener(controlUI, 'click', handler);
|
||||
}
|
||||
|
||||
var clearWebStorageDiv = document.createElement('DIV');
|
||||
var clearWebStorageButton = new CustomControl(clearWebStorageDiv, map,
|
||||
'Clear Web Storage', clearWebStorage);
|
||||
|
||||
var prepareWebStorageDiv = document.createElement('DIV');
|
||||
var prepareWebStorageButton = new CustomControl(prepareWebStorageDiv, map,
|
||||
'Prepare Web Storage', prepareWebStorage);
|
||||
|
||||
clearWebStorageDiv.index = 1;
|
||||
prepareWebStorageDiv.index = 1;
|
||||
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(clearWebStorageDiv);
|
||||
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(prepareWebStorageDiv);
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
var spriteRanges = {
|
||||
// tl = top_left
|
||||
// br = bottom_right
|
||||
// {zoom: {tl: {}, br: {}}
|
||||
0: {
|
||||
tl: {x: 0, y: 0},
|
||||
br: {x: 0, y: 0}
|
||||
},
|
||||
1: {
|
||||
tl: {x: 1, y: 0},
|
||||
br: {x: 1, y: 0}
|
||||
},
|
||||
2: {
|
||||
tl: {x: 2, y: 1},
|
||||
br: {x: 2, y: 1}
|
||||
},
|
||||
3: {
|
||||
tl: {x: 4, y: 2},
|
||||
br: {x: 4, y: 2}
|
||||
},
|
||||
4: {
|
||||
tl: {x: 9, y: 5},
|
||||
br: {x: 9, y: 5}
|
||||
},
|
||||
5: {
|
||||
tl: {x: 18, y: 10},
|
||||
br: {x: 18, y: 10}
|
||||
},
|
||||
6: {
|
||||
tl: {x: 36, y: 20},
|
||||
br: {x: 36, y: 20}
|
||||
},
|
||||
7: {
|
||||
tl: {x: 73, y: 41},
|
||||
br: {x: 73, y: 41}
|
||||
},
|
||||
8: {
|
||||
tl: {x: 147, y: 82},
|
||||
br: {x: 147, y: 82}
|
||||
},
|
||||
9: {
|
||||
tl: {x: 294, y: 164},
|
||||
br: {x: 295, y: 164}
|
||||
},
|
||||
10: {
|
||||
tl: {x: 589, y: 328},
|
||||
br: {x: 591, y: 329}
|
||||
},
|
||||
11: {
|
||||
tl: {x: 1179, y: 657},
|
||||
br: {x: 1182, y: 659}
|
||||
},
|
||||
12: {
|
||||
tl: {x: 2358, y: 1315},
|
||||
br: {x: 2364, y: 1319}
|
||||
},
|
||||
13: {
|
||||
tl: {x: 4717, y: 2630},
|
||||
br: {x: 4728, y: 2639}
|
||||
},
|
||||
14: {
|
||||
tl: {x: 9439, y: 5262},
|
||||
br: {x: 9452, y: 5277}
|
||||
},
|
||||
15: {
|
||||
tl: {x: 18878, y: 10525},
|
||||
br: {x: 18905, y: 10554}
|
||||
},
|
||||
16: {
|
||||
tl: {x: 37757, y: 21051},
|
||||
br: {x: 37810, y: 21108}
|
||||
}
|
||||
};
|
||||
|
||||
var max_zoom = 13;
|
||||
|
||||
var webStorage = new WebStorageFactory().getWebStorage();
|
||||
|
||||
function imageToBase64(image) {
|
||||
var canvas = document.createElement("canvas");
|
||||
canvas.width = image.width;
|
||||
canvas.height = image.height;
|
||||
|
||||
var context = canvas.getContext("2d");
|
||||
context.drawImage(image, 0, 0);
|
||||
|
||||
return canvas.toDataURL("image/png");
|
||||
}
|
||||
|
||||
function loadImageToWebStorage(zoom, x, y){
|
||||
var url = "cache/" + zoom + "/" + x + "_" + y + ".png";
|
||||
var image = new Image();
|
||||
image.onload = function() {
|
||||
webStorage.setItem([zoom, x, y].join('_'), imageToBase64(image));
|
||||
};
|
||||
image.src = url;
|
||||
}
|
||||
|
||||
function clearWebStorage() {
|
||||
webStorage.clear();
|
||||
}
|
||||
|
||||
function prepareWebStorage() {
|
||||
for (var zoom in spriteRanges) {
|
||||
if (zoom > max_zoom) {
|
||||
break;
|
||||
}
|
||||
var sprites = spriteRanges[zoom];
|
||||
for (var x=sprites.tl.x; x<=sprites.br.x; x++) {
|
||||
for (var y=sprites.tl.y; y<=sprites.br.y; y++) {
|
||||
loadImageToWebStorage(zoom, x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function checkTileInSprites(coord, zoom) {
|
||||
var sprites = spriteRanges[zoom];
|
||||
return sprites.tl.x <= coord.x && coord.x <= sprites.br.x && sprites.tl.y <= coord.y && coord.y <= sprites.br.y;
|
||||
}
|
||||
|
||||
function getOsmTileImgSrc(coord, zoom) {
|
||||
return "http://tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png";
|
||||
}
|
||||
|
||||
function getGmapTileImgSrc(coord, zoom) {
|
||||
return "http://mt0.googleapis.com/vt?src=apiv3&x=" + coord.x + "&y=" + coord.y + "&z=" + zoom;
|
||||
}
|
||||
|
||||
function getLocalTileImgSrc(coord, zoom) {
|
||||
return "cache/" + zoom + "/" + coord.x + "_" + coord.y + ".png";
|
||||
}
|
||||
|
||||
function getWebStorageTileImgSrc(coord, zoom) {
|
||||
return webStorage.getItem([zoom, coord.x, coord.y].join('_'));
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
html, body, #map {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.gmnoprint {
|
||||
width: auto !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
function LocalStorageWebStorageImpl() {
|
||||
this.webStorageType = 'localStorage';
|
||||
|
||||
this.getItem = function(name) {
|
||||
return localStorage.getItem(name);
|
||||
};
|
||||
|
||||
this.setItem = function(name, value) {
|
||||
localStorage.setItem(name, value);
|
||||
};
|
||||
|
||||
this.clear = function() {
|
||||
localStorage.clear();
|
||||
};
|
||||
}
|
||||
|
||||
function WebStorageFactory() {
|
||||
var webStorage = null;
|
||||
|
||||
if (window.localStorage) {
|
||||
webStorage = new LocalStorageWebStorageImpl();
|
||||
} else {
|
||||
alert("Your browser don't support localStorage");
|
||||
}
|
||||
|
||||
this.getWebStorage = function() {
|
||||
return webStorage;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,60 +1,60 @@
|
|||
[
|
||||
{
|
||||
"timestamp": 1707485821.8047965,
|
||||
"timestamp": 1708432207.1039248,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
},
|
||||
{
|
||||
"timestamp": 1707485821.990315,
|
||||
"timestamp": 1708432207.3070076,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
},
|
||||
{
|
||||
"timestamp": 1707485822.172832,
|
||||
"timestamp": 1708432207.497069,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
},
|
||||
{
|
||||
"timestamp": 1707485822.358352,
|
||||
"timestamp": 1708432207.6906283,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
},
|
||||
{
|
||||
"timestamp": 1707485822.5488734,
|
||||
"timestamp": 1708432207.8836892,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
},
|
||||
{
|
||||
"timestamp": 1707485822.7363853,
|
||||
"timestamp": 1708432208.0787556,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
},
|
||||
{
|
||||
"timestamp": 1707485822.9339037,
|
||||
"timestamp": 1708432208.2768304,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
},
|
||||
{
|
||||
"timestamp": 1707485823.1304202,
|
||||
"timestamp": 1708432208.4708998,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
},
|
||||
{
|
||||
"timestamp": 1707485823.3329365,
|
||||
"timestamp": 1708432208.6789746,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
},
|
||||
{
|
||||
"timestamp": 1707485823.5494504,
|
||||
"timestamp": 1708432208.8730547,
|
||||
"x_max": 640.0,
|
||||
"y_max": 480.0,
|
||||
"objetos": []
|
||||
|
|
|
|||
|
|
@ -0,0 +1,38 @@
|
|||
CACHE MANIFEST
|
||||
|
||||
NETWORK:
|
||||
*
|
||||
|
||||
CACHE:
|
||||
index.html
|
||||
style.css
|
||||
|
||||
script.js
|
||||
gmapapi.js
|
||||
gmapcache/main.js
|
||||
gmapcache/components.js
|
||||
gmapcache/empty.js
|
||||
|
||||
gmapcache/gstatic/arrow-down.png
|
||||
gmapcache/gstatic/cb/mod_cb_scout/cb_scout_sprite_api_003.png
|
||||
gmapcache/gstatic/cb/target_locking.gif
|
||||
gmapcache/gstatic/google_white.png
|
||||
gmapcache/gstatic/iw3.png
|
||||
gmapcache/gstatic/iws3.png
|
||||
gmapcache/gstatic/mapcontrols3d7.png
|
||||
gmapcache/gstatic/markers2/marker_sprite.png
|
||||
gmapcache/gstatic/mv/imgs8.png
|
||||
gmapcache/gstatic/rotate2.png
|
||||
gmapcache/gstatic/szc4.png
|
||||
gmapcache/gstatic/transparent.png
|
||||
|
||||
gmapcache/gstatic/openhand_8_8.cur
|
||||
gmapcache/gstatic/closedhand_8_8.cur
|
||||
|
||||
FALLBACK:
|
||||
gmapcache/googleapis/maps/api/js/AuthenticationService.Authenticate gmapcache/empty.js
|
||||
gmapcache/googleapis/maps/api/js/QuotaService.RecordEvent gmapcache/empty.js
|
||||
gmapcache/googleapis/maps/api/js/StaticMapService.GetMapImage gmapcache/empty.js
|
||||
gmapcache/googleapis/maps/api/js/ViewportInfoService.GetViewportInfo gmapcache/empty.js
|
||||
gmapcache/googleapis/maps/gen_204 gmapcache/empty.js
|
||||
gmapcache/googleapis/mapslt/ft gmapcache/empty.js
|
||||
|
|
@ -0,0 +1,224 @@
|
|||
window.google = window.google || {};
|
||||
google.maps = google.maps || {};
|
||||
(function () {
|
||||
|
||||
function getScript(src) {
|
||||
document.write('<' + 'script src="' + src + '"' + ' type="text/javascript"><' + '/script>');
|
||||
}
|
||||
|
||||
var modules = google.maps.modules = {};
|
||||
google.maps.__gjsload__ = function (name, text) {
|
||||
modules[name] = text;
|
||||
};
|
||||
|
||||
google.maps.Load = function (apiLoad) {
|
||||
delete google.maps.Load;
|
||||
apiLoad([null, [
|
||||
[
|
||||
["http://mt0.googleapis.com/vt?lyrs=m@174000000\u0026src=api\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"m@174000000"
|
||||
],
|
||||
[
|
||||
["http://khm0.googleapis.com/kh?v=107\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
1,
|
||||
"107"
|
||||
],
|
||||
[
|
||||
["http://mt0.googleapis.com/vt?lyrs=h@174000000\u0026src=api\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
"imgtp=png32\u0026",
|
||||
null,
|
||||
"h@174000000"
|
||||
],
|
||||
[
|
||||
["http://mt0.googleapis.com/vt?lyrs=t@128,r@174000000\u0026src=api\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"t@128,r@174000000"
|
||||
],
|
||||
null,
|
||||
[
|
||||
[null, 0, 7, 7, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1293600000]
|
||||
],
|
||||
[
|
||||
[366500000, 1297000000],
|
||||
[386200000, 1320034790]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],
|
||||
[null, 0, 8, 8, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1279600000]
|
||||
],
|
||||
[
|
||||
[345000000, 1279600000],
|
||||
[386200000, 1286700000]
|
||||
],
|
||||
[
|
||||
[354690000, 1286700000],
|
||||
[386200000, 1320035000]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],
|
||||
[null, 0, 9, 9, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1279600000]
|
||||
],
|
||||
[
|
||||
[340000000, 1279600000],
|
||||
[386200000, 1286700000]
|
||||
],
|
||||
[
|
||||
[348900000, 1286700000],
|
||||
[386200000, 1302000000]
|
||||
],
|
||||
[
|
||||
[368300000, 1302000000],
|
||||
[386200000, 1320035000]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],
|
||||
[null, 0, 10, 19, [
|
||||
[
|
||||
[329890840, 1246055600],
|
||||
[386930130, 1284960940]
|
||||
],
|
||||
[
|
||||
[344646740, 1284960940],
|
||||
[386930130, 1288476560]
|
||||
],
|
||||
[
|
||||
[350277470, 1288476560],
|
||||
[386930130, 1310531620]
|
||||
],
|
||||
[
|
||||
[370277730, 1310531620],
|
||||
[386930130, 1320034790]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],
|
||||
[null, 3, 7, 7, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1293600000]
|
||||
],
|
||||
[
|
||||
[366500000, 1297000000],
|
||||
[386200000, 1320034790]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],
|
||||
[null, 3, 8, 8, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1279600000]
|
||||
],
|
||||
[
|
||||
[345000000, 1279600000],
|
||||
[386200000, 1286700000]
|
||||
],
|
||||
[
|
||||
[354690000, 1286700000],
|
||||
[386200000, 1320035000]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],
|
||||
[null, 3, 9, 9, [
|
||||
[
|
||||
[330000000, 1246050000],
|
||||
[386200000, 1279600000]
|
||||
],
|
||||
[
|
||||
[340000000, 1279600000],
|
||||
[386200000, 1286700000]
|
||||
],
|
||||
[
|
||||
[348900000, 1286700000],
|
||||
[386200000, 1302000000]
|
||||
],
|
||||
[
|
||||
[368300000, 1302000000],
|
||||
[386200000, 1320035000]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],
|
||||
[null, 3, 10, null, [
|
||||
[
|
||||
[329890840, 1246055600],
|
||||
[386930130, 1284960940]
|
||||
],
|
||||
[
|
||||
[344646740, 1284960940],
|
||||
[386930130, 1288476560]
|
||||
],
|
||||
[
|
||||
[350277470, 1288476560],
|
||||
[386930130, 1310531620]
|
||||
],
|
||||
[
|
||||
[370277730, 1310531620],
|
||||
[386930130, 1320034790]
|
||||
]
|
||||
], ["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]]
|
||||
],
|
||||
[
|
||||
["http://cbk0.googleapis.com/cbk?"]
|
||||
],
|
||||
[
|
||||
["http://khmdb0.googleapis.com/kh?v=53\u0026hl=en-US\u0026"],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"53"
|
||||
],
|
||||
[
|
||||
[
|
||||
"http://mt0.googleapis.com/mapslt?hl=en-US\u0026"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"gmapcache/googleapis/mapslt/ft?hl=en-US\u0026"
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
"http://mt0.googleapis.com/vt?hl=en-US\u0026"
|
||||
]
|
||||
]
|
||||
], [
|
||||
"en-US",
|
||||
"US",
|
||||
null,
|
||||
0,
|
||||
null,
|
||||
null,
|
||||
"gmapcache/gstatic/",
|
||||
"http://csi.gstatic.com",
|
||||
"https://maps.googleapis.com",
|
||||
"gmapcache/googleapis"
|
||||
], [
|
||||
"http://maps.gstatic.com/intl/en_us/mapfiles/api-3/8/5",
|
||||
"3.8.5"
|
||||
], [275480768],
|
||||
1.0, null, null, null, null, 0, "", null, null, 0,
|
||||
"http://khm.googleapis.com/mz?v=107\u0026",
|
||||
null,
|
||||
"https://earthbuilder.google.com",
|
||||
"https://earthbuilder.googleapis.com"
|
||||
], loadScriptTime);
|
||||
};
|
||||
|
||||
var loadScriptTime = (new Date).getTime();
|
||||
getScript("gmapcache/main.js");
|
||||
getScript("gmapcache/components.js");
|
||||
})();
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
window.google = window.google || {};
|
||||
google.maps = google.maps || {};
|
||||
(function() {
|
||||
|
||||
function getScript(src) {
|
||||
document.write('<' + 'script src="' + src + '"' +
|
||||
' type="text/javascript"><' + '/script>');
|
||||
}
|
||||
|
||||
var modules = google.maps.modules = {};
|
||||
google.maps.__gjsload__ = function(name, text) {
|
||||
modules[name] = text;
|
||||
};
|
||||
|
||||
google.maps.Load = function(apiLoad) {
|
||||
delete google.maps.Load;
|
||||
apiLoad([null,[[["http://mt0.googleapis.com/vt?lyrs=m@174000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=m@174000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"m@174000000"],[["http://khm0.googleapis.com/kh?v=107\u0026hl=en-US\u0026","http://khm1.googleapis.com/kh?v=107\u0026hl=en-US\u0026"],null,null,null,1,"107"],[["http://mt0.googleapis.com/vt?lyrs=h@174000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=h@174000000\u0026src=api\u0026hl=en-US\u0026"],null,null,"imgtp=png32\u0026",null,"h@174000000"],[["http://mt0.googleapis.com/vt?lyrs=t@128,r@174000000\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=t@128,r@174000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"t@128,r@174000000"],null,[[null,0,7,7,[[[330000000,1246050000],[386200000,1293600000]],[[366500000,1297000000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,0,8,8,[[[330000000,1246050000],[386200000,1279600000]],[[345000000,1279600000],[386200000,1286700000]],[[354690000,1286700000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,0,9,9,[[[330000000,1246050000],[386200000,1279600000]],[[340000000,1279600000],[386200000,1286700000]],[[348900000,1286700000],[386200000,1302000000]],[[368300000,1302000000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,0,10,19,[[[329890840,1246055600],[386930130,1284960940]],[[344646740,1284960940],[386930130,1288476560]],[[350277470,1288476560],[386930130,1310531620]],[[370277730,1310531620],[386930130,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.15\u0026hl=en-US\u0026"]],[null,3,7,7,[[[330000000,1246050000],[386200000,1293600000]],[[366500000,1297000000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,8,8,[[[330000000,1246050000],[386200000,1279600000]],[[345000000,1279600000],[386200000,1286700000]],[[354690000,1286700000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,9,9,[[[330000000,1246050000],[386200000,1279600000]],[[340000000,1279600000],[386200000,1286700000]],[[348900000,1286700000],[386200000,1302000000]],[[368300000,1302000000],[386200000,1320035000]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,10,null,[[[329890840,1246055600],[386930130,1284960940]],[[344646740,1284960940],[386930130,1288476560]],[[350277470,1288476560],[386930130,1310531620]],[[370277730,1310531620],[386930130,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]]],[["http://cbk0.googleapis.com/cbk?","http://cbk1.googleapis.com/cbk?"]],[["http://khmdb0.googleapis.com/kh?v=53\u0026hl=en-US\u0026","http://khmdb1.googleapis.com/kh?v=53\u0026hl=en-US\u0026"],null,null,null,null,"53"],[["http://mt0.googleapis.com/mapslt?hl=en-US\u0026","http://mt1.googleapis.com/mapslt?hl=en-US\u0026"]],[["http://mt0.googleapis.com/mapslt/ft?hl=en-US\u0026","http://mt1.googleapis.com/mapslt/ft?hl=en-US\u0026"]],[["http://mt0.googleapis.com/vt?hl=en-US\u0026","http://mt1.googleapis.com/vt?hl=en-US\u0026"]]],["en-US","US",null,0,null,null,"http://maps.gstatic.com/mapfiles/","http://csi.gstatic.com","https://maps.googleapis.com","http://maps.googleapis.com"],["http://maps.gstatic.com/intl/en_us/mapfiles/api-3/8/5","3.8.5"],[275480768],1.0,null,null,null,null,0,"",null,null,0,"http://khm.googleapis.com/mz?v=107\u0026",null,"https://earthbuilder.google.com","https://earthbuilder.googleapis.com"], loadScriptTime);
|
||||
};
|
||||
var loadScriptTime = (new Date).getTime();
|
||||
getScript("http://maps.gstatic.com/intl/en_us/mapfiles/api-3/8/5/main.js");
|
||||
})();
|
||||
|
After Width: | Height: | Size: 87 B |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 326 B |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 326 B |
|
After Width: | Height: | Size: 620 B |
|
After Width: | Height: | Size: 574 B |
|
After Width: | Height: | Size: 95 B |
|
|
@ -0,0 +1,44 @@
|
|||
(function(){function aa(a){throw a;}var ca=void 0,i=!0,j=null,k=!1,da=encodeURIComponent,m=window,ea=Object,fa=Infinity,n=document,o=Math,ga=Array,ha=screen,ia=navigator,ja=Error,ka=String,la=RegExp;function ma(a,b){return a.onload=b}function na(a,b){return a.center_changed=b}function oa(a,b){return a.isEmpty=b}function pa(a,b){return a.version=b}function ra(a,b){return a.width=b}function sa(a,b){return a.extend=b}function ta(a,b){return a.onerror=b}function ua(a,b){return a.map_changed=b}
|
||||
function va(a,b){return a.visible_changed=b}function wa(a,b){return a.minZoom=b}function xa(a,b){return a.remove=b}function ya(a,b){return a.equals=b}function za(a,b){return a.setZoom=b}function Aa(a,b){return a.tileSize=b}function Ca(a,b){return a.getDetails=b}function Da(a,b){return a.getBounds=b}function Ea(a,b){return a.changed=b}function Fa(a,b){return a.clear=b}function Ga(a,b){return a.name=b}function Ha(a,b){return a.overflow=b}function Ia(a,b){return a.getTile=b}
|
||||
function Ja(a,b){return a.toString=b}function Ka(a,b){return a.length=b}function La(a,b){return a.getZoom=b}function Ma(a,b){return a.size=b}function Na(a,b){return a.search=b}function Oa(a,b){return a.releaseTile=b}function Pa(a,b){return a.maxZoom=b}function Qa(a,b){return a.getUrl=b}function Ra(a,b){return a.contains=b}function Sa(a,b){return a.height=b}function Ta(a,b){return a.zoom=b}
|
||||
var Ua="appendChild",p="push",Va="isEmpty",Xa="deviceXDPI",r="trigger",u="bindTo",Ya="shift",Za="exec",$a="clearTimeout",ab="fromLatLngToPoint",v="width",w="round",bb="slice",cb="replace",db="nodeType",eb="ceil",fb="floor",gb="getVisible",hb="offsetWidth",ib="concat",jb="removeListener",kb="extend",lb="charAt",mb="unbind",nb="preventDefault",ob="getNorthEast",pb="minZoom",rb="indexOf",sb="fromCharCode",tb="remove",ub="equals",vb="createElement",wb="atan2",xb="firstChild",yb="forEach",zb="setZoom",
|
||||
Ab="sqrt",x="setAttribute",Bb="setValues",Cb="tileSize",Eb="toUrlValue",Fb="addListenerOnce",Gb="removeAt",Hb="changed",y="type",Ib="getTileUrl",Jb="clearInstanceListeners",A="bind",Kb="name",Lb="getTime",Mb="getElementsByTagName",Nb="substr",Ob="getTile",Pb="notify",Qb="toString",Rb="setVisible",B="length",Sb="onRemove",C="prototype",Tb="setTimeout",Vb="intersects",Wb="document",Xb="split",Yb="opacity",E="forward",Zb="getLength",$b="getSouthWest",ac="getAt",bc="message",cc="hasOwnProperty",F="style",
|
||||
G="addListener",dc="removeChild",ec="insertAt",fc="target",gc="releaseTile",hc="call",ic="getMap",jc="atan",kc="random",lc="returnValue",mc="charCodeAt",nc="getArray",oc="href",pc="maxZoom",qc="console",rc="addDomListener",sc="setMap",tc="contains",uc="apply",vc="setAt",wc="tagName",xc="parentNode",yc="asin",zc="label",H="height",Ac="splice",Bc="offsetHeight",Cc="join",Dc="toLowerCase",Ec="ERROR",Fc="INVALID_REQUEST",Hc="MAX_DIMENSIONS_EXCEEDED",Ic="MAX_ELEMENTS_EXCEEDED",Jc="MAX_WAYPOINTS_EXCEEDED",
|
||||
Kc="OK",Lc="OVER_QUERY_LIMIT",Mc="REQUEST_DENIED",Nc="UNKNOWN_ERROR",Oc="ZERO_RESULTS";function Pc(){return function(){}}function Qc(a){return function(){return this[a]}}var I,Rc=[];function Sc(a){return function(){return Rc[a][uc](this,arguments)}}var Tc={ROADMAP:"roadmap",SATELLITE:"satellite",HYBRID:"hybrid",TERRAIN:"terrain"};var Uc={TOP_LEFT:1,TOP_CENTER:2,TOP:2,TOP_RIGHT:3,LEFT_CENTER:4,LEFT_TOP:5,LEFT:5,LEFT_BOTTOM:6,RIGHT_TOP:7,RIGHT:7,RIGHT_CENTER:8,RIGHT_BOTTOM:9,BOTTOM_LEFT:10,BOTTOM_CENTER:11,BOTTOM:11,BOTTOM_RIGHT:12};var Vc=this;o[fb](2147483648*o[kc]())[Qb](36);function Wc(a){var b=a;if(a instanceof ga)b=[],Xc(b,a);else if(a instanceof ea){var c=b={},d;for(d in c)c[cc](d)&&delete c[d];for(var e in a)a[cc](e)&&(c[e]=Wc(a[e]))}return b}function Xc(a,b){Ka(a,b[B]);for(var c=0;c<b[B];++c)a[c]=Wc(b[c])}function Yc(a,b){a[b]||(a[b]=[]);return a[b]}function Zc(a,b){return a[b]?a[b][B]:0};var $c=la("'","g");function ad(a,b){var c=[];bd(a,b,c);return c[Cc]("&")[cb]($c,"%27")}function bd(a,b,c){for(var d=1;d<b.Y[B];++d){var e=b.Y[d],f=a[d+b.$];if(f!=j)if(3==e[zc])for(var g=0;g<f[B];++g)cd(f[g],d,e,c);else cd(f,d,e,c)}}function cd(a,b,c,d){if("m"==c[y]){var e=d[B];bd(a,c.V,d);d[Ac](e,0,[b,"m",d[B]-e][Cc](""))}else"b"==c[y]&&(a=a?"1":"0"),d[p]([b,c[y],da(a)][Cc](""))};function dd(a){this.l=a||[]}function ed(a){this.l=a||[]}var fd=new dd,gd=new dd;var hd={METRIC:0,IMPERIAL:1},id={DRIVING:"DRIVING",WALKING:"WALKING",BICYCLING:"BICYCLING"};var jd=o.abs,kd=o[eb],ld=o[fb],md=o.max,nd=o.min,od=o[w],pd="number",qd="object",rd="string",sd="undefined";function J(a){return a?a[B]:0}function td(){return i}function ud(a,b){for(var c=0,d=J(a);c<d;++c)if(a[c]===b)return i;return k}function vd(a,b){wd(b,function(c){a[c]=b[c]})}function xd(a){for(var b in a)return k;return i}function L(a,b){function c(){}c.prototype=b[C];a.prototype=new c}function yd(a,b,c){b!=j&&(a=o.max(a,b));c!=j&&(a=o.min(a,c));return a}
|
||||
function zd(a,b,c){return((a-b)%(c-b)+(c-b))%(c-b)+b}function Ad(a,b){return 1.0E-9>=o.abs(a-b)}function M(a){return a*(o.PI/180)}function Bd(a){return a/(o.PI/180)}function Cd(a,b){for(var c=Dd(ca,J(b)),d=Dd(ca,0);d<c;++d)a[p](b[d])}function Ed(a){return typeof a!=sd}function N(a){return typeof a==pd}function Fd(a){return typeof a==qd}function Hd(){}function Dd(a,b){return a==j?b:a}function Id(a){a[cc]("_instance")||(a._instance=new a);return a._instance}function Jd(a){return typeof a==rd}
|
||||
function O(a,b){if(a)for(var c=0,d=J(a);c<d;++c)b(a[c],c)}function wd(a,b){for(var c in a)b(c,a[c])}function P(a,b,c){if(2<arguments[B]){var d=Kd(arguments,2);return function(){return b[uc](a||this,0<arguments[B]?d[ib](Ld(arguments)):d)}}return function(){return b[uc](a||this,arguments)}}function Md(a,b,c){var d=Kd(arguments,2);return function(){return b[uc](a,d)}}function Kd(a,b,c){return Function[C][hc][uc](ga[C][bb],arguments)}function Ld(a){return ga[C][bb][hc](a,0)}
|
||||
function Nd(){return(new Date)[Lb]()}function Od(a,b){if(a)return function(){--a||b()};b();return Hd}function Pd(a){return a!=j&&typeof a==qd&&typeof a[B]==pd}function Qd(a){var b="";O(arguments,function(a){J(a)&&"/"==a[0]?b=a:(b&&"/"!=b[J(b)-1]&&(b+="/"),b+=a)});return b}function Rd(a){a=a||m.event;Sd(a);Td(a);return k}function Sd(a){a.cancelBubble=i;a.stopPropagation&&a.stopPropagation()}function Td(a){a.returnValue=k;a[nb]&&a[nb]()}
|
||||
function Ud(a){a.returnValue=a[lc]?"true":"";typeof a[lc]!=rd?a.handled=i:a.returnValue="true"}function Vd(a){return function(){var b=this,c=arguments;Wd(function(){a[uc](b,c)})}}function Wd(a){return m[Tb](a,0)}function Xd(a,b){var c=a[Mb]("head")[0],d=a[vb]("script");d[x]("type","text/javascript");d[x]("charset","UTF-8");d[x]("src",b);c[Ua](d)};function Q(a,b,c){a-=0;b-=0;c||(a=yd(a,-90,90),b=zd(b,-180,180));this.Ta=a;this.Ua=b}I=Q[C];Ja(I,function(){return"("+this.lat()+", "+this.lng()+")"});ya(I,function(a){return!a?k:Ad(this.lat(),a.lat())&&Ad(this.lng(),a.lng())});I.lat=Qc("Ta");I.lng=Qc("Ua");function Yd(a,b){var c=o.pow(10,b);return o[w](a*c)/c}I.toUrlValue=function(a){a=Ed(a)?a:6;return Yd(this.lat(),a)+","+Yd(this.lng(),a)};function Zd(a,b){-180==a&&180!=b&&(a=180);-180==b&&180!=a&&(b=180);this.b=a;this.e=b}function $d(a){return a.b>a.e}I=Zd[C];oa(I,function(){return 360==this.b-this.e});I.intersects=function(a){var b=this.b,c=this.e;return this[Va]()||a[Va]()?k:$d(this)?$d(a)||a.b<=this.e||a.e>=b:$d(a)?a.b<=c||a.e>=b:a.b<=c&&a.e>=b};Ra(I,function(a){-180==a&&(a=180);var b=this.b,c=this.e;return $d(this)?(a>=b||a<=c)&&!this[Va]():a>=b&&a<=c});
|
||||
sa(I,function(a){this[tc](a)||(this[Va]()?this.b=this.e=a:ae(a,this.b)<ae(this.e,a)?this.b=a:this.e=a)});ya(I,function(a){return 1.0E-9>=o.abs(a.b-this.b)%360+o.abs(be(a)-be(this))});function ae(a,b){var c=b-a;return 0<=c?c:b+180-(a-180)}function be(a){return a[Va]()?0:$d(a)?360-(a.b-a.e):a.e-a.b}I.ob=function(){var a=(this.b+this.e)/2;$d(this)&&(a=zd(a+180,-180,180));return a};function ce(a,b){this.b=a;this.e=b}I=ce[C];oa(I,function(){return this.b>this.e});
|
||||
I.intersects=function(a){var b=this.b,c=this.e;return b<=a.b?a.b<=c&&a.b<=a.e:b<=a.e&&b<=c};Ra(I,function(a){return a>=this.b&&a<=this.e});sa(I,function(a){this[Va]()?this.e=this.b=a:a<this.b?this.b=a:a>this.e&&(this.e=a)});ya(I,function(a){return this[Va]()?a[Va]():1.0E-9>=o.abs(a.b-this.b)+o.abs(this.e-a.e)});I.ob=function(){return(this.e+this.b)/2};function de(a,b){a&&!b&&(b=a);if(a){var c=yd(a.lat(),-90,90),d=yd(b.lat(),-90,90);this.aa=new ce(c,d);c=a.lng();d=b.lng();360<=d-c?this.ba=new Zd(-180,180):(c=zd(c,-180,180),d=zd(d,-180,180),this.ba=new Zd(c,d))}else this.aa=new ce(1,-1),this.ba=new Zd(180,-180)}I=de[C];I.getCenter=function(){return new Q(this.aa.ob(),this.ba.ob())};Ja(I,function(){return"("+this[$b]()+", "+this[ob]()+")"});I.toUrlValue=function(a){var b=this[$b](),c=this[ob]();return[b[Eb](a),c[Eb](a)][Cc]()};
|
||||
ya(I,function(a){return!a?k:this.aa[ub](a.aa)&&this.ba[ub](a.ba)});Ra(I,function(a){return this.aa[tc](a.lat())&&this.ba[tc](a.lng())});I.intersects=function(a){return this.aa[Vb](a.aa)&&this.ba[Vb](a.ba)};I.Va=Sc(4);sa(I,function(a){this.aa[kb](a.lat());this.ba[kb](a.lng());return this});I.union=function(a){this[kb](a[$b]());this[kb](a[ob]());return this};I.getSouthWest=function(){return new Q(this.aa.b,this.ba.b,i)};I.getNorthEast=function(){return new Q(this.aa.e,this.ba.e,i)};
|
||||
I.toSpan=function(){return new Q(this.aa[Va]()?0:this.aa.e-this.aa.b,be(this.ba),i)};oa(I,function(){return this.aa[Va]()||this.ba[Va]()});function ee(a,b){return function(c){if(!b)for(var d in c)a[d]||aa(ja("Unknown property <"+(d+">")));var e;for(d in a)try{var f=c[d];if(!a[d](f)){e="Invalid value for property <"+(d+(">: "+f));break}}catch(g){e="Error in property <"+(d+(">: ("+(g[bc]+")")));break}e&&aa(ja(e));return i}}function fe(a){return a==j}function ge(a){try{return!!a.cloneNode}catch(b){return k}}function he(a,b){var c=Ed(b)?b:i;return function(b){return b==j&&c||b instanceof a}}
|
||||
function ie(a){return function(b){for(var c in a)if(a[c]==b)return i;return k}}function je(a){return function(b){Pd(b)||aa(ja("Value is not an array"));var c;O(b,function(b,e){try{a(b)||(c="Invalid value at position "+(e+(": "+b)))}catch(f){c="Error in element at position "+(e+(": ("+(f[bc]+")")))}});c&&aa(ja(c));return i}}
|
||||
function ke(a){var b=arguments,c=b[B];return function(){for(var a=[],e=0;e<c;++e)try{if(b[e][uc](this,arguments))return i}catch(f){a[p](f[bc])}J(a)&&aa(ja("Invalid value: "+(arguments[0]+(" ("+(a[Cc](" | ")+")")))));return k}}var le=ke(N,fe),me=ke(Jd,fe),ne=ke(function(a){return a===!!a},fe),oe=ke(he(Q,k),Jd),pe=je(oe);var qe=ee({routes:je(ee({},i))},i);var re="geometry",se="drawing_impl",te="geocoder",ue="infowindow",ve="layers",we="map",xe="marker",ye="maxzoom",ze="onion",Ae="places_impl",Be="poly",Ce="search_impl",De="stats",Ee="usage";var Fe={main:[],common:["main"],util:["common"],adsense:["main"],adsense_impl:["util"],controls:["util"]};Fe.directions=["util",re];Fe.distance_matrix=["util"];Fe.drawing=["main"];Fe[se]=["controls"];Fe.visualization=["main"];Fe.visualization_impl=["util"];Fe.earthbuilder_impl=[ze];Fe.elevation=["util",re];Fe.buzz=["main"];Fe[te]=["util"];Fe[re]=["main"];Fe[ue]=["util"];Fe.kml=[ze,"util",we];Fe[ve]=[we];Fe[we]=["common"];Fe[xe]=["util"];Fe[ye]=["util"];Fe[ze]=["util",we];Fe.overlay=["common"];
|
||||
Fe.panoramio=["main"];Fe.places=["main"];Fe[Ae]=["controls"];Fe[Be]=["util",we];Na(Fe,["main"]);Fe[Ce]=[ze];Fe[De]=["util"];Fe.streetview=["util",re];Fe[Ee]=["util"];Fe.weather=["main"];Fe.weather_impl=[ze];function Ge(a,b){this.e=a;this.n={};this.d=[];this.b=j;this.f=(this.j=!!b.match(/^https?:\/\/[^:\/]*\/intl/))?b[cb]("/intl","/cat_js/intl"):b}function He(a,b){a.n[b]||(a.j?(a.d[p](b),a.b||(a.b=m[Tb](P(a,a.A),0))):Xd(a.e,Qd(a.f,b)+".js"))}Ge[C].A=function(){var a=Qd(this.f,"%7B"+this.d[Cc](",")+"%7D.js");Ka(this.d,0);m[$a](this.b);this.b=j;Xd(this.e,a)};var Ie="click",Je="contextmenu",Ke="forceredraw",Le="staticmaploaded",Me="panby",Ne="panto",Oe="insert",Pe="remove";var R={};R.df=function(){return this}().navigator&&-1!=ia.userAgent[Dc]()[rb]("msie");R.Vc={};R.addListener=function(a,b,c){return new Qe(a,b,c,0)};R.qe=function(a,b){var c=a.__e3_,c=c&&c[b];return!!c&&!xd(c)};R.removeListener=function(a){a[tb]()};R.clearListeners=function(a,b){wd(Re(a,b),function(a,b){b&&b[tb]()})};R.clearInstanceListeners=function(a){wd(Re(a),function(a,c){c&&c[tb]()})};function Se(a,b){a.__e3_||(a.__e3_={});var c=a.__e3_;c[b]||(c[b]={});return c[b]}
|
||||
function Re(a,b){var c,d=a.__e3_||{};if(b)c=d[b]||{};else{c={};for(var e in d)vd(c,d[e])}return c}R.trigger=function(a,b,c){if(R.qe(a,b)){var d=Kd(arguments,2),e=Re(a,b),f;for(f in e){var g=e[f];g&&g.d[uc](g.b,d)}}};R.addDomListener=function(a,b,c,d){if(a.addEventListener){var e=d?4:1;a.addEventListener(b,c,d);c=new Qe(a,b,c,e)}else a.attachEvent?(c=new Qe(a,b,c,2),a.attachEvent("on"+b,Te(c))):(a["on"+b]=c,c=new Qe(a,b,c,3));return c};
|
||||
R.addDomListenerOnce=function(a,b,c,d){var e=R[rc](a,b,function(){e[tb]();return c[uc](this,arguments)},d);return e};R.R=function(a,b,c,d){c=Ue(c,d);return R[rc](a,b,c)};function Ue(a,b){return function(c){return b[hc](a,c,this)}}R.bind=function(a,b,c,d){return R[G](a,b,P(c,d))};R.addListenerOnce=function(a,b,c){var d=R[G](a,b,function(){d[tb]();return c[uc](this,arguments)});return d};R.forward=function(a,b,c){return R[G](a,b,Ve(b,c))};R.va=function(a,b,c,d){return R[rc](a,b,Ve(b,c,!d))};
|
||||
R.wg=function(){var a=R.Vc,b;for(b in a)a[b][tb]();R.Vc={};(a=Vc.CollectGarbage)&&a()};function Ve(a,b,c){return function(d){var e=[b,a];Cd(e,arguments);R[r][uc](this,e);c&&Ud[uc](j,arguments)}}function Qe(a,b,c,d){this.b=a;this.e=b;this.d=c;this.f=j;this.j=d;this.id=++We;Se(a,b)[this.id]=this;R.df&&"tagName"in a&&(R.Vc[this.id]=this)}var We=0;
|
||||
function Te(a){return a.f=function(b){b||(b=m.event);if(b&&!b[fc])try{b.target=b.srcElement}catch(c){}var d=a.d[uc](a.b,[b]);return b&&Ie==b[y]&&(b=b.srcElement)&&"A"==b[wc]&&"javascript:void(0)"==b[oc]?k:d}}
|
||||
xa(Qe[C],function(){if(this.b){switch(this.j){case 1:this.b.removeEventListener(this.e,this.d,k);break;case 4:this.b.removeEventListener(this.e,this.d,i);break;case 2:this.b.detachEvent("on"+this.e,this.f);break;case 3:this.b["on"+this.e]=j}delete Se(this.b,this.e)[this.id];this.f=this.d=this.b=j;delete R.Vc[this.id]}});function Xe(a,b){this.e=a;this.b=b;this.d=Ye(b)}function Ye(a){var b={};wd(a,function(a,d){O(d,function(d){b[d]||(b[d]=[]);b[d][p](a)})});return b}function Ze(){this.b=[]}Ze[C].Ab=function(a,b){var c=new Ge(n,a),d=this.e=new Xe(c,b);O(this.b,function(a){a(d)});Ka(this.b,0)};Ze[C].Vd=function(a){this.e?a(this.e):this.b[p](a)};function $e(){this.f={};this.b={};this.j={};this.e={};this.d=new Ze}$e[C].Ab=function(a,b){this.d.Ab(a,b)};
|
||||
function af(a,b){a.f[b]||(a.f[b]=i,a.d.Vd(function(c){O(c.b[b],function(b){a.e[b]||af(a,b)});He(c.e,b)}))}function bf(a,b,c){a.e[b]=c;O(a.b[b],function(a){a(c)});delete a.b[b]}$e[C].Dc=function(a,b){var c=this,d=c.j;c.d.Vd(function(e){var f=e.b[a]||[],g=e.d[a]||[],h=d[a]=Od(f[B],function(){delete d[a];cf[f[0]](b);O(g,function(a){d[a]&&d[a]()})});O(f,function(a){c.e[a]&&h()})})};function df(a,b){Id($e).Dc(a,b)}var cf={},ef=Vc.google.maps;ef.__gjsload__=df;wd(ef.modules,df);delete ef.modules;function S(a,b,c){var d=Id($e);if(d.e[a])b(d.e[a]);else{var e=d.b;e[a]||(e[a]=[]);e[a][p](b);c||af(d,a)}}function ff(a,b){bf(Id($e),a,b)}function gf(a){var b=Fe;Id($e).Ab(a,b)}function hf(a){var b=Yc(jf.l,12),c=[],d=Od(J(b),function(){a[uc](j,c)});O(b,function(a,b){S(a,function(a){c[b]=a;d()},i)})};function kf(){}kf[C].route=function(a,b){S("directions",function(c){c.Vg(a,b,i)})};function T(a,b){this.x=a;this.y=b}var lf=new T(0,0);Ja(T[C],function(){return"("+this.x+", "+this.y+")"});ya(T[C],function(a){return!a?k:a.x==this.x&&a.y==this.y});T[C].round=function(){this.x=od(this.x);this.y=od(this.y)};T[C].Zc=Sc(0);function U(a,b,c,d){ra(this,a);Sa(this,b);this.B=c||"px";this.n=d||"px"}var mf=new U(0,0);Ja(U[C],function(){return"("+this[v]+", "+this[H]+")"});ya(U[C],function(a){return!a?k:a[v]==this[v]&&a[H]==this[H]});function nf(a){this.F=this.D=fa;this.G=this.J=-fa;O(a,P(this,this[kb]))}function of(a,b,c,d){var e=new nf;e.F=a;e.D=b;e.G=c;e.J=d;return e}I=nf[C];oa(I,function(){return!(this.F<this.G&&this.D<this.J)});sa(I,function(a){a&&(this.F=nd(this.F,a.x),this.G=md(this.G,a.x),this.D=nd(this.D,a.y),this.J=md(this.J,a.y))});I.getCenter=function(){return new T((this.F+this.G)/2,(this.D+this.J)/2)};ya(I,function(a){return!a?k:this.F==a.F&&this.D==a.D&&this.G==a.G&&this.J==a.J});I.Va=Sc(3);
|
||||
var pf=of(-fa,-fa,fa,fa),qf=of(0,0,0,0);function V(){}I=V[C];I.get=function(a){var b=rf(this)[a];if(b){var a=b.tb,b=b.Qe,c="get"+sf(a);return b[c]?b[c]():b.get(a)}return this[a]};I.set=function(a,b){var c=rf(this);if(c[cc](a)){var d=c[a],c=d.tb,d=d.Qe,e="set"+sf(c);if(d[e])d[e](b);else d.set(c,b)}else this[a]=b,tf(this,a)};I.notify=function(a){var b=rf(this);b[cc](a)?(a=b[a],a.Qe[Pb](a.tb)):tf(this,a)};I.setValues=function(a){for(var b in a){var c=a[b],d="set"+sf(b);if(this[d])this[d](c);else this.set(b,c)}};I.setOptions=V[C][Bb];
|
||||
Ea(I,Pc());function tf(a,b){var c=b+"_changed";if(a[c])a[c]();else a[Hb](b);R[r](a,b[Dc]()+"_changed")}var uf={};function sf(a){return uf[a]||(uf[a]=a[Nb](0,1).toUpperCase()+a[Nb](1))}function vf(a,b,c,d,e){rf(a)[b]={Qe:c,tb:d};e||tf(a,b)}function rf(a){a.gm_accessors_||(a.gm_accessors_={});return a.gm_accessors_}function wf(a){a.gm_bindings_||(a.gm_bindings_={});return a.gm_bindings_}
|
||||
V[C].bindTo=function(a,b,c,d){var c=c||a,e=this;e[mb](a);wf(e)[a]=R[G](b,c[Dc]()+"_changed",function(){tf(e,a)});vf(e,a,b,c,d)};V[C].unbind=function(a){var b=wf(this)[a];b&&(delete wf(this)[a],R[jb](b),b=this.get(a),delete rf(this)[a],this[a]=b)};V[C].unbindAll=function(){var a=[];wd(wf(this),function(b){a[p](b)});O(a,P(this,this[mb]))};var xf=V;function yf(a,b,c){this.heading=a;this.pitch=yd(b,-90,90);Ta(this,o.max(0,c))}var zf=ee({zoom:N,heading:N,pitch:N});function Af(a){if(!Fd(a)||!a)return""+a;a.__gm_id||(a.__gm_id=++Bf);return""+a.__gm_id}var Bf=0;function Cf(){this.ua={}}Cf[C].X=function(a){var b=this.ua,c=Af(a);b[c]||(b[c]=a,R[r](this,Oe,a),this.b&&this.b(a))};xa(Cf[C],function(a){var b=this.ua,c=Af(a);b[c]&&(delete b[c],R[r](this,Pe,a),this[Sb]&&this[Sb](a))});Ra(Cf[C],function(a){return!!this.ua[Af(a)]});Cf[C].forEach=function(a){var b=this.ua,c;for(c in b)a[hc](this,b[c])};function Df(a){return function(){return this.get(a)}}function Ef(a,b){return b?function(c){b(c)||aa(ja("Invalid value for property <"+(a+(">: "+c))));this.set(a,c)}:function(b){this.set(a,b)}}function Ff(a,b){wd(b,function(b,d){var e=Df(b);a["get"+sf(b)]=e;d&&(e=Ef(b,d),a["set"+sf(b)]=e)})};var Gf="set_at",Hf="insert_at",If="remove_at";function Jf(a){this.b=a||[];Kf(this)}L(Jf,V);I=Jf[C];I.getAt=function(a){return this.b[a]};I.forEach=function(a){for(var b=0,c=this.b[B];b<c;++b)a(this.b[b],b)};I.setAt=function(a,b){var c=this.b[a],d=this.b[B];if(a<d)this.b[a]=b,R[r](this,Gf,a,c),this.gc&&this.gc(a,c);else{for(c=d;c<a;++c)this[ec](c,ca);this[ec](a,b)}};I.insertAt=function(a,b){this.b[Ac](a,0,b);Kf(this);R[r](this,Hf,a);this.ec&&this.ec(a)};
|
||||
I.removeAt=function(a){var b=this.b[a];this.b[Ac](a,1);Kf(this);R[r](this,If,a,b);this.fc&&this.fc(a,b);return b};I.push=function(a){this[ec](this.b[B],a);return this.b[B]};I.pop=function(){return this[Gb](this.b[B]-1)};I.getArray=Qc("b");function Kf(a){a.set("length",a.b[B])}Fa(I,function(){for(;this.get("length");)this.pop()});Ff(Jf[C],{length:ca});function Lf(){}L(Lf,V);var Mf=V;function Nf(a,b){this.b=a||0;this.e=b||0}Nf[C].heading=Qc("b");Nf[C].Ba=Sc(8);var Of=new Nf;function Pf(){}L(Pf,V);Pf[C].set=function(a,b){b!=j&&(!b||!N(b[pc])||!b[Cb]||!b[Cb][v]||!b[Cb][H]||!b[Ob]||!b[Ob][uc])&&aa(ja("Expected value implementing google.maps.MapType"));return V[C].set[uc](this,arguments)};function Qf(){this.f=[];this.e=this.b=this.d=j};function Rf(){}L(Rf,V);var Sf=[];function Tf(a){this[Bb](a)}L(Tf,V);Ff(Tf[C],{content:ke(fe,Jd,ge),position:he(Q),size:he(U),map:ke(he(Rf),he(Lf)),anchor:he(V),zIndex:le});function Uf(a){this[Bb](a);m[Tb](function(){S(ue,Hd)},100)}L(Uf,Tf);Uf[C].open=function(a,b){this.set("anchor",b);this.set("map",a)};Uf[C].close=function(){this.set("map",j)};Ea(Uf[C],function(a){var b=this;S(ue,function(c){c[Hb](b,a)})});function Vf(a,b,c,d,e){this.url=a;Ma(this,b||e);this.origin=c;this.anchor=d;this.scaledSize=e};function Wf(a){this[Bb](a)}L(Wf,V);Ea(Wf[C],function(a){if("map"==a||"panel"==a){var b=this;S("directions",function(c){c.Pk(b,a)})}});Ff(Wf[C],{directions:qe,map:he(Rf),panel:ke(ge,fe),routeIndex:le});function Xf(){}Xf[C].getDistanceMatrix=function(a,b){S("distance_matrix",function(c){c.b(a,b)})};function Yf(){}Yf[C].getElevationAlongPath=function(a,b){S("elevation",function(c){c.b(a,b)})};Yf[C].getElevationForLocations=function(a,b){S("elevation",function(c){c.e(a,b)})};var Zf,$f;function ag(){S(te,Hd)}ag[C].geocode=function(a,b){S(te,function(c){c.geocode(a,b)})};function bg(a,b,c){this.e=j;this.set("url",a);this.set("bounds",b);this[Bb](c)}L(bg,V);ua(bg[C],function(){var a=this,b=a.e,c=a.e=a.get("map");b!=c&&(b&&b.d[tb](a),c&&c.d.X(a),S("kml",function(b){b.nj(a,a.get("map"))}))});Ff(bg[C],{map:he(Rf),url:j,bounds:j,opacity:le});function cg(a,b){this.set("url",a);this[Bb](b)}L(cg,V);ua(cg[C],function(){var a=this;S("kml",function(b){b.Kk(a)})});Ff(cg[C],{map:he(Rf),defaultViewport:j,metadata:j,status:j,url:j});var dg={UNKNOWN:"UNKNOWN",OK:Kc,INVALID_REQUEST:Fc,DOCUMENT_NOT_FOUND:"DOCUMENT_NOT_FOUND",FETCH_ERROR:"FETCH_ERROR",INVALID_DOCUMENT:"INVALID_DOCUMENT",DOCUMENT_TOO_LARGE:"DOCUMENT_TOO_LARGE",LIMITS_EXCEEDED:"LIMITS_EXECEEDED",TIMED_OUT:"TIMED_OUT"};function eg(){S(ve,Hd)}L(eg,V);ua(eg[C],function(){var a=this;S(ve,function(b){b.b(a)})});Ff(eg[C],{map:he(Rf)});function fg(){S(ve,Hd)}L(fg,V);ua(fg[C],function(){var a=this;S(ve,function(b){b.e(a)})});Ff(fg[C],{map:he(Rf)});function gg(a){this.l=a||[]}function hg(a){this.l=a||[]}var ig=new gg,jg=new gg,kg=new hg;function lg(a){this.l=a||[]}function mg(a){this.l=a||[]}function ng(a){this.l=a||[]}function og(a){this.l=a||[]}function pg(a){this.l=a||[]}function qg(a){this.l=a||[]}Qa(lg[C],function(a){return Yc(this.l,0)[a]});var rg=new lg,sg=new lg,tg=new lg,ug=new lg,vg=new lg,wg=new lg,xg=new lg,yg=new lg,zg=new lg;function Ag(a){a=a.l[0];return a!=j?a:""}function Bg(){var a=Cg(jf).l[1];return a!=j?a:""}function Dg(){var a=Cg(jf).l[9];return a!=j?a:""}function Eg(a){a=a.l[0];return a!=j?a:""}
|
||||
function Fg(a){a=a.l[1];return a!=j?a:""}function Gg(){var a=jf.l[4],a=(a?new pg(a):Hg).l[0];return a!=j?a:0}function Ig(){var a=jf.l[5];return a!=j?a:1}function Jg(){var a=jf.l[11];return a!=j?a:""}var Kg=new mg,Lg=new ng;function Cg(a){return(a=a.l[2])?new ng(a):Lg}var Mg=new og;function Ng(){var a=jf.l[3];return a?new og(a):Mg}var Hg=new pg;var jf;function Og(){this.b=new T(128,128);this.e=256/360;this.d=256/(2*o.PI)}Og[C].fromLatLngToPoint=function(a,b){var c=b||new T(0,0),d=this.b;c.x=d.x+a.lng()*this.e;var e=yd(o.sin(M(a.lat())),-(1-1.0E-15),1-1.0E-15);c.y=d.y+0.5*o.log((1+e)/(1-e))*-this.d;return c};Og[C].fromPointToLatLng=function(a,b){var c=this.b;return new Q(Bd(2*o[jc](o.exp((a.y-c.y)/-this.d))-o.PI/2),(a.x-c.x)/this.e,b)};function Pg(a,b,c){if(a=a[ab](b))c=o.pow(2,c),a.x*=c,a.y*=c;return a};function Qg(a,b){var c=a.lat()+Bd(b);90<c&&(c=90);var d=a.lat()-Bd(b);-90>d&&(d=-90);var e=o.sin(b),f=o.cos(M(a.lat()));if(90==c||-90==d||1.0E-6>f)return new de(new Q(d,-180),new Q(c,180));e=Bd(o[yc](e/f));return new de(new Q(d,a.lng()-e),new Q(c,a.lng()+e))};function Rg(a){this.Yb=a||0;this.Sb=R[A](this,Ke,this,this.I)}L(Rg,V);Rg[C].O=function(){var a=this;a.f||(a.f=m[Tb](function(){a.f=ca;a.Z()},a.Yb))};Rg[C].I=function(){this.f&&m[$a](this.f);this.f=ca;this.Z()};Rg[C].Z=Pc();Rg[C].Q=Sc(2);function Sg(a,b){var c=a[F];ra(c,b[v]+b.B);Sa(c,b[H]+b.n)}function Tg(a){return new U(a[hb],a[Bc])};function Ug(a){this.l=a||[]}var Vg;function Wg(a){this.l=a||[]}var Xg;function Yg(a){this.l=a||[]}var Zg;function $g(a){this.l=a||[]}var ah;
|
||||
function bh(a){if(!ah){var b=[];ah={$:-1,Y:b};if(!Xg){var c=[];Xg={$:-1,Y:c};c[1]={type:"i",label:1};c[2]={type:"i",label:1}}b[1]={type:"m",label:1,V:Xg};b[2]={type:"e",label:1};b[3]={type:"u",label:1};Zg||(c=[],Zg={$:-1,Y:c},c[1]={type:"u",label:1},c[2]={type:"u",label:1},c[3]={type:"e",label:1});b[4]={type:"m",label:1,V:Zg};Vg||(c=[],Vg={$:-1,Y:c},c[1]={type:"e",label:1},c[2]={type:"b",label:1},c[3]={type:"b",label:1},c[5]={type:"s",label:1},c[6]={type:"s",label:1},c[100]={type:"b",label:1});b[5]=
|
||||
{type:"m",label:1,V:Vg}}return ad(a.l,ah)}La($g[C],function(){var a=this.l[2];return a!=j?a:0});za($g[C],function(a){this.l[2]=a});function ch(a,b,c){Rg[hc](this);this.A=b;this.n=new Og;this.B=c+"/maps/api/js/StaticMapService.GetMapImage";this.set("div",a)}L(ch,Rg);var dh={roadmap:0,satellite:2,hybrid:3,terrain:4},eh={"0":1,2:2,3:2,4:2};I=ch[C];I.bf=Df("center");I.af=Df("zoom");function fh(a){var b=a.get("tilt")||a.get("mapMaker")||J(a.get("styles")),a=a.get("mapTypeId");return b?j:dh[a]}
|
||||
Ea(I,function(){var a=this.bf(),b=this.af(),c=fh(this);if(a&&!a[ub](this.C)||this.d!=b||this.H!=c)gh(this.j),this.O(),this.d=b,this.H=c;this.C=a});function gh(a){a[xc]&&a[xc][dc](a)}
|
||||
I.Z=function(){var a="",b=this.bf(),c=this.af(),d=fh(this),e=this.get("size");if(b&&1<c&&d!=j&&e&&e[v]&&e[H]&&this.b){Sg(this.b,e);var f;(b=Pg(this.n,b,c))?(f=new nf,f.F=o[w](b.x-e[v]/2),f.G=f.F+e[v],f.D=o[w](b.y-e[H]/2),f.J=f.D+e[H]):f=j;b=eh[d];if(f){var a=new $g,g=1<(22>c&&(m.devicePixelRatio||ha[Xa]&&ha[Xa]/96||1))?2:1,h;a.l[0]=a.l[0]||[];h=new Wg(a.l[0]);h.l[0]=f.F*g;h.l[1]=f.D*g;a.l[1]=b;a[zb](c);a.l[3]=a.l[3]||[];c=new Yg(a.l[3]);c.l[0]=(f.G-f.F)*g;c.l[1]=(f.J-f.D)*g;1<g&&(c.l[2]=2);a.l[4]=
|
||||
a.l[4]||[];c=new Ug(a.l[4]);c.l[0]=d;c.l[1]=i;c.l[4]=Ag(Cg(jf));d=Bg()[Dc]();if("cn"==d||"in"==d||"kr"==d)c.l[5]=d;a=this.A(this.B+unescape("%3F")+bh(a))}}this.j&&e&&(Sg(this.j,e),e=a,d=this.j,e!=d.src?(gh(d),ma(d,Md(this,this.zf,i)),ta(d,Md(this,this.zf,k)),d.src=e):!d[xc]&&e&&this.b[Ua](d))};I.zf=function(a){var b=this.j;ma(b,j);ta(b,j);a&&(b[xc]||this.b[Ua](b),Sg(b,this.get("size")),R[r](this,Le))};
|
||||
I.div_changed=function(){var a=this.get("div"),b=this.b;if(a)if(b)a[Ua](b);else{b=this.b=n[vb]("div");Ha(b[F],"hidden");var c=this.j=n[vb]("img");R[rc](b,Je,Td);c.ontouchstart=c.ontouchmove=c.ontouchend=c.ontouchcancel=Rd;Sg(c,mf);a[Ua](b);this.Z()}else b&&(gh(b),this.b=j)};function hh(a){this.b=[];this.e=a||Nd()}var ih;function jh(a,b,c){c=c||Nd()-a.e;ih&&a.b[p]([b,c]);return c};var kh;function lh(a,b){var c=this;c.f=new V;var d=c.controls=[];wd(Uc,function(a,b){d[b]=new Jf});c.N=a;c.setPov(new yf(0,0,1));c[Bb](b);c[gb]()==ca&&c[Rb](i);c.Ub=b&&b.Ub||new Cf;R[Fb](this,"pano_changed",Vd(function(){S(xe,function(a){a.b(c.Ub,c)})}))}L(lh,Lf);va(lh[C],function(){var a=this;!a.d&&a[gb]()&&(a.d=i,S("streetview",function(b){b.f(a)}))});Ff(lh[C],{visible:ne,pano:me,position:he(Q),pov:ke(zf,fe),links:ca,enableCloseButton:ne});lh[C].getContainer=Qc("N");lh[C].M=Qc("f");
|
||||
lh[C].registerPanoProvider=Ef("panoProvider");function mh(a,b){var c=new nh(b);for(c.b=[a];J(c.b);){var d=c,e=c.b[Ya]();d.e(e);for(e=e[xb];e;e=e.nextSibling)1==e[db]&&d.b[p](e)}}function nh(a){this.e=a};var oh=Vc[Wb]&&Vc[Wb][vb]("div");function ph(a){for(var b;b=a[xb];)qh(b),a[dc](b)}function qh(a){mh(a,function(a){R[Jb](a)})};function rh(a,b){kh&&jh(kh,"mc");var c=this,d=b||{};c[Bb](d);c.d=new Cf;c.Tb=new Jf;c.mapTypes=new Pf;c.features=new xf;var e=c.Ub=new Cf;e.b=function(){delete e.b;S(xe,Vd(function(a){a.b(e,c)}))};c.$d=new Cf;c.ee=new Cf;c.ce=new Cf;Sf[p](a);c.B=new lh(a,{visible:k,enableCloseButton:i,Ub:e});c[Pb]("streetView");c.b=a;var f=Tg(a);d.noClear||ph(a);var g=j;sh(d.useStaticMap,f)&&(g=new ch(a,Zf,Dg()),R[E](g,Le,this),R[Fb](g,Le,function(){jh(kh,"smv")}),g.set("size",f),g[u]("center",c),g[u]("zoom",c),g[u]("mapTypeId",
|
||||
c),g[u]("styles",c),g[u]("mapMaker",c));c.n=new Mf;c.overlayMapTypes=new Jf;var h=c.controls=[];wd(Uc,function(a,b){h[b]=new Jf});c.j=new Qf;S(we,function(a){a.Ph(c,d,g)})}L(rh,Rf);I=rh[C];I.streetView_changed=function(){this.get("streetView")||this.set("streetView",this.B)};I.getDiv=Qc("b");I.M=Qc("n");I.panBy=function(a,b){var c=this.n;S(we,function(){R[r](c,Me,a,b)})};I.panTo=function(a){var b=this.n;S(we,function(){R[r](b,Ne,a)})};
|
||||
I.panToBounds=function(a){var b=this.n;S(we,function(){R[r](b,"pantolatlngbounds",a)})};I.fitBounds=function(a){var b=this;S(we,function(c){c.fitBounds(b,a)})};function sh(a,b){if(Ed(a))return!!a;var c=b[v],d=b[H];return 384E3>=c*d&&800>=c&&800>=d}Ff(rh[C],{bounds:j,streetView:he(Lf),center:he(Q),zoom:le,mapTypeId:me,projection:j,heading:le,tilt:le});function th(a){this[Bb](a);S(xe,Hd)}L(th,V);var uh=ke(Jd,he(ea));Ff(th[C],{position:he(Q),title:me,icon:uh,shadow:uh,shape:td,cursor:me,clickable:ne,animation:td,draggable:ne,visible:ne,flat:ne,zIndex:le});th[C].getVisible=function(){return this.get("visible")!=k};th[C].getClickable=function(){return this.get("clickable")!=k};function vh(a){th[hc](this,a)}L(vh,th);ua(vh[C],function(){this.e&&this.e.Ub[tb](this);(this.e=this.get("map"))&&this.e.Ub.X(this)});vh.MAX_ZINDEX=1E6;Ff(vh[C],{map:ke(he(Rf),he(Lf))});function wh(){S(ye,Hd)}wh[C].getMaxZoomAtLatLng=function(a,b){S(ye,function(c){c.getMaxZoomAtLatLng(a,b)})};function xh(a,b){if(Jd(a)||le(a))this.set("tableId",a),this[Bb](b);else this[Bb](a)}L(xh,V);Ea(xh[C],function(a){if(!("suppressInfoWindows"==a||"clickable"==a)){var b=this;S(ze,function(a){a.Jk(b)})}});Ff(xh[C],{map:he(Rf),tableId:le,query:ke(Jd,Fd)});function yh(){}L(yh,V);ua(yh[C],function(){var a=this;S("overlay",function(b){b.b(a)})});Ff(yh[C],{panes:ca,projection:ca,map:ke(he(Rf),he(Lf))});function zh(a){var b,c=k;if(a instanceof Jf)if(0<a.get("length")){var d=a[ac](0);d instanceof Q?(b=new Jf,b[ec](0,a)):d instanceof Jf?d[Zb]()&&!(d[ac](0)instanceof Q)?c=i:b=a:c=i}else b=a;else Pd(a)?0<a[B]?(d=a[0],d instanceof Q?(b=new Jf,b[ec](0,new Jf(a))):Pd(d)?d[B]&&!(d[0]instanceof Q)?c=i:(b=new Jf,O(a,function(a,c){b[ec](c,new Jf(a))})):c=i):b=new Jf:c=i;c&&aa(ja("Invalid value for constructor parameter 0: "+a));return b}function Ah(a){return a&&a.radius||6378137};function Bh(a){this[Bb](a);S(Be,Hd)}L(Bh,V);ua(Bh[C],va(Bh[C],function(){var a=this;S(Be,function(b){b.b(a)})}));na(Bh[C],function(){R[r](this,"bounds_changed")});Bh[C].radius_changed=Bh[C].center_changed;Da(Bh[C],function(){var a=this.get("radius"),b=this.get("center");if(b&&N(a)){var c=this.get("map"),c=c&&c.M().get("mapType");return Qg(b,a/Ah(c))}return j});Ff(Bh[C],{center:he(Q),editable:ne,map:he(Rf),radius:le,visible:ne});function Ch(){this.set("latLngs",new Jf([new Jf]))}L(Ch,V);ua(Ch[C],va(Ch[C],function(){var a=this;S(Be,function(b){b.e(a)})}));Ch[C].getPath=function(){return this.get("latLngs")[ac](0)};Ch[C].setPath=function(a){a=zh(a);this.get("latLngs")[vc](0,a[ac](0)||new Jf)};Ff(Ch[C],{editable:ne,map:he(Rf),visible:ne});function Dh(a){Ch[hc](this);this[Bb](a);S(Be,Hd)}L(Dh,Ch);Dh[C].f=i;Dh[C].getPaths=function(){return this.get("latLngs")};Dh[C].setPaths=function(a){this.set("latLngs",zh(a))};function Eh(a){Ch[hc](this);this[Bb](a);S(Be,Hd)}L(Eh,Ch);Eh[C].f=k;function Fh(a){Rg[hc](this);this[Bb](a);S(Be,Hd)}L(Fh,Rg);ua(Fh[C],va(Fh[C],function(){var a=this;S(Be,function(b){b.d(a)})}));Ff(Fh[C],{editable:ne,bounds:he(de),map:he(Rf),visible:ne});function Gh(){}Gh[C].getPanoramaByLocation=function(a,b,c){var d=this.Pa;S("streetview",function(e){e.d(a,b,c,d)})};Gh[C].getPanoramaById=function(a,b){var c=this.Pa;S("streetview",function(d){d.e(a,b,c)})};function Hh(a){this.b=a}Ia(Hh[C],function(a,b,c){c=c[vb]("div");a={fa:c,qa:a,zoom:b};c.pa=a;this.b.X(a);return c});Oa(Hh[C],function(a){this.b[tb](a.pa);a.pa=j});Hh[C].sb=function(a){R[r](a.pa,"stop",a.pa)};function Ih(a){Aa(this,a[Cb]);Ga(this,a[Kb]);this.alt=a.alt;wa(this,a[pb]);Pa(this,a[pc]);var b=new Cf,c=new Hh(b);Ia(this,P(c,c[Ob]));Oa(this,P(c,c[gc]));this.sb=P(c,c.sb);var d=P(a,a[Ib]);this.set("opacity",a[Yb]);var e=this;S(we,function(c){(new c.uk(b,d,j,a))[u]("opacity",e)})}L(Ih,V);Ih[C].Nb=i;Ff(Ih[C],{opacity:le});function Jh(a,b){var c=b||{};this.C=c.baseMapTypeId||"roadmap";this.A=a;wa(this,c[pb]);Pa(this,c[pc]||20);Ga(this,c[Kb]);this.alt=c.alt;Aa(this,new U(256,256));Ia(this,Hd)};var Kh={Animation:{BOUNCE:1,DROP:2,e:3,b:4},Circle:Bh,ControlPosition:Uc,GroundOverlay:bg,ImageMapType:Ih,InfoWindow:Uf,LatLng:Q,LatLngBounds:de,MVCArray:Jf,MVCObject:V,Map:rh,MapTypeControlStyle:{DEFAULT:0,HORIZONTAL_BAR:1,DROPDOWN_MENU:2},MapTypeId:Tc,MapTypeRegistry:Pf,Marker:vh,MarkerImage:Vf,NavigationControlStyle:{DEFAULT:0,SMALL:1,ANDROID:2,ZOOM_PAN:3,kl:4,Hk:5},OverlayView:yh,Point:T,Polygon:Dh,Polyline:Eh,Rectangle:Fh,ScaleControlStyle:{DEFAULT:0},Size:U,ZoomControlStyle:{DEFAULT:0,SMALL:1,
|
||||
LARGE:2,Hk:3,ANDROID:4},event:R};
|
||||
vd(Kh,{BicyclingLayer:eg,DirectionsRenderer:Wf,DirectionsService:kf,DirectionsStatus:{OK:Kc,UNKNOWN_ERROR:Nc,OVER_QUERY_LIMIT:Lc,REQUEST_DENIED:Mc,INVALID_REQUEST:Fc,ZERO_RESULTS:Oc,MAX_WAYPOINTS_EXCEEDED:Jc,NOT_FOUND:"NOT_FOUND"},DirectionsTravelMode:id,DirectionsUnitSystem:hd,DistanceMatrixService:Xf,DistanceMatrixStatus:{OK:Kc,INVALID_REQUEST:Fc,OVER_QUERY_LIMIT:Lc,REQUEST_DENIED:Mc,UNKNOWN_ERROR:Nc,MAX_ELEMENTS_EXCEEDED:Ic,MAX_DIMENSIONS_EXCEEDED:Hc},DistanceMatrixElementStatus:{OK:Kc,NOT_FOUND:"NOT_FOUND",
|
||||
ZERO_RESULTS:Oc},ElevationService:Yf,ElevationStatus:{OK:Kc,UNKNOWN_ERROR:Nc,OVER_QUERY_LIMIT:Lc,REQUEST_DENIED:Mc,INVALID_REQUEST:Fc,fl:"DATA_NOT_AVAILABLE"},FusionTablesLayer:xh,Geocoder:ag,GeocoderLocationType:{ROOFTOP:"ROOFTOP",RANGE_INTERPOLATED:"RANGE_INTERPOLATED",GEOMETRIC_CENTER:"GEOMETRIC_CENTER",APPROXIMATE:"APPROXIMATE"},GeocoderStatus:{OK:Kc,UNKNOWN_ERROR:Nc,OVER_QUERY_LIMIT:Lc,REQUEST_DENIED:Mc,INVALID_REQUEST:Fc,ZERO_RESULTS:Oc,ERROR:Ec},KmlLayer:cg,KmlLayerStatus:dg,MaxZoomService:wh,
|
||||
MaxZoomStatus:{OK:Kc,ERROR:Ec},StreetViewPanorama:lh,StreetViewService:Gh,StreetViewStatus:{OK:Kc,UNKNOWN_ERROR:Nc,ZERO_RESULTS:Oc},StyledMapType:Jh,TrafficLayer:fg,TravelMode:id,UnitSystem:hd});function Lh(a){this[Bb](a);S(ze,Hd)}L(Lh,V);Ea(Lh[C],function(a){if(!("map"!=a&&"token"!=a)){var b=this;S(ze,function(a){a.Mk(b)})}});Ff(Lh[C],{map:he(Rf)});function Mh(){this.b=new Cf}L(Mh,V);ua(Mh[C],function(){var a=this[ic]();this.b[yb](function(b){b[sc](a)})});Ff(Mh[C],{map:he(Rf)});function Nh(a){this.e=1729;this.b=a}function Oh(a,b,c){for(var d=ga(b[B]),e=0,f=b[B];e<f;++e)d[e]=b[mc](e);d.unshift(c);b=a.e;a=a.b;e=c=0;for(f=d[B];e<f;++e)c*=b,c+=d[e],c%=a;return c};function Ph(){var a=Gg(),b=new Nh(131071),c=unescape("%26%74%6F%6B%65%6E%3D");return function(d){var d=d[cb](Qh,"%27"),e=d+c;Rh||(Rh=/(?:https?:\/\/[^/]+)?(.*)/);d=Rh[Za](d);return e+Oh(b,d&&d[1],a)}}var Qh=la("'","g"),Rh;function Sh(){var a=new Nh(2147483647);return function(b){return Oh(a,b,0)}};cf.main=function(a){eval(a)};ff("main",{});function Th(){for(var a in ea[C])m[qc]&&m[qc].log("Warning: This site adds property <"+a+"> to Object.prototype. Extending Object.prototype breaks JavaScript for..in loops, which are used heavily in Google Maps API v3.")}
|
||||
m.google.maps.Load(function(a,b){var c=m.google.maps;Th();"version"in c&&m[qc]&&m[qc].log("Warning: you have included the Google Maps API multiple times on this page. This may cause unexpected errors.");jf=new qg(a);o[kc]()<Ig()&&(ih=i);kh=new hh(b);jh(kh,"jl");Zf=Ph();$f=Sh();var d=Ng();gf(Eg(d));wd(Kh,function(a,b){c[a]=b});pa(c,Fg(d));m[Tb](function(){S("util",function(a){a.b.b()})},5E3);R[rc](m,"unload",R.wg);var e=Jg();e&&hf(function(){eval("window."+e+"()")})});var Uh=new ed;
|
||||
})();
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html manifest="appcache.manifest">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Offline Map example in web browser</title>
|
||||
<link type="text/css" rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="map"></div>
|
||||
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
|
||||
<script>window.google && window.google.maps || document.write('<script src="gmapapi.js"><\/script>')</script>
|
||||
<script type="text/javascript" src="webStorage.js"></script>
|
||||
<script type="text/javascript" src="script.js"></script>
|
||||
<script type="text/javascript" src="map.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
var element = document.getElementById("map");
|
||||
|
||||
var mapTypeIds = [];
|
||||
for(var type in google.maps.MapTypeId) {
|
||||
mapTypeIds.push(google.maps.MapTypeId[type]);
|
||||
}
|
||||
|
||||
mapTypeIds.push("OSM");
|
||||
mapTypeIds.push("MyGmap");
|
||||
mapTypeIds.push("LocalGmap");
|
||||
mapTypeIds.push("WebStorageGmap");
|
||||
mapTypeIds.push("LocalMyGmap");
|
||||
mapTypeIds.push("WebStorageMyGmap");
|
||||
|
||||
var map = new google.maps.Map(element, {
|
||||
center: new google.maps.LatLng(-22.18416881313122, -47.382545097935264),
|
||||
zoom: 17,
|
||||
mapTypeId: "MyGmap",
|
||||
mapTypeControlOptions: {
|
||||
mapTypeIds: mapTypeIds,
|
||||
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
|
||||
}
|
||||
});
|
||||
|
||||
map.mapTypes.set("OSM", new google.maps.ImageMapType({
|
||||
getTileUrl: getOsmTileImgSrc,
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "OSM",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("MyGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: getGmapTileImgSrc,
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "MyGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("LocalGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: getLocalTileImgSrc,
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "LocalGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("WebStorageGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: getWebStorageTileImgSrc,
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "WebStorageGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("LocalMyGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: function(coord, zoom) {
|
||||
return checkTileInSprites(coord, zoom) ?
|
||||
getLocalTileImgSrc(coord, zoom) :
|
||||
getGmapTileImgSrc(coord, zoom);
|
||||
},
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "LocalMyGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
map.mapTypes.set("WebStorageMyGmap", new google.maps.ImageMapType({
|
||||
getTileUrl: function(coord, zoom) {
|
||||
var image = getWebStorageTileImgSrc(coord, zoom);
|
||||
return image ? image : getGmapTileImgSrc(coord, zoom);
|
||||
},
|
||||
tileSize: new google.maps.Size(256, 256),
|
||||
name: "WebStorageMyGmap",
|
||||
maxZoom: 20
|
||||
}));
|
||||
|
||||
google.maps.event.addListener(map, 'click', function(point) {
|
||||
var marker = new google.maps.Marker({
|
||||
position: point.latLng,
|
||||
map: map
|
||||
});
|
||||
|
||||
google.maps.event.addListener(marker, 'dblclick', function() {
|
||||
marker.setMap(null);
|
||||
});
|
||||
|
||||
google.maps.event.addListener(marker, 'click', function() {
|
||||
new google.maps.InfoWindow({
|
||||
content: 'lat: ' + point.latLng.lat() + '<br>lng:' + point.latLng.lng()
|
||||
}).open(map, marker);
|
||||
});
|
||||
});
|
||||
|
||||
function CustomControl(controlDiv, map, title, handler) {
|
||||
controlDiv.style.padding = '5px';
|
||||
|
||||
var controlUI = document.createElement('DIV');
|
||||
controlUI.style.backgroundColor = 'white';
|
||||
controlUI.style.borderStyle = 'solid';
|
||||
controlUI.style.borderWidth = '2px';
|
||||
controlUI.style.cursor = 'pointer';
|
||||
controlUI.style.textAlign = 'center';
|
||||
controlUI.title = title;
|
||||
controlDiv.appendChild(controlUI);
|
||||
|
||||
var controlText = document.createElement('DIV');
|
||||
controlText.style.fontFamily = 'Arial,sans-serif';
|
||||
controlText.style.fontSize = '12px';
|
||||
controlText.style.paddingLeft = '4px';
|
||||
controlText.style.paddingRight = '4px';
|
||||
controlText.innerHTML = title;
|
||||
controlUI.appendChild(controlText);
|
||||
|
||||
google.maps.event.addDomListener(controlUI, 'click', handler);
|
||||
}
|
||||
|
||||
var clearWebStorageDiv = document.createElement('DIV');
|
||||
var clearWebStorageButton = new CustomControl(clearWebStorageDiv, map,
|
||||
'Clear Web Storage', clearWebStorage);
|
||||
|
||||
var prepareWebStorageDiv = document.createElement('DIV');
|
||||
var prepareWebStorageButton = new CustomControl(prepareWebStorageDiv, map,
|
||||
'Prepare Web Storage', prepareWebStorage);
|
||||
|
||||
clearWebStorageDiv.index = 1;
|
||||
prepareWebStorageDiv.index = 1;
|
||||
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(clearWebStorageDiv);
|
||||
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(prepareWebStorageDiv);
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
var spriteRanges = {
|
||||
// tl = top_left
|
||||
// br = bottom_right
|
||||
// {zoom: {tl: {}, br: {}}
|
||||
0: {
|
||||
tl: {x: 0, y: 0},
|
||||
br: {x: 0, y: 0}
|
||||
},
|
||||
1: {
|
||||
tl: {x: 1, y: 0},
|
||||
br: {x: 1, y: 0}
|
||||
},
|
||||
2: {
|
||||
tl: {x: 2, y: 1},
|
||||
br: {x: 2, y: 1}
|
||||
},
|
||||
3: {
|
||||
tl: {x: 4, y: 2},
|
||||
br: {x: 4, y: 2}
|
||||
},
|
||||
4: {
|
||||
tl: {x: 9, y: 5},
|
||||
br: {x: 9, y: 5}
|
||||
},
|
||||
5: {
|
||||
tl: {x: 18, y: 10},
|
||||
br: {x: 18, y: 10}
|
||||
},
|
||||
6: {
|
||||
tl: {x: 36, y: 20},
|
||||
br: {x: 36, y: 20}
|
||||
},
|
||||
7: {
|
||||
tl: {x: 73, y: 41},
|
||||
br: {x: 73, y: 41}
|
||||
},
|
||||
8: {
|
||||
tl: {x: 147, y: 82},
|
||||
br: {x: 147, y: 82}
|
||||
},
|
||||
9: {
|
||||
tl: {x: 294, y: 164},
|
||||
br: {x: 295, y: 164}
|
||||
},
|
||||
10: {
|
||||
tl: {x: 589, y: 328},
|
||||
br: {x: 591, y: 329}
|
||||
},
|
||||
11: {
|
||||
tl: {x: 1179, y: 657},
|
||||
br: {x: 1182, y: 659}
|
||||
},
|
||||
12: {
|
||||
tl: {x: 2358, y: 1315},
|
||||
br: {x: 2364, y: 1319}
|
||||
},
|
||||
13: {
|
||||
tl: {x: 4717, y: 2630},
|
||||
br: {x: 4728, y: 2639}
|
||||
},
|
||||
14: {
|
||||
tl: {x: 9439, y: 5262},
|
||||
br: {x: 9452, y: 5277}
|
||||
},
|
||||
15: {
|
||||
tl: {x: 18878, y: 10525},
|
||||
br: {x: 18905, y: 10554}
|
||||
},
|
||||
16: {
|
||||
tl: {x: 37757, y: 21051},
|
||||
br: {x: 37810, y: 21108}
|
||||
}
|
||||
};
|
||||
|
||||
var max_zoom = 13;
|
||||
|
||||
var webStorage = new WebStorageFactory().getWebStorage();
|
||||
|
||||
function imageToBase64(image) {
|
||||
var canvas = document.createElement("canvas");
|
||||
canvas.width = image.width;
|
||||
canvas.height = image.height;
|
||||
|
||||
var context = canvas.getContext("2d");
|
||||
context.drawImage(image, 0, 0);
|
||||
|
||||
return canvas.toDataURL("image/png");
|
||||
}
|
||||
|
||||
function loadImageToWebStorage(zoom, x, y){
|
||||
var url = "cache/" + zoom + "/" + x + "_" + y + ".png";
|
||||
var image = new Image();
|
||||
image.onload = function() {
|
||||
webStorage.setItem([zoom, x, y].join('_'), imageToBase64(image));
|
||||
};
|
||||
image.src = url;
|
||||
}
|
||||
|
||||
function clearWebStorage() {
|
||||
webStorage.clear();
|
||||
}
|
||||
|
||||
function prepareWebStorage() {
|
||||
for (var zoom in spriteRanges) {
|
||||
if (zoom > max_zoom) {
|
||||
break;
|
||||
}
|
||||
var sprites = spriteRanges[zoom];
|
||||
for (var x=sprites.tl.x; x<=sprites.br.x; x++) {
|
||||
for (var y=sprites.tl.y; y<=sprites.br.y; y++) {
|
||||
loadImageToWebStorage(zoom, x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function checkTileInSprites(coord, zoom) {
|
||||
var sprites = spriteRanges[zoom];
|
||||
return sprites.tl.x <= coord.x && coord.x <= sprites.br.x && sprites.tl.y <= coord.y && coord.y <= sprites.br.y;
|
||||
}
|
||||
|
||||
function getOsmTileImgSrc(coord, zoom) {
|
||||
return "http://tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png";
|
||||
}
|
||||
|
||||
function getGmapTileImgSrc(coord, zoom) {
|
||||
return "http://mt0.googleapis.com/vt?src=apiv3&x=" + coord.x + "&y=" + coord.y + "&z=" + zoom;
|
||||
}
|
||||
|
||||
function getLocalTileImgSrc(coord, zoom) {
|
||||
return "cache/" + zoom + "/" + coord.x + "_" + coord.y + ".png";
|
||||
}
|
||||
|
||||
function getWebStorageTileImgSrc(coord, zoom) {
|
||||
return webStorage.getItem([zoom, coord.x, coord.y].join('_'));
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
html, body, #map {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.gmnoprint {
|
||||
width: auto !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
function LocalStorageWebStorageImpl() {
|
||||
this.webStorageType = 'localStorage';
|
||||
|
||||
this.getItem = function(name) {
|
||||
return localStorage.getItem(name);
|
||||
};
|
||||
|
||||
this.setItem = function(name, value) {
|
||||
localStorage.setItem(name, value);
|
||||
};
|
||||
|
||||
this.clear = function() {
|
||||
localStorage.clear();
|
||||
};
|
||||
}
|
||||
|
||||
function WebStorageFactory() {
|
||||
var webStorage = null;
|
||||
|
||||
if (window.localStorage) {
|
||||
webStorage = new LocalStorageWebStorageImpl();
|
||||
} else {
|
||||
alert("Your browser don't support localStorage");
|
||||
}
|
||||
|
||||
this.getWebStorage = function() {
|
||||
return webStorage;
|
||||
}
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
{"Conectado":false,"QuantidadeBicos":4,"AtuacaoNivelAlto":false,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0},{"ID":"B02","Posicao":2,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0},{"ID":"B03","Posicao":3,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0},{"ID":"B04","Posicao":4,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0},{"ID":"B05","Posicao":5,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0},{"ID":"B06","Posicao":6,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0},{"ID":"B07","Posicao":7,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0},{"ID":"B08","Posicao":8,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0},{"ID":"B09","Posicao":9,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0},{"ID":"B10","Posicao":10,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21,22],"StatusBico":false,"NivelFluxo":0.0}],"PercentualInicioPulverizacao":0.3,"PercentualReservatorio":0.0}
|
||||
{"Conectado":false,"QuantidadeBicos":4,"AtuacaoNivelAlto":false,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B02","Posicao":2,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B03","Posicao":3,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B04","Posicao":4,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B05","Posicao":5,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B06","Posicao":6,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B07","Posicao":7,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B08","Posicao":8,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B09","Posicao":9,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B10","Posicao":10,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0}],"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":10,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":false,"DelayAmostragem":200,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[["Calibragem","00450"]],"UnidadeMedida":"L/m","Leituras":[0.0,0.0],"ValorMinimo":0.0,"ValorMaximo":26.67,"LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":false,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","Leituras":null,"ValorMinimo":0.0,"ValorMaximo":0.0,"LimiteMaximo":25.0,"LimiteMinimo":3.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[],"UnidadeMedida":"psi","Leituras":[0.4,337.0],"ValorMinimo":0.0,"ValorMaximo":0.77,"LimiteMaximo":0.0,"LimiteMinimo":0.0}],"PercentualInicioPulverizacao":0.3,"MassaReservatorio":0.0,"PercentualReservatorio":0.0,"MediaNivelFluxo":0.0,"PressaoLinha":0.4}
|
||||
|
|
@ -1 +1 @@
|
|||
[{"Tipo":1,"Pino":99,"Descricao":"1","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":98,"Descricao":"2","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":36,"Descricao":"3","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":39,"Descricao":"4","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":34,"Descricao":"5","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":35,"Descricao":"6","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":32,"Descricao":"7","Funcao":21,"Habilitado":true,"ComponenteID":"B01"},{"Tipo":1,"Pino":33,"Descricao":"8","Funcao":21,"Habilitado":true,"ComponenteID":"B02"},{"Tipo":1,"Pino":25,"Descricao":"9","Funcao":21,"Habilitado":true,"ComponenteID":"B03"},{"Tipo":1,"Pino":26,"Descricao":"10","Funcao":21,"Habilitado":true,"ComponenteID":"B04"},{"Tipo":1,"Pino":27,"Descricao":"11","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":14,"Descricao":"12","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":12,"Descricao":"13","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":97,"Descricao":"14","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":13,"Descricao":"15","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":9,"Descricao":"16","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":10,"Descricao":"17","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":11,"Descricao":"18","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":96,"Descricao":"19","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":6,"Descricao":"26","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":7,"Descricao":"27","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":8,"Descricao":"28","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":15,"Descricao":"29","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":2,"Descricao":"30","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":0,"Descricao":"31","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":4,"Descricao":"32","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":16,"Descricao":"33","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":17,"Descricao":"34","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":5,"Descricao":"35","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":18,"Descricao":"36","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":19,"Descricao":"37","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":95,"Descricao":"38","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":21,"Descricao":"39","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":3,"Descricao":"40","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":1,"Descricao":"41","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":22,"Descricao":"42","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":23,"Descricao":"43","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":94,"Descricao":"44","Funcao":0,"Habilitado":true,"ComponenteID":""}]
|
||||
[{"Tipo":1,"Pino":99,"Descricao":"1","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":98,"Descricao":"2","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":36,"Descricao":"3","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":39,"Descricao":"4","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":34,"Descricao":"5","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":35,"Descricao":"6","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":32,"Descricao":"7","Funcao":21,"Habilitado":true,"ComponenteID":"B01"},{"Tipo":1,"Pino":33,"Descricao":"8","Funcao":21,"Habilitado":true,"ComponenteID":"B02"},{"Tipo":1,"Pino":25,"Descricao":"9","Funcao":21,"Habilitado":true,"ComponenteID":"B03"},{"Tipo":1,"Pino":26,"Descricao":"10","Funcao":21,"Habilitado":true,"ComponenteID":"B04"},{"Tipo":1,"Pino":27,"Descricao":"11","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":14,"Descricao":"12","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":12,"Descricao":"13","Funcao":24,"Habilitado":true,"ComponenteID":"PRSLN"},{"Tipo":1,"Pino":97,"Descricao":"14","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":13,"Descricao":"15","Funcao":25,"Habilitado":true,"ComponenteID":"FLXLN"},{"Tipo":1,"Pino":9,"Descricao":"16","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":10,"Descricao":"17","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":11,"Descricao":"18","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":96,"Descricao":"19","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":6,"Descricao":"26","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":7,"Descricao":"27","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":8,"Descricao":"28","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":15,"Descricao":"29","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":2,"Descricao":"30","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":0,"Descricao":"31","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":4,"Descricao":"32","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":16,"Descricao":"33","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":17,"Descricao":"34","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":5,"Descricao":"35","Funcao":22,"Habilitado":true,"ComponenteID":"MASRS"},{"Tipo":1,"Pino":18,"Descricao":"36","Funcao":23,"Habilitado":true,"ComponenteID":"MASRS"},{"Tipo":1,"Pino":19,"Descricao":"37","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":95,"Descricao":"38","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":21,"Descricao":"39","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":3,"Descricao":"40","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":1,"Descricao":"41","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Tipo":1,"Pino":22,"Descricao":"42","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":23,"Descricao":"43","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Tipo":1,"Pino":94,"Descricao":"44","Funcao":0,"Habilitado":true,"ComponenteID":""}]
|
||||