765 lines
42 KiB
Plaintext
765 lines
42 KiB
Plaintext
<%@ Page Title="" Language="VB" MasterPageFile="~/SiteGPS.master" AutoEventWireup="false" CodeFile="PuntosDeInteres.aspx.vb" Inherits="GPS_PuntosDeInteres" %>
|
|
|
|
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
|
|
</asp:Content>
|
|
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
|
|
<link href="../Metronic/assets/layouts/layout3/css/jquery.datetimepicker.css" rel="stylesheet" />
|
|
<style type="text/css">
|
|
html, body {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
#map {
|
|
position: fixed !important;
|
|
width: 100%;
|
|
height: calc(100% - 51px);
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.pac-container.pac-logo {
|
|
z-index: 100000;
|
|
}
|
|
|
|
.controls {
|
|
margin-top: 10px;
|
|
border: 1px solid transparent;
|
|
border-radius: 2px 0 0 2px;
|
|
box-sizing: border-box;
|
|
-moz-box-sizing: border-box;
|
|
height: 32px;
|
|
outline: none;
|
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
#pac-input {
|
|
background-color: #fff;
|
|
font-family: 'Open Sans Condensed', sans-serif;
|
|
font-size: 13px;
|
|
font-weight: 300;
|
|
margin-left: 12px;
|
|
padding: 0 11px 0 13px;
|
|
text-overflow: ellipsis;
|
|
width: 300px;
|
|
}
|
|
|
|
#pac-input:focus {
|
|
border-color: #4d90fe;
|
|
}
|
|
|
|
|
|
#iw-container {
|
|
margin-bottom: 10px;
|
|
}
|
|
</style>
|
|
</asp:Content>
|
|
<asp:Content ContentPlaceHolderID="H" ID="Content9" runat="server">
|
|
<li>
|
|
<asp:LinkButton ID="BtnCrear" OnClientClick="CargaDivs('Point');return false;" Text="<i class='fa fa-map-marker'></i><span>Crear punto(s) de Interés</span>" runat="server">
|
|
</asp:LinkButton>
|
|
</li>
|
|
<li>
|
|
<asp:LinkButton ID="BtnCrearGrupo" OnClientClick="CargaDivs('PointGroup');return false;" Text="<i class='fa fa-users'></i><span>Crear un grupo de puntos</span>" runat="server">
|
|
</asp:LinkButton>
|
|
</li>
|
|
<li>
|
|
<asp:LinkButton OnClientClick="CargaDivs('Route');return false;" Text="<i class='fa fa-location-arrow'></i><span>Calcular ruta entre puntos</span>" runat="server">
|
|
</asp:LinkButton>
|
|
</li>
|
|
<li>
|
|
<asp:LinkButton OnClientClick="CargaDivs('GroupRoute');return false;" Text="<i class='fa fa-arrows-h'></i><span>Calcular ruta para grupo de puntos</span>" runat="server">
|
|
</asp:LinkButton>
|
|
</li>
|
|
<li>
|
|
<asp:LinkButton ID="BtnEditar" OnClientClick="CargaDivs('Edit');return false;" Text="<i class='fa fa-pencil' aria-hidden='true'></i><span>Editar punto(s) de interés</span>" runat="server">
|
|
</asp:LinkButton>
|
|
</li>
|
|
<%--<li>
|
|
<asp:LinkButton Text="<i class='fa fa-calculator'></i><span>Calcular distancia entre puntos</span>" runat="server"></asp:LinkButton>
|
|
</li>--%>
|
|
</asp:Content>
|
|
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
|
|
<asp:UpdatePanel runat="server" UpdateMode="conditional">
|
|
<ContentTemplate>
|
|
<asp:HiddenField ID="HdnTipo" runat="server" ClientIDMode="Static" />
|
|
<asp:HiddenField ID="CommandArg" runat="server" ClientIDMode="Static" />
|
|
<asp:HiddenField ID="Points" runat="server" ClientIDMode="Static" />
|
|
<asp:HiddenField ID="HdnGrupo" runat="server" Value="-1" ClientIDMode="Static" />
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
<input id="pac-input" class="controls" type="text" placeholder="Buscar Dirección">
|
|
<div id="map"></div>
|
|
<div id="dvEditar" class="modal ADS fade" role="dialog">
|
|
<div class="modal-dialog">
|
|
<asp:UpdatePanel ID="UpEditar" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
|
<ContentTemplate>
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<h4 class="modal-title" id="H2" runat="server">Editar/Eliminar Puntos</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row" style="margin-left: 0px; margin-top: 5px; margin-bottom: 5px; text-align: right" align="left">
|
|
<div style="margin-right: 15px">
|
|
<input type="text" id="TxtBuscar" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaEventos','{0}')", GvPuntos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
|
|
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaEventos','{0}')", GvPuntos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
|
|
</div>
|
|
</div>
|
|
<asp:GridView ID="GVPuntosInteres" runat="server" GridLines="None" DataKeyNames="Punto,PuntoDeInteres,Descripcion,CvePuntoDeInteres,CvePuntoDeInteresGrupo, Estatus" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-height="150" data-sort="true" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" Width="100%" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros">
|
|
<Columns>
|
|
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="10%">
|
|
<ItemTemplate>
|
|
<asp:CheckBox runat="server" ID="chkGR" />
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
<asp:BoundField DataField="PuntoDeInteres" ItemStyle-Width="30%" HeaderText="PuntoDeInteres" ItemStyle-HorizontalAlign="Left" />
|
|
<asp:BoundField DataField="Descripcion" ItemStyle-Width="30%" HeaderText="Descripcion" ItemStyle-HorizontalAlign="Left" />
|
|
<asp:TemplateField HeaderText="Editar" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right">
|
|
<ItemTemplate>
|
|
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" OnClick="imgE_Click" CausesValidation="False" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Eliminar" ItemStyle-HorizontalAlign="Left">
|
|
<ItemTemplate>
|
|
<asp:LinkButton ID="imgD" ItemStyle-Width="5%" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<asp:LinkButton ID="LBMostrar" runat="server" Text="Mostrar en mapa" CssClass="btn btn-primary"></asp:LinkButton>
|
|
<button data-dismiss="modal" class="btn btn-default">Cancelar</button>
|
|
</div>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
</div>
|
|
</div>
|
|
<div id="divAgregarTipo" class="modal ADS fade" role="dialog">
|
|
<div class="modal-dialog">
|
|
<asp:UpdatePanel ID="UpAgregar" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
|
<ContentTemplate>
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<h4 class="modal-title" id="myModalLabel">Agregar Punto(s) de interés</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<asp:UpdatePanel ID="UpBodyTipoEquipo" UpdateMode="Conditional" runat="server">
|
|
<ContentTemplate>
|
|
<div id="dvAdd">
|
|
<div class="form-group form-md-line-input input-iconright">
|
|
<asp:TextBox ID="TxtNombre" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
|
|
<asp:RequiredFieldValidator ID="RFVEstatusOS" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtNombre" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Nombre''</b> es necesario, por favor ingréselo." ValidationGroup="GrpObligatorio"></asp:RequiredFieldValidator>
|
|
<label id="lblPuntos" for="<%= TxtNombre.ClientID.ToString()%>">Nombre Punto(s) De Interés:</label>
|
|
</div>
|
|
|
|
<div class="form-group form-md-line-input input-iconright" style="width: 80%; margin-bottom: 20px;">
|
|
<asp:TextBox ID="TxtDescripcion" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
|
|
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtDescripcion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripcion''</b> es necesario, por favor ingréselo." ValidationGroup="GrpObligatorio"></asp:RequiredFieldValidator>
|
|
<label for="<%= TxtDescripcion.ClientID.ToString()%>">Descripción:</label>
|
|
</div>
|
|
</div>
|
|
<div id="dvEstatus" style="display:none" runat="server" class="form-group form-md-line-input input-iconright">
|
|
<label>Activo: </label>
|
|
<br />
|
|
<asp:Checkbox ID="chkEstatus" Text=" " runat="server" CssClass="chksino" Width="250px">
|
|
</asp:Checkbox>
|
|
</div>
|
|
<div id="dvEventos" runat="server" style="display: none">
|
|
<div class="row" style="margin-left: 0px; margin-top: 5px; margin-bottom: 5px; text-align: right" align="left">
|
|
<div style="margin-right: 15px">
|
|
<input type="text" id="TxtGVGrupo" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtGVGrupo','{0}')", GvGrupos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
|
|
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtGVGrupo','{0}')", GvGrupos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
|
|
</div>
|
|
</div>
|
|
<asp:GridView ID="GvGrupos" runat="server" GridLines="None" DataKeyNames="CvePuntoDeInteresGrupo,PuntoDeInteresGrupo,Descripcion" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-height="150" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" Width="100%" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros">
|
|
<Columns>
|
|
<asp:BoundField DataField="PuntoDeInteresGrupo" ItemStyle-Width="45%" HeaderText="Agregar a Grupo" ItemStyle-HorizontalAlign="Left" />
|
|
<asp:BoundField DataField="Descripcion" ItemStyle-Width="45%" HeaderText="Descripcion" ItemStyle-HorizontalAlign="Left" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
<div class="modal-footer">
|
|
<asp:UpdatePanel ID="UpFooter" runat="server" UpdateMode="Conditional">
|
|
<ContentTemplate>
|
|
<asp:LinkButton ID="BtnAgregarPunto" runat="server" CssClass="btn btn-primary" ValidationGroup="GrpObligatorio"> <i class='material-icons'>done_all</i> Agregar</asp:LinkButton>
|
|
<button id="btnCancelarTE" class="btn btn-default" data-dismiss="modal" value="Cancelar">Cancelar </button>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
</div>
|
|
</div>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
</div>
|
|
</div>
|
|
<%-- <div id="divAgregarGeoreferencia" class="modal ADS fade" role="dialog">
|
|
<div class="modal-dialog">
|
|
<asp:UpdatePanel ID="UpdatePanel1" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
|
<ContentTemplate>
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<h4 class="modal-title" id="myModalLabel2">Agregar Punto(s) De Interes</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">
|
|
<ContentTemplate>
|
|
<div class="form-group form-md-line-input input-iconright">
|
|
<asp:TextBox ID="TxtNomRuta" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
|
|
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtNomRuta" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Nombre''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddRuta"></asp:RequiredFieldValidator>
|
|
<label for="<%= TxtNomRuta.ClientID.ToString()%>">Nombre GeoReferencia:</label>
|
|
</div>
|
|
<div class="form-group form-md-line-input input-iconright">
|
|
<asp:TextBox ID="TxtTolerancia" runat="server" Style="width: 50%; display: inline-block" CssClass="form-control" CausesValidation="true"></asp:TextBox><asp:Literal runat="server" Text="mts"></asp:Literal>
|
|
<asp:RequiredFieldValidator ID="RFVTxtTolerancia" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtTolerancia" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tolerancia''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddRuta"></asp:RequiredFieldValidator>
|
|
<ajax:FilteredTextBoxExtender ID="FTBSerie" runat="server" TargetControlID="TxtTolerancia" FilterType="Numbers" />
|
|
<label for="<%= TxtTolerancia.ClientID.ToString()%>" style="width: 50%">Tolerancia:</label>
|
|
</div>
|
|
<ul class="list-inline" style="font-size: 12px; margin-top: 15px; margin-left: 0px;">
|
|
<li>Fecha I.:
|
|
<div class="input-group input-sm date date-picker " data-date-format="dd/mm/yyyy" style="display: inline-block;">
|
|
<asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control input-sm" CausesValidation="true" MaxLength="10" Width="82px "></asp:TextBox>
|
|
<span class="input-group-btn ">
|
|
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
|
</span>
|
|
</div>
|
|
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
|
|
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
|
|
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpAddRuta"></asp:CompareValidator>
|
|
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
|
|
</li>
|
|
<li>Fecha F.:
|
|
<div class="input-group input-sm date date-picker " data-date-format="dd/mm/yyyy" style="display: inline-block;">
|
|
<asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control input-sm" CausesValidation="true" MaxLength="10" Width="82px "></asp:TextBox>
|
|
<span class="input-group-btn ">
|
|
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
|
</span>
|
|
</div>
|
|
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
|
|
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
|
|
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpAddRuta"></asp:CompareValidator>
|
|
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
|
|
</li>
|
|
</ul>
|
|
<ul class="list-inline" style="font-size: 12px; margin-top: 15px; margin-left: 0px;">
|
|
<li>Aplica Días:
|
|
</li>
|
|
<li>
|
|
<asp:CheckBox runat="server" Text="L" ID="chkLunes" />
|
|
</li>
|
|
<li>
|
|
<asp:CheckBox runat="server" Text="M" ID="chkMartes" />
|
|
</li>
|
|
<li>
|
|
<asp:CheckBox runat="server" Text="M" ID="chkMiercoles" />
|
|
</li>
|
|
<li>
|
|
<asp:CheckBox runat="server" Text="J" ID="chkJueves" />
|
|
</li>
|
|
<li>
|
|
<asp:CheckBox runat="server" Text="V" ID="chkViernes" />
|
|
</li>
|
|
<li>
|
|
<asp:CheckBox runat="server" Text="S" ID="chkSabado" />
|
|
</li>
|
|
<li>
|
|
<asp:CheckBox runat="server" Text="D" ID="chkDomingo" />
|
|
</li>
|
|
</ul>
|
|
<div class="row" style="margin-top: 10px; margin-bottom: 20px;">
|
|
<div class="col-md-1">Hora Inicio:</div>
|
|
<div class="col-md-2">
|
|
<div class="input-group input-sm date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;">
|
|
<asp:TextBox ID="TxtHoraI" runat="server" CssClass="form-control input-sm hora" CausesValidation="true" MaxLength="18" Width="75px"></asp:TextBox>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-1">Hora Fin:</div>
|
|
<div class="col-md-2">
|
|
<div class="input-group input-sm date date-picker " data-date-format="dd/mm/yyyy" style="display: inline-block;">
|
|
<asp:TextBox ID="TxtHoraF" runat="server" CssClass="form-control input-sm hora" CausesValidation="true" MaxLength="18" Width="75px "></asp:TextBox>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
<div class="modal-footer">
|
|
<asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional">
|
|
<ContentTemplate>
|
|
<asp:LinkButton ID="BtnAgregarRuta" runat="server" CssClass="btn btn-primary" ValidationGroup="GrpAddRuta"> <i class='material-icons'>done_all</i> Agregar</asp:LinkButton>
|
|
<button class="btn btn-default" data-dismiss="modal" value="Cancelar">Cancelar </button>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
</div>
|
|
</div>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
</div>
|
|
</div>--%>
|
|
<div id="dvConsulta" class="modal ADS fade" role="dialog">
|
|
<div class="modal-dialog">
|
|
<asp:UpdatePanel ID="UPConsulta" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
|
|
<ContentTemplate>
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
<h4 class="modal-title" id="H1" runat="server">Calcular Ruta Óptima entre puntos</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row" style="margin-left: 0px; margin-top: 5px; margin-bottom: 5px; text-align: right" align="left">
|
|
<div style="margin-right: 15px">
|
|
<input type="text" id="TxtBusquedaEventos" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaEventos','{0}')", GvPuntos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
|
|
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaEventos','{0}')", GvPuntos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
|
|
</div>
|
|
</div>
|
|
<asp:GridView ID="GvPuntos" runat="server" GridLines="None" DataKeyNames="Punto,PuntoDeInteres,CvePuntoDeInteres" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-height="150" data-sort="true" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" Width="100%" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros">
|
|
<Columns>
|
|
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="10%">
|
|
<ItemTemplate>
|
|
<asp:CheckBox runat="server" ID="chkGR" />
|
|
</ItemTemplate>
|
|
</asp:TemplateField>
|
|
<asp:BoundField DataField="PuntoDeInteres" ItemStyle-Width="20%" HeaderText="PuntoDeInteres" ItemStyle-HorizontalAlign="Left" />
|
|
<asp:BoundField DataField="Descripcion" ItemStyle-Width="20%" HeaderText="Descripcion" ItemStyle-HorizontalAlign="Left" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<asp:LinkButton ID="BtnCalcularR" runat="server" Text="Calcular Ruta" CssClass="btn btn-primary"></asp:LinkButton>
|
|
<button data-dismiss="modal" class="btn btn-default">Cancelar</button>
|
|
</div>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
</div>
|
|
</div>
|
|
<asp:UpdatePanel ID="UpHiddenBtns" runat="server">
|
|
<ContentTemplate>
|
|
<div style="display: none">
|
|
<asp:Button runat="server" ID="BtnAlerta" />
|
|
</div>
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
</asp:Content>
|
|
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
|
<script src="../Metronic/assets/layouts/layout3/scripts/jquery.datetimepicker.full.js"></script>
|
|
<script>
|
|
var directionsService;
|
|
var directionsDisplay;
|
|
var markers = [];
|
|
var polylines = [];
|
|
var indiceAnterior = 0;
|
|
|
|
|
|
// var service;
|
|
function initMap() {
|
|
map = new google.maps.Map(document.getElementById('map'), {
|
|
center: { lat: 29.0730, lng: -110.9559 },
|
|
zoom: 10
|
|
});
|
|
|
|
if (navigator.geolocation) {
|
|
navigator.geolocation.getCurrentPosition(function (position) {
|
|
var pos = {
|
|
lat: position.coords.latitude,
|
|
lng: position.coords.longitude
|
|
};
|
|
map.setCenter(pos);
|
|
}, function () {
|
|
handleLocationError(true, infoWindow, map.getCenter());
|
|
});
|
|
}
|
|
|
|
CargaPickers();
|
|
|
|
var input = document.getElementById('pac-input');
|
|
var searchBox = new google.maps.places.SearchBox(input);
|
|
map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);
|
|
map.addListener('bounds_changed', function () {
|
|
searchBox.setBounds(map.getBounds());
|
|
});
|
|
|
|
searchBox.addListener('places_changed', function () {
|
|
var places = searchBox.getPlaces();
|
|
|
|
if (places.length == 0) {
|
|
return;
|
|
}
|
|
var bounds = new google.maps.LatLngBounds();
|
|
|
|
places.forEach(function (place) {
|
|
if (place.geometry.viewport) {
|
|
// Only geocodes have viewport.
|
|
bounds.union(place.geometry.viewport);
|
|
} else {
|
|
bounds.extend(place.geometry.location);
|
|
}
|
|
});
|
|
map.fitBounds(bounds);
|
|
});
|
|
|
|
|
|
directionsService = new google.maps.DirectionsService;
|
|
directionsDisplay = new google.maps.DirectionsRenderer;
|
|
directionsDisplay.setMap(map);
|
|
|
|
var upControlDiv = document.createElement('div');
|
|
var upControl = new ControlUltimoPunto(upControlDiv, map);
|
|
|
|
upControlDiv.index = 1;
|
|
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(upControlDiv);
|
|
|
|
var routeControlDiv = document.createElement('div');
|
|
var routeControl = new ControlGuardarRuta(routeControlDiv, map);
|
|
|
|
routeControlDiv.index = 2;
|
|
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(routeControlDiv);
|
|
|
|
//service = new google.maps.DistanceMatrixService;
|
|
|
|
|
|
map.addListener('click', addLatLng);
|
|
|
|
}
|
|
|
|
function CargaPickers() {
|
|
$('#C_TxtHoraI').datetimepicker({
|
|
datepicker: false,
|
|
lang: 'es',
|
|
format: 'H:i',
|
|
formatDate: 'H:i',
|
|
step: 30
|
|
});
|
|
$('#C_TxtHoraF').datetimepicker({
|
|
datepicker: false,
|
|
lang: 'es',
|
|
format: 'H:i',
|
|
formatDate: 'H:i',
|
|
step: 30
|
|
});
|
|
}
|
|
|
|
function addLatLng(event) {
|
|
// var path = poly.getPath();
|
|
// path.push(event.latLng);
|
|
|
|
var lat = event.latLng.lat();
|
|
var lng = event.latLng.lng();
|
|
|
|
|
|
|
|
var info = new google.maps.InfoWindow({
|
|
content: "(" + lat + " " + lng + ")"
|
|
});
|
|
|
|
var marker = new google.maps.Marker({
|
|
position: event.latLng,
|
|
title: 'Punto',
|
|
map: map
|
|
|
|
});
|
|
markers.push(marker);
|
|
$("#C_BtnCrear").attr("disabled", false)
|
|
|
|
marker.addListener('click', function () {
|
|
info.open(map, marker);
|
|
});
|
|
|
|
$("#CommandArg").val("(" + lng + " " + lat + ")")
|
|
if (markers.length === 1) {
|
|
var h = $('#Points').val() + "(" + lng + " " + lat + ")" + ",";
|
|
$('#Points').val(h);
|
|
} else if (markers.length > 1) {
|
|
var j = $('#Points').val() + "(" + lng + " " + lat + ")" + ",";
|
|
$('#Points').val(j);
|
|
}
|
|
|
|
//marker.addListener(marker, "click", function (point) { id = this.__gm_id; delMarker(id) });
|
|
|
|
|
|
}
|
|
|
|
var delMarker = function (id) {
|
|
var mark = markers[id];
|
|
mark.setMap(null);
|
|
}
|
|
|
|
function Limpieza() {
|
|
CargaPickers();
|
|
DeleteMarkers();
|
|
//$('#divAgregarGeoreferencia').modal('hide');
|
|
}
|
|
|
|
function DeleteMarkers() {
|
|
for (var i = 0; i < markers.length; i++) {
|
|
markers[i].setMap(null);
|
|
}
|
|
markers = [];
|
|
for (var i = 0; i < polylines.length; i++) {
|
|
polylines[i].setMap(null);
|
|
}
|
|
polylines = [];
|
|
markers = [];
|
|
|
|
$('#CommandArg').val("")
|
|
$('#Points').val("")
|
|
$("#C_BtnCrear").attr("disabled", true)
|
|
directionsDisplay.setMap(null);
|
|
$("#btnGuardarRuta").css("display", "none")
|
|
}
|
|
|
|
function calculateAndDisplayRoute(origin, destination) {
|
|
directionsService.route({
|
|
origin: origin,
|
|
destination: destination,
|
|
travelMode: 'DRIVING'
|
|
}, function (response, status) {
|
|
if (status === 'OK') {
|
|
directionsDisplay.setDirections(response);
|
|
directionsDisplay.setMap(map);
|
|
var s = "";
|
|
var legs = response.routes[0].legs;
|
|
for (i = 0; i < legs.length; i++) {
|
|
var steps = legs[i].steps;
|
|
for (j = 0; j < steps.length; j++) {
|
|
var nextSegment = steps[j].path;
|
|
for (k = 0; k < nextSegment.length; k++) {
|
|
s = s + nextSegment[k] + '+'
|
|
}
|
|
}
|
|
}
|
|
$('#CommandArg').val(s)
|
|
} else {
|
|
creaPolyline([(origin), (destination)]);
|
|
$("#C_BtnAlerta").click();
|
|
}
|
|
});
|
|
}
|
|
|
|
function CreaRuta(waypoints) {
|
|
var start = waypoints[0];
|
|
var end = waypoints[waypoints.length - 1];
|
|
var waypts = [];
|
|
|
|
for (var i = 1; i < waypoints.length - 1; i++) {
|
|
waypts.push({
|
|
location: waypoints[i],
|
|
stopover: true
|
|
});
|
|
}
|
|
directionsService.route({
|
|
origin: start,
|
|
destination: end,
|
|
travelMode: 'DRIVING',
|
|
waypoints: waypts,
|
|
optimizeWaypoints: true
|
|
}, function (response, status) {
|
|
if (status === 'OK') {
|
|
directionsDisplay.setDirections(response);
|
|
directionsDisplay.setMap(map);
|
|
var s = "";
|
|
var legs = response.routes[0].legs;
|
|
for (i = 0; i < legs.length; i++) {
|
|
var steps = legs[i].steps;
|
|
for (j = 0; j < steps.length; j++) {
|
|
var nextSegment = steps[j].path;
|
|
for (k = 0; k < nextSegment.length; k++) {
|
|
s = s + nextSegment[k] + '+'
|
|
}
|
|
}
|
|
}
|
|
$('#CommandArg').val(s)
|
|
$("#btnGuardarRuta").css("display", "")
|
|
} else {
|
|
//window.alert('Directions request failed due to ' + status);
|
|
creaPolyline(waypoints);
|
|
$("#C_BtnAlerta").click();
|
|
}
|
|
});
|
|
}
|
|
|
|
function creaPolyline(coords) {
|
|
var polyline = new google.maps.Polyline({
|
|
path: coords,
|
|
strokeColor: "#0088FF",
|
|
strokeOpacity: 0.8,
|
|
strokeWeight: 2,
|
|
fillOpacity: 0.35
|
|
});
|
|
for (var i = 0; i < coords.length; i++) {
|
|
CreaMarcador(coords[i], i + ' ')
|
|
}
|
|
polyline.setMap(map);
|
|
polylines.push(polyline);
|
|
FitBounds();
|
|
}
|
|
|
|
function CargaDatosSeleccionados(indice, valor) {
|
|
var columnaSeleccionada = 2 + indice;
|
|
$('#HdnGrupo').val(valor);
|
|
$('#C_GvGrupos tr').filter(':nth-child(' + indiceAnterior + ')').css('background-color', 'initial');
|
|
$('#C_GvGrupos tr').filter(':nth-child(' + columnaSeleccionada + ')').css('background-color', '#F5B27A');
|
|
indiceAnterior = columnaSeleccionada;
|
|
}
|
|
|
|
function FitBounds() {
|
|
var bounds = new google.maps.LatLngBounds();
|
|
|
|
for (var i = 0; i < markers.length; i++) {
|
|
if (markers[i].getVisible()) {
|
|
bounds.extend(markers[i].getPosition());
|
|
}
|
|
}
|
|
|
|
map.fitBounds(bounds);
|
|
}
|
|
|
|
function CargaDivs(Tipo) {
|
|
if (Tipo === "PointGroup") {
|
|
$("#C_TxtNombre").val("")
|
|
$("#C_TxtDescripcion").val("")
|
|
$('#divAgregarTipo').modal();
|
|
$('#myModalLabel').text("Agregar Grupo de Puntos");
|
|
$("#HdnTipo").val(Tipo)
|
|
$("#lblPuntos").text("Nombre Grupo de Puntos")
|
|
$("#C_dvEventos").css("display", "none")
|
|
$("#dvAdd").css("display", "")
|
|
$("#C_dvEstatus").css("display", "none")
|
|
}
|
|
else if (Tipo === "Point") {
|
|
if ($("#Points").val().length > 0) {
|
|
$('#divAgregarTipo').modal();
|
|
$("#C_TxtNombre").val("")
|
|
$("#C_TxtDescripcion").val("")
|
|
$("#HdnTipo").val(Tipo)
|
|
$('#myModalLabel').text("Agregar Punto(s) de Interés");
|
|
$("#lblPuntos").text("Nombre Punto(s) de Interés")
|
|
$("#C_dvEventos").css("display", "")
|
|
$("#dvAdd").css("display", "")
|
|
$("#C_dvEstatus").css("display", "none")
|
|
|
|
} else { DeleteMarkers(); alert('Haga click en el mapa para dibujar puntos de interés') }
|
|
}
|
|
else if (Tipo === "GroupRoute") {
|
|
DeleteMarkers();
|
|
$("#C_TxtNombre").val("1")
|
|
$("#C_TxtDescripcion").val("1")
|
|
$('#divAgregarTipo').modal();
|
|
$("#HdnTipo").val(Tipo)
|
|
$('#myModalLabel').text("Consultar ruta óptima para grupo de puntos");
|
|
$("#C_dvEventos").css("display", "")
|
|
$("#dvAdd").css("display", "none")
|
|
$("#C_dvEstatus").css("display", "none")
|
|
|
|
}
|
|
else if (Tipo === "Route") {
|
|
DeleteMarkers();
|
|
$('#dvConsulta').modal();
|
|
} else if (Tipo === "Edit") {
|
|
DeleteMarkers();
|
|
$('#dvEditar').modal();
|
|
$("#dvEventos").css("display", "")
|
|
}
|
|
|
|
|
|
}
|
|
|
|
function ControlUltimoPunto(controlDiv, map) {
|
|
|
|
// Set CSS for the control border.
|
|
var controlUI = document.createElement('div');
|
|
controlUI.style.backgroundColor = '#fff';
|
|
controlUI.style.borderRadius = '3px';
|
|
controlUI.style.width = '165px'
|
|
controlUI.style.boxShadow = '0 2px 6px rgba(0,0,0,.3)';
|
|
controlUI.style.cursor = 'pointer';
|
|
controlUI.style.marginRight = '5px';
|
|
controlUI.style.marginTop = '5px';
|
|
controlUI.style.marginBottom = '22px';
|
|
controlUI.style.textAlign = 'center';
|
|
controlUI.title = 'Click para borrar los puntos dibujados';
|
|
controlDiv.appendChild(controlUI);
|
|
|
|
// Set CSS for the control interior.
|
|
var controlText = document.createElement('div');
|
|
controlText.style.color = 'rgb(25,25,25)';
|
|
controlText.style.fontFamily = ' "Open Sans", sans-serif; ';
|
|
controlText.style.fontSize = '14px';
|
|
controlText.style.lineHeight = '38px';
|
|
controlText.style.paddingLeft = '5px';
|
|
controlText.style.paddingRight = '5px';
|
|
controlText.innerHTML = 'Deshacer Puntos';
|
|
controlUI.appendChild(controlText);
|
|
|
|
// Setup the click event listeners: simply set the map to Chicago.
|
|
controlUI.addEventListener('click', function () {
|
|
DeleteMarkers();
|
|
});
|
|
|
|
}
|
|
|
|
function ControlGuardarRuta(controlDiv, map) {
|
|
|
|
// Set CSS for the control border.
|
|
var controlUI = document.createElement('div');
|
|
controlUI.id = "btnGuardarRuta"
|
|
controlUI.style.display = 'none';
|
|
controlUI.style.backgroundColor = '#4B77BE';
|
|
controlUI.style.color = "#fff";
|
|
controlUI.style.borderRadius = '3px';
|
|
controlUI.style.width = '165px'
|
|
controlUI.style.boxShadow = '0 2px 6px rgba(0,0,0,.3)';
|
|
controlUI.style.cursor = 'pointer';
|
|
controlUI.style.marginRight = '5px';
|
|
controlUI.style.marginTop = '5px';
|
|
controlUI.style.marginBottom = '22px';
|
|
controlUI.style.textAlign = 'center';
|
|
controlUI.title = 'Guardar la ruta trazada como georeferencia';
|
|
controlDiv.appendChild(controlUI);
|
|
|
|
// Set CSS for the control interior.
|
|
var controlText = document.createElement('div');
|
|
controlText.style.color = '#fff';
|
|
controlText.style.fontFamily = ' "Open Sans", sans-serif; ';
|
|
controlText.style.fontSize = '14px';
|
|
controlText.style.lineHeight = '38px';
|
|
controlText.style.paddingLeft = '5px';
|
|
controlText.style.paddingRight = '5px';
|
|
controlText.innerHTML = 'Guardar Ruta';
|
|
controlUI.appendChild(controlText);
|
|
|
|
// Setup the click event listeners: simply set the map to Chicago.
|
|
controlUI.addEventListener('click', function () {
|
|
//$("#divAgregarGeoreferencia").modal()
|
|
});
|
|
|
|
}
|
|
|
|
function CreaMarcador(coords, nomEquipo) {
|
|
var marker = new google.maps.Marker({
|
|
position: coords,
|
|
title: nomEquipo,
|
|
map: map
|
|
});
|
|
markers.push(marker);
|
|
map.setCenter(coords);
|
|
}
|
|
|
|
</script>
|
|
<script
|
|
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAF7s8wwhzCVXDUYopc9mXxqaWB33cDro4&libraries=places&callback=initMap">
|
|
</script>
|
|
<%-- <script
|
|
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAJnZ1CoEUX425C20aqzFw4dYxFL_LfThk&libraries=places&callback=initMap">
|
|
</script>--%>
|
|
</asp:Content>
|
|
|