Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''mapa''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 11 registros

  1. boa noite, possuo uma plataforma de rastreamento veícular, nela existe a opção de deixar todos os carros visíveis no mesmo mapa, mas ao fazer uma alteração com um programador, ele acabou deixando essa opção desabilitada, como posso fazer para que os veículos voltem a aparecer no mesmo mapa? esse é o codigo do documentos chamado grupos, e o outro em html acho que é o código da página web <?php require_once 'acesso.php'; require_once 'config.php'; $tipoPagina = 'cliente'; require_once 'acessoMaster.php'; if(isset($_GET['id_grupo'])){ $idGrupo = $_GET['id_grupo']; if(isset($_GET['acao'])) $acao = $_GET['acao']; elseif ($idGrupo) $acao = 'grupo_alterar'; else $acao = 'grupo_adicionar'; if($acao == 'dados'){ $listaBens = ""; $bensCliente = mysqli_query($conexao, "SELECT name, id FROM bem WHERE cliente = '$_SESSION[id]' ORDER BY name ASC") or die(mysqli_error($conexao)); $bensGrupo = mysqli_query($conexao, "SELECT b.name, b.id FROM bem b JOIN grupo_bem gb ON gb.bem = b.id WHERE b.cliente = '$_SESSION[id]' AND gb.grupo = $idGrupo"); if(mysqli_num_rows($bensGrupo) > 0){ $veiculos = array(); $i = 0; while($row = mysqli_fetch_assoc($bensGrupo)){ $veiculos[$i]['name'] = $row['name']; $veiculos[$i]['id'] = $row['id']; $i++; } $contador = count($veiculos); } else{ $contador = 0; $selecionado = " "; } while($option = mysqli_fetch_assoc($bensCliente)){ for($i=0; $i < $contador; $i++) { if($option['id'] == $veiculos[$i]['id']){ $selecionado = " selected "; break; } else $selecionado = " "; } $listaBens .= "<option". $selecionado ."value=\"". $option['id'] ."\">". $option['name'] ."</option>"; } echo json_encode($listaBens); } if($acao == 'remover'){ if(mysqli_query($conexao, "DELETE FROM grupo WHERE id = $idGrupo")){ mysqli_query($conexao, "DELETE FROM grupo_bem WHERE grupo = $idGrupo"); echo "OK"; } else echo "Ops! Algo deu errado: " . mysqli_error($conexao); } if($acao == 'grupo_adicionar'){ $nome = $_GET['nome_grupo']; $veiculos = $_GET['veiculos_grupo']; if(mysqli_query($conexao, "INSERT INTO grupo(nome, cliente) VALUES ('$nome', '$_SESSION[id]')")){ $insertID = mysqli_insert_id($conexao); foreach($veiculos as $valor) { $query = mysqli_query($conexao, "SELECT imei, name FROM bem WHERE id = $valor AND cliente = '$_SESSION[id]'"); if(mysqli_num_rows($query) > 0) { $data = mysqli_fetch_assoc($query); if (!mysqli_query($conexao, "INSERT INTO grupo_bem(bem, cliente, imei, descricao, grupo) VALUES($valor, '$_SESSION[id]', '".$data['imei']."', '".$data['name']."', $insertID)")){ $error_gb = true; } } else $error_b = true; } if(isset($error_b)){ echo "<section class='alert alert-danger'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Erro: </strong>Bem inexistente no cadastro do cliente.</section>"; } elseif(isset($error_gb)){ echo "<section class='alert alert-warning'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Falha no Banco de Dados: </strong>" . mysqli_error($conexao) . ".</section>"; } else echo "<section class='alert alert-success'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Sucesso! </strong>O grupo foi cadastrado com êxito.</section>"; } else die("<section class='alert alert-warning'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Falha no Banco de Dados: </strong>" . mysqli_error($conexao) . ".</section>"); } if($acao == 'grupo_alterar') { $nome = $_GET['nome_grupo']; $veiculos = $_GET['veiculos_grupo']; $retorno = mysqli_query("UPDATE grupo SET nome = '$nome' WHERE id = $idGrupo"); if($retorno){ if(mysqli_query($conexao, "DELETE FROM grupo_bem WHERE grupo = $idGrupo")){ foreach($veiculos as $valor){ $query = mysqli_query($conexao, "SELECT imei, name FROM bem WHERE id = $valor AND cliente = '$_SESSION[id]'"); if(mysqli_num_rows($query) > 0) { $data = mysqli_fetch_assoc($query); if(!mysqli_query($conexao, "INSERT INTO grupo_bem(bem, cliente, imei, descricao, grupo) VALUES($valor, '$_SESSION[id]', '".$data['imei']."', '".$data['name']."', $idGrupo)")) { $error_gb = true; } } else $error_b = true; } } else $error_del = true; if(isset($error_del)){ echo "<section class='alert alert-warning'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Falha no Banco de Dados: </strong>" . mysqli_error($conexao) . ".</section>"; } elseif(isset($error_b)){ echo "<section class='alert alert-danger'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Erro: </strong>Bem inexistente no cadastro do cliente.</section>"; } elseif(isset($error_gb)){ echo "<section class='alert alert-warning'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Falha no Banco de Dados: </strong>" . mysqli_error($conexao) . ".</section>"; } else echo "<section class='alert alert-success'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Sucesso! </strong>O grupo foi alterado com êxito.</section>"; } else{ echo "<section class='alert alert-danger'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Erro: </strong>" . mysqli_error($conexao) . ".</section>"; } } } if(isset($_GET['id_inserido'])){ $nome = $_GET['id_inserido']; $query = mysqli_query($conexao, "SELECT id FROM grupo WHERE nome = '$nome'"); $dados = mysqli_fetch_assoc($query); echo $dados['id']; } ?> <?php require_once 'acesso.php'; require_once 'config.php'; $tipoPagina = 'cliente'; require_once 'acessoMaster.php'; ?> <!DOCTYPE html> <html> <head> <link href="imagens/apple-touch-icon.png" rel="apple-touch-icon"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> <link rel="manifest" href="/manifest.json"> <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <title>Sua Empresa</title> <link href="css/bootstrap.css" rel="stylesheet"> <link href="css/sb-admin.css" rel="stylesheet"> <link href="fonts/css/font-awesome.css" rel="stylesheet"> <link href="imagens/favicon.ico" rel="shortcut icon"> <link href="imagens/favicon.ico" type="image/x-icon" rel="icon"> <link href="imagens/apple-touch-icon.png" rel="apple-touch-icon"> <script type="text/javascript" src="javascript/listagemAjax.js"></script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBpL4b9xyYD1f3byVS-mqFSOuDRB3FvTkM" type="text/javascript"></script> <style> body{ overflow: hidden; } </style> </head> <body> <section id="wrapper"> <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"> <section class="navbar-header" style="height: 54px;"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <section id="logoEmpresa"></section> </section> <section class="collapse navbar-collapse navbar-ex1-collapse"> <ul class="nav navbar-nav navbar-right navbar-user"> <!-- Veículos --> <li class="dropdown veiculos-dropdown"> <a href="#" id="dropdownVeiculos" class="dropdown-toggle" data-toggle="dropdown" style="height: 54px;"><i class="fa fa-car"></i> Veículos <b class="caret"></b></a> <ul class="dropdown-menu text-center"> <form action="" method="POST" class="form-inline" role="form"> <li> <?php require_once 'veiculos.php'; ?> </li> </form> </ul> </li> <!-- Gerenciar --> <li class="dropdown user-dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" style="height: 54px;"><i class="fa fa-wrench"></i> Gerenciar <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="#modal-cerca" data-toggle="modal"><i class="fa fa-bullseye"></i> Cerca Virtual</a></li> <li><a href="#modal-hodometro" data-toggle="modal"><i class="fa fa-dashboard"></i> Hodômetro</a></li> <li><a href="#modal-comandos" data-toggle="modal" class="libera-comandos"><i class="fa fa-tasks"></i> Comandos</a></li> <li><a href="#modal-regras" data-toggle="modal"><i class="fa fa-fw fa-flag"></i> Regras</a></li> <li><a href="#modal-grupos" data-toggle="modal"><i class="fa fa-group"></i> Grupos</a></li> <li><a href="#modal-rotas" data-toggle="modal"><i class="fa fa-location-arrow"></i> Rotas</a></li> <li><a href="#modal-alertas" data-toggle="modal"><i class="fa fa-bell"></i> Alertas <span class="badge">0</span></a></li> <li class="divider"></li> <li><a href="adm.php"><i class="fa fa-fw fa-cog"></i> Configurações</a></li> <li><a href="pagamento.php"><i class="fa fa-fw fa-usd"></i> Faturas</a></li> </ul> </li> <!-- Usuário --> <li class="dropdown user-dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" style="height: 54px;"><i class="fa fa-user"></i> <?php echo $_SESSION['usuario']; ?> <b class="caret"></b></a> <ul class="dropdown-menu"> <li><a href="#modal-dados" data-toggle="modal"><i class="fa fa-user"></i> Cadastro</a></li> <li><a href="contrato.php?userid=<?php echo $_SESSION['id'] ?>" target="_blank"><i class="fa fa-file-text-o"></i> Contrato</a></li> <li><a href="#modal-senha" data-toggle="modal" onClick="limparReveal('#alterar-senha')"><i class="fa fa-key"></i> Senha</a></li> <li class="divider"></li> <li><a href="logout.php"><i class="fa fa-power-off fa-lg"></i> Sair</a></li> </ul> </li> </ul> </section> </nav> <!-- Google Maps --> <section id="map-canvas"></section> <section id="page-wrapper"> <section class="row"> <section id="slide-panel" class="hide"> <button id="opener" class="btn btn-primary" title="Visualizar Itinerário da Rota"><i class="fa fa-list-alt fa-2x"> </i></button> <section class="row"> <section class="col-xs-12" id="directionsPanel"></section> </section> </section> <button id="close-street" type="button" class="btn btn-lg btn-danger hide">&times;</button> <section id="historico" class="navbar-inverse text-center col-xs-12 col-sm-10 hide"> <section class="clear-trace hide"> <button title="Limpar rota de histórico" type="button" class="btn btn-success" id="erase-trace"><i class="fa fa-eraser"></i></button> </section> <section class="header navbar-inverse" style="z-index: 200;"> <i class="fa fa-angle-double-up fa-lg"></i> Histórico </section> <section class="content"> <section class="table-responsive"> <table class="table table-striped table-hover"> <thead> <tr> <th class="text-center">Data</th> <th class="text-center">Hora</th> <th class="text-center">Latitude</th> <th class="text-center">Longitude</th> <th class="text-center">Velocidade</th> <th class="text-center">Endereço</th> <th class="text-center"> <a class="btn btn-primary" title="Consultar histórico por período" data-toggle="modal" href='#modal-historico'><i class="fa fa-calendar"></i></a> <button type="button" title="Clique para limpar os marcadores" class="btn btn-danger" onClick="limparMapaHist();"><i class="fa fa-eye-slash"></i></button> </th> </tr> </thead> <tbody></tbody> </table> </section> </section> </section> </section> </section> <!-- Modal Hodometro --> <section class="modal fade" id="modal-hodometro"> <section class="modal-dialog-hodometro"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Hodômetro</h3> </section> <section class="modal-conteudo"> <form action="" method="POST" class="form-inline" role="form"> <li rel="tooltip" title="Quilometragem do veículo."><input type="text" class="form-control" id="hod_atual" name="hodometro" placeholder="Quilometragem" disabled></li> <li class="divider"></li> <li rel="tooltip" title="Avisar quando este valor for atingido."><input type="text" class="form-control" id="alerta_hodometro" name="alerta_hodometro" placeholder="Avisar a Cada" disabled></li> <li class="divider"></li> <center> <li> <button type="button" class="btn btn-default" onClick="habilitarHodometro()" title="Clique para habilitar a edição dos campos"><i class="fa fa-edit"></i> </button> <button type="button" class="btn btn-primary" onClick="alterarHodometro()" title="Clique para salvar as alterações realizadas" id="enviaHodometro" disabled><i class="fa fa-save"></i> </button> </li> </center> </form> </section> </section> </section> </section> <!-- Modal Comandos --> <section class="modal fade" id="modal-comandos"> <section class="modal-dialog-comandos"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Comandos</h3> </section> <section class="modal-conteudo"> <form id="comandos" class="form-inline" role="form"> <li rel="tooltip" title="Aplica o comando ao veículo selecionado."> <select name="command" id="command" class="form-control" required> <option value=",B">Rastrear Uma Vez</option> <option value=",C,30s">Rastrear a Cada</option> <option value=",H,060">Velocidade Limite</option> <option value=",G">Alertar Movimento</option> <option value=",E">Cancelar Alerta</option> <option value=",J">Bloquear Veículo</option> <option value=",K">Desbloquear Veículo</option> </select> </li> <li class="tempo divider hide"></li> <li class="hide"> <select name="commandTime" id="commandTime" class="form-control-select" required> <option value=",C,15s">15 segundos</option> <option value=",C,30s">30 segundos</option> <option value=",C,01m">1 minuto</option> <option value=",C,02m">2 minutos</option> <option value=",C,10m">10 minutos</option> <option value=",C,30m">30 minutos</option> <option value=",C,01h">1 hora</option> <option value=",C,02h">2 horas</option> <option value=",C,10h">10 horas</option> </select> </li> <li class="parametro divider hide"></li> <li class="hide" rel="tooltip" title="Velocidade em Km/h"><input type="text" name="commandSpeedLimit" id="commandSpeedLimit" class="form-control-select" maxlength="3" placeholder="60"></li> <li class="divider"></li> <center><button type="button" id="enviarcomando" class="btn btn-primary" disabled><i class="fa fa-upload"></i> Enviar</button></center> </form> </section> </section> </section> </section> <!-- Modal Cerca --> <section class="modal fade" id="modal-cerca"> <section class="modal-dialog-cerca"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Cerca Virtual</h3> </section> <section class="modal-conteudo"> <form class="form-inline" role="form"> <center> <button title="Cria uma cerca virtual para o veículo escolhido." type="button" class="btn btn-primary" onClick="modalCerca();"><i class="fa fa-plus-circle"></i> Nova Cerca</button> <hr> <?php $listaCercas = mysqli_query($conexao, "SELECT a.name, b.id, b.imei, b.nome, a.identificacao FROM bem a INNER JOIN geo_fence b ON (a.imei = b.imei) WHERE b.disp = 'S' AND a.cliente = '$_SESSION[id]' ORDER BY id DESC"); while($cerca = mysqli_fetch_assoc($listaCercas)){ echo "<li id='". (int)$cerca['id'] ."'><span rel='tooltip' title='Clique para editar' onclick='editaCerca(".(int)$cerca['id'].",".$cerca['imei'].");'><a href='#'>" . $cerca['nome'] . "</a></span> <a href='javascript:void(0);' rel='tooltip' title='Clique para excluir' class='delcerca' onclick='removeCerca(". (int)$cerca['id'] .");'><i class='fa fa-trash-o fa-lg'></i></a></li>"; } ?> </center> </form> </section> </section> </section> </section> <!-- Modal Rotas --> <section class="modal fade" id="modal-rotas"> <section class="modal-dialog-rotas"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Rotas</h3> </section> <section class="modal-conteudo"> <form class="form-inline" role="form"> <li><input type="text" class="form-control" id="inicio_rota" placeholder="De: Origem" required></li> <li class="divider"></li> <li><input type="text" class="form-control" id="destino_rota" placeholder="Para: Destino" required></li> <li class="divider"></li> <center><li><button type="submit" id="calculaRota" class="btn btn-primary"><i class="fa fa-road"></i> Traçar Rota</button></li></center> </form> </section> </section> </section> </section> <!-- Modal Alertas --> <section class="modal fade" id="modal-alertas"> <section class="modal-dialog-alertas"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Alertas</h3> </section> <section class="modal-conteudo"> <section class="modal-alerts"> <ul> </ul> </section> </section> </section> </section> </section> <!-- Modal Dados Cadastrais --> <section class="modal fade" id="modal-dados"> <section class="modal-dialog"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Dados Cadastrais</h3> </section> <section class="modal-body"> <section class="alert alert-info"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> As informações abaixo são <strong>apenas para fins de consulta.</strong><br /> Caso deseje alterá-las solicite ao seu Administrador. </section> <br /> <section class="row"> <?php $query = mysqli_query($conexao, "SELECT * FROM usuarios WHERE id_usuario = '$_SESSION[id]'"); $dadosCadastrais = mysqli_fetch_assoc($query); ?> <form role="form"> <section class="form-group col-sm-6"> <label for="nome">Nome</label> <input type="text" class="form-control" id="nome" disabled value="<?php echo $dadosCadastrais['nome']; ?>"> </section> <section class="form-group col-sm-6"> <label for="email">E-mail</label> <input type="text" class="form-control" id="email" disabled value="<?php echo $dadosCadastrais['email']; ?>"> </section> <section class="form-group col-sm-6"> <label for="telefone">Telefone</label> <input type="text" class="form-control" id="telefone" disabled value="<?php echo $dadosCadastrais['telefone']; ?>"> </section> <section class="form-group col-sm-6"> <label for="celular">Celular</label> <input type="text" class="form-control" id="celular" disabled value="<?php echo $dadosCadastrais['celular']; ?>"> </section> <section class="form-group col-sm-12"> <label for="endereco">Endereço</label> <input type="text" class="form-control" id="endereco" disabled value="<?php echo $dadosCadastrais['endereco']; ?>"> </section> </form> </section> </section> <section class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Concluir</button> </section> </section> </section> </section> <!-- Modal Senha --> <section class="modal fade" id="modal-senha"> <section class="modal-dialog"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Alterar Senha</h3> </section> <section class="modal-body"> <section class="alert alert-info"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> Para alterar a senha <strong>entre em contato com o administrador.</strong><br /> </section> </section> <form method="GET" id="alterar-senha" class="form-horizontal" role="form"> <section class="modal-body"> <section class="form-group"> <section class="col-lg-4"> <label class="control-label" for="senha_atual">Senha Atual</label> <input type="password" name="senha_atual" disabled id="senha_atual" class="form-control"> </section> <section class="col-lg-4"> <label class="control-label" for="nova_senha">Nova Senha</label> <input type="password" name="nova_senha" disabled id="nova_senha" class="form-control"> </section> <section class="col-lg-4"> <label class="control-label" for="repita_senha">Repita a Senha</label> <input type="password" name="repita_senha" disabled id="repita_senha" class="form-control"> </section> </section> <section id='message' class='row'></section> </section> <section class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button> <button type="submit" class="btn btn-primary"><i class="fa fa-save"></i> Salvar Alterações</button> </section> </form> </section> </section> </section> <!-- Modal Grupos --> <section class="modal fade" id="modal-grupos"> <section class="modal-dialog"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Gerenciar Grupos</h3> </section> <section class="modal-body"> <section class="table-responsive"> <table class="table table-hover table-striped"> <thead> <tr> <th>Nome</th> <th width="17.2%">Ações</th> </tr> </thead> <tbody> <?php $resGrupos = mysqli_query($conexao, "SELECT id, nome FROM grupo WHERE cliente = '$_SESSION[id]'"); if(mysqli_num_rows($resGrupos) > 0){ while($dadosGrupo = mysqli_fetch_assoc($resGrupos)){ echo "<tr> <td>" . $dadosGrupo['nome'] . "</td> <td> <a href='#submodal-grupos' onclick='obterDados(". $dadosGrupo['id'] .", \"". $dadosGrupo['nome'] ."\");' data-toggle='modal' rel='tooltip' title='Editar' class='btn btn-sm btn-primary'><i class='fa fa-pencil fa-fw'></i></a> <a href='javascript:void(0);' remover='". $dadosGrupo['id'] ."' rel='tooltip' title='Excluir' class='del-group btn btn-sm btn-danger'><i class='fa fa-trash-o fa-fw'></i></a> </td> </tr>"; } } else{ echo "<tr> <td colspan='2'><center><i>Não existem Grupos cadastrados.</i></center></td> </tr>"; } ?> </tbody> </table> </section> </section> <section class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Concluir</button> <a href="#submodal-grupos" onClick="obterDados(0);" data-toggle="modal" class="btn btn-success"><i class="fa fa-plus-circle"></i> Novo Grupo</a> </section> </section> </section> </section> <!-- Modal Regras --> <section class="modal fade" id="modal-regras"> <section class="modal-dialog"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Gerenciar Regras</h3> </section> <section class="modal-body"> <section class="table-responsive"> <table class="table table-hover table-striped"> <thead> <tr> <th>Nome</th> <th width="17.2%">Ações</th> </tr> </thead> <tbody> <?php $resRegras = mysqli_query($conexao, "SELECT id_regra, titulo FROM regras WHERE cliente = '$_SESSION[id]'"); if(mysqli_num_rows($resRegras) > 0){ while($dadosRegras = mysqli_fetch_assoc($resRegras)){ echo "<tr> <td>" . $dadosRegras['titulo'] . "</td> <td> <a href='#submodal-regras' onclick='obterDadosRegras(". $dadosRegras['id_regra'] .", \"". $dadosRegras['titulo'] ."\");' data-toggle='modal' rel='tooltip' title='Editar' class='btn btn-sm btn-primary'><i class='fa fa-pencil fa-fw'></i></a> <a href='javascript:void(0);' remover='". $dadosRegras['id_regra'] ."' rel='tooltip' title='Excluir' class='del-regra btn btn-sm btn-danger'><i class='fa fa-trash-o fa-fw'></i></a> </td> </tr>"; } } else{ echo "<tr> <td colspan='2'><center><i>Não existem Regras cadastradas.</i></center></td> </tr>"; } ?> </tbody> </table> </section> </section> <section class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Concluir</button> <a href="#submodal-regras" onClick="obterDadosRegras(0);" data-toggle="modal" class="btn btn-success"><i class="fa fa-plus-circle"></i> Nova Regra</a> </section> </section> </section> </section> <!-- Submodal Grupos --> <section class="modal fade" id="submodal-grupos"> <section class="modal-dialog"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h4 class="modal-title">Editar Grupo</h4> </section> <form id="enviarGrupos" class="form-horizontal" role="form"> <section class="modal-body-grupos"> <input type="hidden" name="id_grupo" id="id_grupo"> <section class="form-group"> <label for="nome_grupo" class="col-sm-2 control-label">Nome:</label> <section class="col-sm-9"> <input type="text" name="nome_grupo" id="nome_grupo" class="grupos-control" required> </section> </section> <section class="form-group"> <label for="veiculos_grupo" class="col-sm-2 control-label">Veículos:</label> <section class="col-sm-9"> <select multiple name="veiculos_grupo[]" id="veiculos_grupo" class="grupos-control-multiple" rel="tooltip" title="Segure CTRL para selecionar vários" required> <option value=""></option> </select> </section> </section> <section id='message-grupos' class='row'></section> </section> <section class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal"> Concluir</button> <button type="submit" class="btn btn-primary"><i class="fa fa-save"></i> Salvar Grupo</button> </section> </form> </section> </section> </section> <!-- Submodal Regras --> <section class="modal fade" id="submodal-regras"> <section class="modal-dialog-regras"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Nova Regra</h3> </section> <form id="enviarRegras" class="form-horizontal" role="form"> <section class="modal-conteudo"> <input type="hidden" name="id_regra" id="id_regra"> <h4>Dados Gerais</h4><br /> Título: <input type="text" name="nome_regra" id="nome_regra" class="form-control"><br /> <hr /><h4>Cercas</h4><br /> <select multiple name="cercas" id="cercas" class="grupos-control-multiple" rel="tooltip" title="Segure CTRL para selecionar vários"> <?php $rsCercas = mysqli_query($conexao, "SELECT * FROM geo_fence WHERE cliente = '$_SESSION[id]'"); while ($row = mysqli_fetch_assoc($rsCercas)){ echo '<option value="">'.$row["nome"].'</option>' ; } ?> </select> <hr /><h4>Veículos</h4><br /> <select multiple name="veiculos" id="veiculos" class="grupos-control-multiple" rel="tooltip" title="Segure CTRL para selecionar vários"> <option value=""></option> </select> <hr /><h4>E-mail</h4><br /> <input type="text" name="email" id="email" class="form-control" placeholder="Insira novos e-mails separados por vírgula. Ex: adm@Sua Empresa.com.br, contato@Sua Empresa.com.br"><br /> <section id='message-regras' class='row'></section> </section> <section class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal"> Concluir</button> <button type="submit" class="btn btn-primary"><i class="fa fa-save"></i> Salvar Regra</button> </section> </form> </section> </section> </section> <!-- Modal Cerca Virtual --> <section class="modal fade" id="modal-cerca-expand"> <section class="modal-dialog modal-lg"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Cerca Virtual</h3> </section> <section class="modal-body"> <section class="row"> <section class="col-sm-6"> <form id="form-cerca" class="form-inline" role="form"> <section class="form-group"> <label class="sr-only" for="">label</label> <input type="text" id="nomeCerca" name="nomeCerca" class="form-control" placeholder="Nome da cerca"> </section> <button type="button" id="apagarPontos" class="btn btn-default"><i class="fa fa-eraser"></i> Apagar Pontos</button> </form> <section id="instrucoes" class="alert alert-info hide"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button> <strong>Instruções:</strong> <ol> <li>Clique e arraste os círculos arredondados nas bordas da cerca para alterá-la.</li> <br /> <li>Clique em qualquer local dentro da área da cerca para confirmar as modificações.</li> </ol> </section> </section> <section class="col-sm-6"> <section id="message-cerca"></section> </section> </section> <section id="loader-cerca"><img src="imagens/loader.gif" class="img-responsive" alt="Carregando..."></section> <section id="mapa-cerca"></section> </section> <section class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal"> Concluir</button> <button type="button" id="salvarCerca" class="btn btn-primary"><i class="fa fa-save"></i> Salvar Cerca</button> </section> </section> </section> </section> <!-- Modal Histórico --> <section class="modal fade" id="modal-historico"> <section class="modal-dialog-historico"> <section class="modal-content"> <section class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title">Histórico</h3> </section> <section class="modal-body"> <form method="POST" action="historico.php" class="form-inline" role="form" id="consultarHistorico"> <input type="hidden" name="nrImeiConsulta" id="nrImeiConsulta"> <input type="hidden" name="nomeVeiculo" id="nomeVeiculo"> <input type="hidden" name="mnDataInicio" value="00"> <input type="hidden" name="mnDataFinal" value="00"> <section class="row"> <section id="historicoInicio"> <strong>Início:</strong> <input type="date" id="commandDateIni" name="txtDataInicio" value="<?php echo date("Y-m-d") ?>" max="<?php echo date("Y-m-d") ?>" class="data-control"> <select name="hrDataInicio" id="commandHourTimeIni" class="hora-control"> <option value="0">00h</option> <option value="1">01h</option> <option value="2">02h</option> <option value="3">03h</option> <option value="4">04h</option> <option value="5">05h</option> <option value="6">06h</option> <option value="7">07h</option> <option value="8">08h</option> <option value="9">09h</option> <option value="10">10h</option> <option value="11">11h</option> <option value="12">12h</option> <option value="13">13h</option> <option value="14">14h</option> <option value="15">15h</option> <option value="16">16h</option> <option value="17">17h</option> <option value="18">18h</option> <option value="19">19h</option> <option value="20">20h</option> <option value="21">21h</option> <option value="22">22h</option> <option value="23">23h</option> </select> </section> <section id="historicoFim"> <span style="float: right;"> <strong>Fim:</strong> <input type="date" id="commandDateFim" name="txtDataFinal" value="<?php echo date("Y-m-d") ?>" max="<?php echo date("Y-m-d") ?>" class="data-control"> <select name="hrDataFinal" id="commandHourTimeFim" class="hora-control"> <option value="0">00h</option> <option value="1">01h</option> <option value="2">02h</option> <option value="3">03h</option> <option value="4">04h</option> <option value="5">05h</option> <option value="6">06h</option> <option value="7">07h</option> <option value="8">08h</option> <option value="9">09h</option> <option value="10">10h</option> <option value="11">11h</option> <option value="12">12h</option> <option value="13">13h</option> <option value="14">14h</option> <option value="15">15h</option> <option value="16">16h</option> <option value="17">17h</option> <option value="18">18h</option> <option value="19">19h</option> <option value="20">20h</option> <option value="21">21h</option> <option value="22">22h</option> <option value="23">23h</option> </select> </span> </section> </section> <br> <button type="button" class="btn btn-default" onClick="acertaHistorico(4);">Últimas 4 horas</button> <button type="button" class="btn btn-default" onClick="acertaHistorico(12);">Últimas 12 horas</button> <button type="button" class="btn btn-default" onClick="acertaHistorico(24);">Últimas 24 horas</button> <button type="button" class="btn btn-default" onClick="acertaHistorico(48);">Últimas 48 horas</button> <button style="float: right;" type="submit" class="btn btn-primary"><i class="fa fa-book"></i> Consultar</button> </form> <hr> <section id="relatorio"></section> </section> <section class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Concluir</button> </section> </section> </section> </section> </section> <!-- JavaScript --> <script src="javascript/jquery-2.2.2.min.js"></script> <script src="javascript/bootstrap.min.js"></script> <script src="javascript/jquery.validate.min.js"></script> <script src="javascript/bootstrap-waitingfor.js"></script> <script src="javascript/polygon.min.js"></script> <script src="javascript/latlong.js"></script> <script src="javascript/geo.js"></script> <script type="text/javascript"> var intervalTraceRoute; var counterTrace = 0; var markers; var path; var poly; var lat_lng = []; var latlngbounds = new google.maps.LatLngBounds(); var delayAutoload = 0; var flightPlanCoordinates = []; var cor_icone = "#ffffff"; $(document).ready(function(){ verificarAlertas(); $("#alterar-senha").validate({ rules:{ senha_atual: {required: true}, nova_senha: {required: true, minlength: 3}, repita_senha: {required: true, minlength: 3, equalTo: 'input#nova_senha'} }, messages:{ senha_atual: {required: "Informe a senha atual"}, nova_senha: {required: "Informe uma nova senha", minlength: "Mínimo de {0} caracteres"}, repita_senha: {required: "Confirme a senha", minlength: "Mínimo de {0} caracteres", equalTo: "A nova senha não coincide"} }, submitHandler: function(form){ $.ajax({ type: "GET", url: 'senha.php', data: $(form).serialize(), success: function(status){ $('#message').html("<p class='text-center'><img src='imagens/loader.gif' alt='Carregando..'></p>") .hide() .fadeIn(1500, function(){ $('#message').append(status); $('#message p').remove(); $('#alterar-senha').each(function (){this.reset();}); }); } }); return false; } }); $("#enviarRegras").validate({ rules:{ nome_regra: {minlength: 3, required: true}, cercas: {required: true}, veiculos: {required: true} }, messages:{ nome_regra:{ required: "Informe um título para a Regra.", minlength: "Mínimo de {0} caracteres." }, cercas: {required: "Selecione ao menos uma Cerca."}, veiculos: {required: "Selecione ao menos um Veículo."} }, submitHandler: function(form){ $.ajax({ url: "regras.php", type: "GET", data: $(form).serialize(), success: function(resposta){ $('#message-regras').html("<p class='text-center'><img src='imagens/loader.gif' alt='Carregando..'></p>") .hide() .fadeIn(1500, function(){ $('#message-regras').append(resposta); $('#message-regras p').remove(); if(resposta == "<section class='alert alert-success'><button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button><strong>Sucesso!</strong> A regra foi cadastrada com êxito.</section>") { var nome = $('#nome_regra').val(); $.get('regras.php',{'id_inserido': nome}, function (id_retornado) { $('#modal-regras .modal-body table tbody').append("<tr><td>" + nome + "</td> <td> <a href='#submodal-regras' onclick=\"obterDadosRegras(" + id_retornado + ", '" + nome + "');\" data-toggle='modal' rel='tooltip' title='Editar' class='btn btn-sm btn-primary'><i class='fa fa-pencil fa-fw'></i></a> <a href='javascript:void(0);' remover='" + id_retornado + "' rel='tooltip' title='Excluir' class='del-regra btn btn-sm btn-danger' disabled><i class='fa fa-trash-o fa-fw'></i></a> </td> </tr>"); }); } }); } }); return false; } }); $("#enviarGrupos").validate({ rules:{ nome_grupo: { minlength: 3, required: true }, veiculos_grupo: { required: true } }, messages:{ nome_grupo:{ required: "Informe um nome para o grupo", minlength: "Mínimo de {0} caracteres" }, veiculos_grupo: {required: "Selecione ao menos um veículo"} }, submitHandler: function(form){ $.ajax({ url: "grupos.php", type: "GET", data: $(form).serialize(), success: function (resposta){ $('#message-grupos').html("<p class='text-center'><img src='imagens/loader.gif' alt='Carregando..'></p>") .hide() .fadeIn(1500, function(){ $('#message-grupos').append(resposta); $('#message-grupos p').remove(); if(resposta == "<section class='alert alert-success'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Sucesso! </strong>O grupo foi cadastrado com êxito.</section>") { var nome = $('#nome_grupo').val(); $.get('grupos.php',{'id_inserido': nome}, function (id_retornado) { $('#modal-grupos .modal-body table tbody').append("<tr><td>" + nome + "</td> <td> <a href='#submodal-grupos' onclick=\"obterDados(" + id_retornado + ", '" + nome + "');\" data-toggle='modal' rel='tooltip' title='Editar' class='btn btn-sm btn-primary'><i class='fa fa-pencil fa-fw'></i></a> <a href='javascript:void(0);' remover='" + id_retornado + "' rel='tooltip' title='Excluir' class='del-group btn btn-sm btn-danger' disabled><i class='fa fa-trash-o fa-fw'></i></a> </td> </tr>"); }); } }); } }); return false; } }); $("#consultarHistorico").validate({ submitHandler: function (form) { $("#consultarHistorico button[type=submit]").prop('disabled', true); $("#consultarHistorico button[type=submit] i").removeClass('fa-book').addClass('fa-refresh fa-spin'); $("#nrImeiConsulta").val($('#bens').val()); $("#nomeVeiculo").val($("#bens").find(":selected").text()); $.ajax({ url: "historico.php", type: "POST", data: $(form).serialize(), success: function (lista){ $("#relatorio").html(lista); $("#consultarHistorico button[type=submit]").prop('disabled', false); $("#consultarHistorico button[type=submit] i").removeClass('fa-refresh fa-spin').addClass('fa-book'); var hora = 0; var velocidade = 0; var ligado = 0; var latAnt = 0; var latAtu = 0; var lonAtu = 0; var lonAnt = 0; var distance = 0.00; var tabRel = $('#relatorio table').find('tbody').find('tr'); var hora = $(tabRel[0]).find('td:eq(0)').html(); var latAtu = $(tabRel[0]).find('td:eq(1)').html(); var lonAtu = $(tabRel[0]).find('td:eq(2)').html(); var velocidade = $(tabRel[0]).find('td:eq(3)').html(); var ligado = $(tabRel[0]).find('td:eq(4)').html(); if(tabRel.length > 2){ while(posicoes.length > 0) { posicoes.pop(); } for(var i = 1; i < tabRel.length - 1; i++){ posicoes.push({ 'lat': latAtu, 'lng': lonAtu, 'horario': hora, 'velocidade': velocidade, 'ligado': ligado }); var hora = $(tabRel[i]).find('td:eq(0)').html(); var latAnt = $(tabRel[i]).find('td:eq(1)').html(); var lonAnt = $(tabRel[i]).find('td:eq(2)').html(); var velocidade = $(tabRel[i]).find('td:eq(3)').html(); var ligado = $(tabRel[i]).find('td:eq(4)').html(); var p1 = new LatLon(latAtu, lonAtu); var p2 = new LatLon(latAnt, lonAnt); distance += parseFloat(p1.distanceTo(p2)); latAtu = latAnt; lonAtu = lonAnt; } $('#km-rodado').html(parseInt(distance) + ' Km rodados'); $('#tracar').removeClass('hide'); } else{ console.log('Apenas um registro na tabela'); $('#tracar').addClass('hide'); } }, error: function (XMLHttpRequest, textStatus, errorThrown){ console.log(XMLHttpRequest); console.log(textStatus); console.log(errorThrown); $("#consultarHistorico button[type=submit]").prop('disabled', false); $("#consultarHistorico button[type=submit] i").removeClass('fa-refresh fa-spin').addClass('fa-book'); } }); return false; } }); $("#calculaRota").click(function(e){ e.preventDefault(); calcRoute(); $("#slide-panel").removeClass('hide'); }); $('#opener').on('click', function(){ var panel = $('#slide-panel'); if (panel.hasClass("visible")) { panel.removeClass('visible').animate({'margin-right':'-300px'}); } else{ panel.addClass('visible').animate({'margin-right':'0px'}); } return false; }); $('#command').change(function (){ var valor = $(this).val(); if (valor == ',C,30s') { $('li.tempo').removeClass('hide'); $('#commandTime').parent('li').removeClass('hide'); } else { $('li.tempo').addClass('hide'); $('#commandTime').parent('li').addClass('hide'); } if (valor == ',H,060') { $('li.parametro').removeClass('hide'); $('#commandSpeedLimit').parent('li').removeClass('hide'); } else { $('li.parametro').addClass('hide'); $('#commandSpeedLimit').parent('li').addClass('hide'); } }); // Altera a disponibilidade do envio de comandos $('.libera-comandos').click(function(){ if ($('#bens').val()) $('#enviarcomando').prop('disabled', false); else{ $('#enviarcomando').prop('disabled', true); alert("Para realizar esta ação selecione um veículo."); } }); // Envia o comando para o rastreador $('#enviarcomando').click(function (e){ e.preventDefault(); $('#enviarcomando i').removeClass('fa-upload').addClass('fa-refresh fa-spin'); var imei = $('#bens').val(); var nomeBem = $('#bens option:selected').text(); var comandoSelecionado = $('#command').val(); var intervaloComando = $('#commandTime').val(); var velocidadeLimite = $('#commandSpeedLimit').val(); $.ajax({ url: "comandos.php", type: "POST", data: {'imei': imei, 'command': comandoSelecionado, 'commandTime': intervaloComando, 'commandSpeedLimit': velocidadeLimite}, success: function (resultComandos){ if(resultComandos == "OKOK"){ $('#enviarcomando').addClass('btn-success'); $('#enviarcomando > i').removeClass('fa-refresh fa-spin').addClass('fa-check'); setTimeout(function(){ $('#enviarcomando').removeClass('btn-success'); $('#enviarcomando > i').removeClass('fa-check').addClass('fa-upload'); }, 3000); } else{ $('#enviarcomando').addClass('btn-success'); $('#enviarcomando > i').removeClass('fa-refresh fa-spin').addClass('fa-check'); setTimeout(function(){ $('#enviarcomando').removeClass('btn-success'); $('#enviarcomando > i').removeClass('fa-check').addClass('fa-upload'); }, 3000); } } }); }); // Deleta o grupo escolhido $('.del-group').click(function(){ var botao = $(this); var id = botao.attr('remover'); botao.children('i').removeClass('fa-trash-o').addClass('fa-refresh fa-spin'); botao.attr('disabled', true); $.ajax({ url: "grupos.php", type: "GET", data: {id_grupo: id, acao: 'remover'}, success: function(resposta){ if(resposta == "OK") { botao.children('i').removeClass('fa-refresh fa-spin').addClass('fa-check'); setTimeout(function () { botao.parent().parent('tr').remove(); }, 2000); } else{ botao.children('i').removeClass('fa-refresh fa-spin').addClass('fa-trash-o'); botao.attr('disabled', false); alert(resposta); } } }); }); // Deleta a regra escolhida $('.del-regra').click(function(){ var botao = $(this); var id = botao.attr('remover'); botao.children('i').removeClass('fa-trash-o').addClass('fa-refresh fa-spin'); botao.attr('disabled', true); $.ajax({ url: "regras.php", type: "GET", data: {id_regra: id, acao: 'remover'}, success: function(resposta){ if(resposta == "OK") { botao.children('i').removeClass('fa-refresh fa-spin').addClass('fa-check'); setTimeout(function(){ botao.parent().parent('tr').remove(); }, 2000); } else{ botao.children('i').removeClass('fa-refresh fa-spin').addClass('fa-trash-o'); botao.attr('disabled', false); alert(resposta); } } }); }); // Adiciona os balões de ajuda $("li[rel=tooltip], select[rel=tooltip], .delcerca").tooltip({placement: 'right'}); $("span[rel=tooltip]").tooltip({placement: 'left'}); }); $(window).resize(function(){ posicionaHistorico(); }); var posicoes = []; function posicionaHistorico(){ if($("#bens").val()){ $("#historico").removeClass('hide'); var altura = ($("#historico").height() - $("#historico .header").height()) * -0.95; $("#historico").css({ 'bottom': altura }); $("#historico .header").click(function(){ var posicao = parseInt($("#historico").css('bottom')); if(posicao < 0){ novaAltura = 0; $("#historico .header i").removeClass('fa-angle-double-up').addClass('fa-angle-double-down'); } else{ novaAltura = altura; $("#historico .header i").removeClass('fa-angle-double-down').addClass('fa-angle-double-up'); } $("#historico").animate({bottom: novaAltura}); }); } else $("#historico").addClass('hide'); } function acertaHistorico(horas){ horaIni = $('#commandHourTimeIni'); horaFim = $('#commandHourTimeFim'); dataIni = $('#commandDateIni'); horaAtual = new Date(); horaFim.val(horaAtual.getHours()); if(horaAtual.getHours() - horas < 0){ horaIni.val(24 - (horas - horaAtual.getHours())); dia = horaAtual.getDate() - 1; mes = horaAtual.getMonth() + 1; if (dia < 0 || dia === 0){ dia = 1; mes = mes - 1; } dataIni.val(horaAtual.getFullYear() + '-' + ('0' + mes).slice(-2) + '-' + ('0' + dia).slice(-2)); if(horas == 48){ dataIni.val(horaAtual.getFullYear() + '-' + ('0' + mes).slice(-2) + '-' + ('0' + (dia - 1)).slice(-2)); horaIni.val(horaAtual.getHours()); } } else{ dataIni.val(horaAtual.getFullYear() + '-' + ('0' + (horaAtual.getMonth() + 1)).slice(-2) + '-' + ('0' + horaAtual.getDate()).slice(-2)); horaIni.val(horaAtual.getHours() - horas); } } function exibirListagemHistorico(imei){ $.ajax({ url: "historicoListagem.php", type: "GET", data: {'imei': imei}, success: function(result){ $("#historico .content table tbody").html(result); posicionaHistorico(); } }); } function imprimirHistorico(){ var data = $('#areaImpressa').html(); var mywindow = window.open('', 'Histórico de Localização', 'left=200, width=950, height=500, scrollbars=1'); mywindow.document.write('<html><head><title>Histórico de Localização</title>'); mywindow.document.write('<link rel="stylesheet" href="css/bootstrap.css" type="text/css">'); mywindow.document.write('</head><body>'); mywindow.document.write(data); mywindow.document.write('</body></html>'); mywindow.addEventListener('load', function(){ mywindow.print(); }, true); } function limparReveal(idReveal){ $('#message').html(""); $(idReveal).each(function(){this.reset();}); $(idReveal).find('input').removeClass('valid error'); $(idReveal).find('label.error').remove(); } function verificarAlertas(){ $.ajax({ url: "alertas.php", type: "GET", dataType: "JSON", success: function(alertas){ $(".modal-alerts ul").html(alertas.lista); $(".badge").html(alertas.count); } }); } function fecharAlerta(id_alerta){ $.ajax({ url: "alertas.php", type: "GET", data: {idAlerta: id_alerta}, success: function(){ verificarAlertas(); } }); } function habilitarHodometro(){ try{ if($('#bens').val() == ""){ $('#hod_atual').val("").prop('disabled', true); $('#alerta_hodometro').val("").prop('disabled', true); $('#enviaHodometro').prop('disabled', true); alert('Para realizar esta ação selecione um veículo.'); } else{ $('#hod_atual').prop('disabled', false); $('#alerta_hodometro').prop('disabled', false); $('#enviaHodometro').prop('disabled', false); } } catch(error){ alert('Selecione um veículo! ' + error); } } function alterarHodometro(){ try{ $('#enviaHodometro > i').removeClass('fa-save').addClass('fa-refresh fa-spin'); var hodometro = $('#hod_atual').val(); var alerta_hodometro = $('#alerta_hodometro').val(); var numImei = $('#bens').val(); $.ajax({ url: "hodometro.php", type: "GET", data: {imei: numImei, acao: 'salvar_hodometro', hodometro: hodometro, alerta_hodometro: alerta_hodometro}, success: function (dataHodometro){ console.log(dataHodometro); if(dataHodometro == "OK"){ $('#enviaHodometro').addClass('btn-success'); $('#enviaHodometro > i').removeClass('fa-refresh fa-spin').addClass('fa-check'); $('#hod_atual').prop('disabled', true); $('#alerta_hodometro').prop('disabled', true); $('#enviaHodometro').prop('disabled', true); setTimeout(function () { $('#enviaHodometro').removeClass('btn-success'); $('#enviaHodometro > i').removeClass('fa-check').addClass('fa-save'); }, 3000); } else{ $('#enviaHodometro').addClass('btn-danger'); $('#enviaHodometro > i').removeClass('fa-refresh fa-spin').addClass('fa-times'); alert(dataHodometro); setTimeout(function () { $('#enviaHodometro').removeClass('btn-danger'); $('#enviaHodometro > i').removeClass('fa-times').addClass('fa-save'); }, 3000); } } }); } catch(error){ alert('Ops! Algo deu errado: '+ error); } } function obterDados(id, nome){ if(!id) $('#submodal-grupos h4').html("Cadastrar Grupo"); else $('#submodal-grupos h4').html("Editar Grupo"); $('#message-grupos').html(""); $.ajax({ url: "grupos.php", type: "GET", data: { id_grupo: id, acao: 'dados' }, dataType: "JSON", success: function(grupo){ $('#id_grupo').val(id); $('#nome_grupo').val(nome); $('#veiculos_grupo').html(grupo); } }) } function obterDadosRegras(id, nome){ if(!id) $('#submodal-regras h3').html("Nova Regra"); else $('#submodal-regras h3').html("Editar Regra"); $('#message-regras').html(""); $.ajax({ url: "regras.php", type: "GET", data: {id_regra: id, acao: 'dados'}, dataType: "JSON", success: function(grupo){ $('#id_regra').val(id); $('#nome_regra').val(nome); $('#veiculos').html(grupo); } }) } function modalCerca(){ $('#modal-cerca-expand').modal({show:true}); $('#form-cerca').removeClass('hide'); $('#instrucoes').addClass('hide'); $('#salvarCerca').prop('disabled', false); //alert($('#bens').val()); var imei = $('#bens').val();//$('#veiculoCerca').val(); //var imei = 359710049050884; if(imei){ $('#nomeCerca').val(''); $('#message-cerca').html(''); $('#mapa-cerca').fadeTo('fast', 1); var saopaulo = new google.maps.LatLng(-23.548900,-46.638800); var opcoesCerca = { zoom: 11, center: saopaulo, mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(document.getElementById('mapa-cerca'), opcoesCerca); google.maps.event.addDomListener(window, "resize", function(){ var center = map.getCenter(); google.maps.event.trigger(map, "resize"); map.setCenter(center); }); google.maps.event.addListenerOnce(map, 'idle', function(){ var center = map.getCenter(); google.maps.event.trigger(map, 'resize'); map.setCenter(center); }); var creator = new PolygonCreator(map); // Apagar pontos $('#apagarPontos').click(function(){ creator.destroy(); creator = null; creator = new PolygonCreator(map); }); // Enviar cerca $('#salvarCerca').click(function(){ var nome = $('#nomeCerca').val(); if (nome == "" || nome == null){ window.alert("Informe um nome para a Cerca."); } else{ if(creator.showData() == null) { window.alert("Você deve fechar o polígono."); } else{ $('#mapa-cerca').fadeTo('fast', 0.4); var pontos = creator.showData(); $.ajax({ url: "cercaIncluir.php", type: "GET", data: { 'imei': imei, 'NomeCerca': nome, 'cerca': pontos }, success: function (resCerca) { if(resCerca == 'OK'){ $('#nomeCerca').val(''); $('#apagarPontos').click(); setTimeout(function () { $('#mapa-cerca').fadeTo('fast', 1); $('#message-cerca').html("<section class='alert alert-success'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Sucesso!</strong> A cerca foi criada com êxito. </section> </section>"); }, 1500); } else{ $('#mapa-cerca').fadeTo('fast', 1); $('#message-cerca').html("<section class='alert alert-danger'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Erro: </strong> Ops! Algo deu errado... </section> </section>"); console.log(resCerca); } } }); } } }); $('#form-cerca').submit(function(e){ e.preventDefault(); }); $('#modal-cerca-expand').modal({show:true}); } else{ $('.cerca-dropdown button').addClass('btn-warning'); $('.cerca-dropdown button i').removeClass('fa-plus-circle').addClass('fa-warning'); setTimeout(function(){ $('.cerca-dropdown button').removeClass('btn-warning'); $('.cerca-dropdown button i').removeClass('fa-warning').addClass('fa-plus-circle'); }, 1500); } } function editaCerca(id, imei){ $.ajax({ url: "cercaEditar.php", type: "GET", data: {"imei": imei, 'id': id}, dataType: "JSON", success: function(result){ $('#form-cerca').addClass('hide'); $('#instrucoes').removeClass('hide'); $('#salvarCerca').prop('disabled', true); var triangleCoords = [ new google.maps.LatLng(result.latCoord[0],result.lngCoord[0]), new google.maps.LatLng(result.latCoord[1],result.lngCoord[1]), new google.maps.LatLng(result.latCoord[2],result.lngCoord[2]), new google.maps.LatLng(result.latCoord[3],result.lngCoord[3]) ]; var geoFenceInitialPoint = new google.maps.LatLng(result.latCoord[0],result.lngCoord[0]); var opcoesCerca = { zoom: 15, center: geoFenceInitialPoint, mapTypeId: google.maps.MapTypeId.ROADMAP } map = new google.maps.Map(document.getElementById('mapa-cerca'), opcoesCerca); var bermudaTriangle = new google.maps.Polygon({ paths: triangleCoords, strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 3, fillColor: "#FF0000", fillOpacity: 0.35, editable: true }); bermudaTriangle.setMap(map); google.maps.event.addDomListener(window, "resize", function(){ var center = map.getCenter(); google.maps.event.trigger(map, "resize"); map.setCenter(center); }); google.maps.event.addListenerOnce(map, 'idle', function(){ var center = map.getCenter(); google.maps.event.trigger(map, 'resize'); map.setCenter(center); }); google.maps.event.addListener(bermudaTriangle, 'click', showArrays); var infowindow = new google.maps.InfoWindow(); function showArrays(event){ var imei = result.imei; var id = result.id; var latitude = result.latitude; var longitude = result.longitude; var vertices = this.getPath(); var contentString = "latitude="+ latitude + "&longitude=" + longitude + "&imei=" + imei + "&id=" + id + "&coordenadas="; for(var i = 0; i < vertices.length; i++){ var xy = vertices.getAt(i); if (i+1 == vertices.length){ contentString += xy.lat() +"," + xy.lng(); } else{ contentString += ''+ xy.lat() +"," + xy.lng() +'|'; } } decisao = confirm("Deseja gravar o perímetro?"); if(decisao){ $('#mapa-cerca').fadeTo('fast', 0.4); $.ajax({ url: "cercaAlterar.php?" + contentString, type: "GET", success: function(retorno){ console.log(retorno); if (retorno == "OK"){ setTimeout(function () { $('#mapa-cerca').fadeTo('fast', 1); $('#message-cerca').html("<section class='alert alert-success'> <button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> <strong>Sucesso!</strong> A cerca foi alterada com êxito.</section></section>"); setTimeout(function () { $('#message-cerca').html(""); }, 3000); }, 1500); } } }); } else{ alert('Clique no botão concluir para sair.'); } infowindow.open(map); } $('#modal-cerca-expand').modal({show:true}); } }); } function removeCerca(idCerca){ if (confirm("Realmente deseja excluir esta cerca? Esta ação não poderá ser desfeita.")){ $.ajax({ url: "cercaExcluir.php", type: "GET", data: {'codCerca': idCerca}, success: function (result){ if (result == "OK") { $('#'+idCerca).remove(); } else{ alert(result); console.log(result); } } }); } } // Google Maps API // var directionsDisplay; var markerArray = []; var markerArrayHist = []; var marcadores = []; var latitude_anterior; // Inicia o serviço de rotas var directionsService = new google.maps.DirectionsService(); var icons = { start: new google.maps.MarkerImage( 'imagens/historico_inicio.png', new google.maps.Size(48, 48), new google.maps.Point(0, 0), new google.maps.Point(22, 32) ), end: new google.maps.MarkerImage( 'imagens/historico_fim.png', new google.maps.Size(40, 40), new google.maps.Point(0, 0), new google.maps.Point(22, 32) ) } // Centralização do mapa. Atualmente é São Paulo. var var_location = new google.maps.LatLng(-23.548900, -46.638800); var var_mapoptions = { center: var_location, mapTypeId: google.maps.MapTypeId.ROADMAP, zoom: 8, mapTypeControl: true, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.TOP_LEFT }, zoomControl: true, zoomControlOptions: { position: google.maps.ControlPosition.TOP_LEFT, style: google.maps.ZoomControlStyle.LARGE }, scaleControl: false, streetViewControl: true, streetViewControlOptions: { position: google.maps.ControlPosition.LEFT_TOP } }; var var_map = new google.maps.Map(document.getElementById("map-canvas"),var_mapoptions); function init_map(){ directionsDisplay = new google.maps.DirectionsRenderer({suppressMarkers: true}); directionsDisplay.setMap(var_map); directionsDisplay.setPanel(document.getElementById("directionsPanel")); var closeButton = document.querySelector('#close-street'), controlPosition = google.maps.ControlPosition.RIGHT_TOP; var streetView = var_map.getStreetView(); streetView.setOptions({enableCloseButton: false}); streetView.controls[ controlPosition ].push( closeButton ); google.maps.event.addDomListener(closeButton, 'click', function(){ streetView.setVisible(false); }); } google.maps.event.addDomListener(window, 'load', init_map); var thePanorama = var_map.getStreetView(); google.maps.event.addListener(thePanorama, 'visible_changed', function(){ if (thePanorama.getVisible()) { $('#close-street').removeClass('hide'); } else{ $('#close-street').addClass('hide'); } }); function calcRoute(){ $('#calculaRota i').removeClass('fa-road').addClass('fa-refresh fa-spin'); var start = document.getElementById('inicio_rota').value; var end = document.getElementById('destino_rota').value; var request = { origin: start, destination: end, travelMode: google.maps.TravelMode.DRIVING }; limparMapa(); directionsService.route(request, function(response, status){ if(status == google.maps.DirectionsStatus.OK){ directionsDisplay.setDirections(response); var leg = response.routes[0].legs[0]; makeMarker( leg.start_location, icons.start, "Ponto de Saída" ); makeMarker( leg.end_location, icons.end, 'Ponto de Chegada' ); $('#calculaRota').addClass('btn-success'); $('#calculaRota > i').removeClass('fa-refresh fa-spin').addClass('fa-check'); setTimeout(function () { $('#calculaRota').removeClass('btn-success'); $('#calculaRota > i').removeClass('fa-check').addClass('fa-road'); }, 3000); } else{ $('#calculaRota').addClass('btn-danger'); $('#calculaRota > i').removeClass('fa-refresh fa-spin').addClass('fa-times'); setTimeout(function () { $('#calculaRota').removeClass('btn-danger'); $('#calculaRota > i').removeClass('fa-times').addClass('fa-road'); }, 3000); alert('Não foi possível calcular a rota: ' + status); $('#inicio_rota').focus(); } }); } // Plota no mapa as coordenadas obtidas do histórico function tracarHistorico(){ limparMapaHist(); markers = posicoes; path = new google.maps.MVCArray(); poly = new google.maps.Polyline({ map: var_map, strokeColor: '#4986E7' }); waitingDialog.show('Traçando Mapa. Por favor aguarde.'); intervalTraceRoute = setInterval(function(){drawNewAnimatedMap();}, 5) $('#modal-historico').modal('toggle'); $("#historico .header").click(); $('#erase-trace').parent('.clear-trace').removeClass('hide'); $('#erase-trace').click(function(){ for (var i = 0; i < lat_lng.length; i++){ lat_lng.splice(i, 1); } poly.setMap(null); limparMapaHist(); console.log(markerArrayHist.length); path.clear(); $('#erase-trace').parent('.clear-trace').addClass('hide'); }); } function pinSymbol(color) { return { path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0', fillColor: color, fillOpacity: 1, strokeColor: '#000', strokeWeight: 0.5, scale: 1, }; } function makeMarker(position, color, title, tipo, retorna){ var marker = new google.maps.Marker({ position: position, map: var_map, icon: pinSymbol(color), title: title, label: tipo, animation: google.maps.Animation.DROP }); markerArray.push(marker); if(retorna) return marker; } function verNoMapa(lat, lon) { var image = 'imagens/coordenada.png'; var posHist = new google.maps.LatLng(lat, lon); var pointMarker = new google.maps.Marker({ position: posHist, map: var_map, icon: image, animation: google.maps.Animation.DROP }); markerArrayHist.push(pointMarker); pointMarker.setMap(var_map); var_map.setZoom(16); var_map.panTo(posHist); } function limparMapa(){ var j = 0; while(j < 10){ for(var i = 0; i < markerArray.length; i++){ markerArray[i].setMap(null); marcadores.splice(i, 1); markerArray.splice(i, 1); } for(var h = 0; h < markerArrayHist.length; h++){ markerArrayHist[i].setMap(null); markerArrayHist.splice(i, 1); } j++; } poly.setMap(null); markerArray = []; markerArrayHist = []; marcadores = []; directionsDisplay.setDirections({routes: []}); $("#slide-panel").addClass('hide'); $("#inicio_rota").val(""); $("#destino_rota").val(""); } function limparMapaHist(){ var j = 0; var i = 0; while(j < 10){ for (i = 0; i < markerArrayHist.length; i++){ markerArrayHist[i].setMap(null); markerArrayHist.splice(i, 1); } j++; } markerArrayHist = []; } var posVeiculoCerca; function alterarComboVeiculo(imei){ $('#dropdownVeiculos').dropdown('toggle'); $('#relatorio').empty(); limparMapa(); clearInterval(delayAutoload); posicionarVeiculo(imei); flightPlanCoordinates = []; delayAutoload = setInterval(function(){ posicionarVeiculo(imei)},30 * 1000); exibirListagemHistorico(imei); } function posicionarVeiculo(imei){ console.log('*'); //limparMapa; if(imei){ $.ajax({ url: "veiculoDados.php", type: "GET", data: {filtro: imei}, success: function(aDados){ var infowindow = new google.maps.InfoWindow(); var marker, i; var markers = new Array(); var enderecos = new Array(); var endereco; var datas = new Array(); var velocidades = new Array(); var aDados = eval('('+aDados+')'); for(var i = 0; i < aDados.length; i++){ var dados = aDados[i]; if(dados.sinal == 'D'){ var imgTipo = '_inativo.png'; } else{ if(dados.block == 'S') var imgTipo = '_bloqueado.png'; else var imgTipo = '_ativo.png'; } switch (dados.tipo){ case 'moto': var tipo = 'Moto'; break; case 'carro': var tipo = 'Carro'; break; case 'jetski': var tipo = 'Jetski'; break; case 'trator': var tipo = 'Trator'; break; case 'caminhao': var tipo = 'Caminhão'; break; case 'onibus': var tipo = 'Ônibus'; break; default: var tipo = 'Carro'; break; } $.ajax({ url: "coresIcones.php", type: "GET", data: {imei:imei}, success: function (response) { var dadoss = $.parseJSON(response); for (var j=0;j<dadoss.length;j++){ if (dadoss[j].diff*1 > dadoss[j].tempo*1){ // javascript estava tratando como texto, multiplicando por 1 ele trata como numero -> zignal cor_icone = dadoss[j].cor; } } var myLatLng = new google.maps.LatLng(dados.latitude, dados.longitude); if (dados.latitude != latitude_anterior) { for (var i = 0; i < markerArray.length; i++) { markerArray[i].setMap(null); } latitude_anterior = dados.latitude; var pointMarker = makeMarker(myLatLng, cor_icone, dados.name, tipo, true); posVeiculoCerca = new google.maps.LatLng(-23.548900, -46.638800); google.maps.event.addListener(pointMarker, 'click', (function(pointMarker, i){ return function(){ infowindow.setContent( "<b>Identificação: </b>" + dados.apelido + "<br /><b>Veículo:</b> " + dados.marca + " " + dados.modelo + "<br /><b>Placa:</b> " + dados.name + "<br /><b>IMEI:</b> " + dados.imei + "<br /><b>Chip: </b>" + dados.identificacao + //"<br /><b>Rastreador: </b>" + aDados[i]["modelo_rastreador"] + "<br /><b>Data: </b> " + dados.data + "<br /><b>Velocidade:</b>" +dados.velocidade+' Km/h' ); infowindow.open(var_map, pointMarker); } })(pointMarker, i)); marcadores.push(dados); google.maps.event.addListener(var_map, "click", function(){ infowindow.close(); }); lat_lng.push(myLatLng); flightPlanCoordinates.push(myLatLng); var flightPath = new google.maps.Polyline({ path: flightPlanCoordinates, geodesic: false, strokeColor: '#FF0000', strokeOpacity: 1.0, strokeWeight: 2, }); flightPath.setMap(var_map); /* var marker = new google.maps.Marker({ position: myLatLng, icon: 'img/pinroteamento.png', map: var_map, clickable: true }); */ // . atualizar historico exibirListagemHistorico(imei); } var_map.panTo(myLatLng); if(aDados.length > 1) var_map.setZoom(10); else{ var_map.setZoom(16); //exibirListagemHistorico(imei); $.ajax({ url: "hodometro.php", type: "GET", data: {acao: 'hodometro_atual', imei: imei}, dataType: "JSON", success: function (infoHodometro){ $('#hod_atual').val(infoHodometro.hodometro); $('#alerta_hodometro').val(infoHodometro.alerta_hodometro); } }); } if (dados.length > 0){ for (var i = 0; i < dadoss.length; i++) { if (dadoss[i].diff > dadoss[i].tempo){ } } } }, error: function (xhr, ajaxOptions, thrownError) { console.log(thrownError); } }); } } }); } else posicionaHistorico(); } /* function autoReload(){ if(markerArray.length > 0){ for (var i = 0; i < markerArray.length; i++){ $.ajax({ url: "historicoListagem.php", type: "GET", data: {'imei': marcadores[i].imei}, success: function (result){ $("#historico .content table tbody").html(result); } }); $.ajax({ url: "veiculoDados.php", data: {posicao: marcadores[i].imei}, success: function (coordenadas){ var coordenadas = eval('('+coordenadas+')'); for(var i = 0; i < coordenadas.length; i++){ var novaPos = new google.maps.LatLng(coordenadas[i].latitude, coordenadas[i].longitude); markerArray[i].setPosition(novaPos); var dados = coordenadas[i]; if(dados.sinal == 'S' || dados.sinal == 'D'){ var imgTipo = '_inativo.png'; } else{ if (dados.block == 'S') var imgTipo = '_bloqueado.png'; else var imgTipo = '_ativo.png'; } switch (dados.tipo) { case 'Moto': var image = 'imagens/marker_moto' + imgTipo; break; case 'Carro': var image = 'imagens/marker_carro' + imgTipo; break; case 'JetSqui': var image = 'imagens/marker_jet' + imgTipo; break; case 'Caminhao': var image = 'imagens/marker_caminhao' + imgTipo; break; case 'Van': var image = 'imagens/marker_van' + imgTipo; break; case 'Pick-up': var image = 'imagens/marker_pickup' + imgTipo; break; case 'Ônibus': var image = 'imagens/marker_onibus' + imgTipo; break; default: var image = 'imagens/marker_carro' + imgTipo; break; } if(markerArray[i].getIcon() != image){ markerArray[i].setIcon(image); } } } }); } } } setInterval(autoReload, 2000); */ var poly; var polyOptions = { strokeColor: '#000000', strokeOpacity: 1.0, strokeWeight: 3, map: var_map } poly = new google.maps.Polyline(polyOptions); function drawNewAnimatedMap(){ i = counterTrace; var lat_lng = []; var data = markers[i]; if(i == 0){ var iconeImg = icons.start; } else{ if(i == (markers.length -1)){ var iconeImg = icons.end; } else{ if(data.ligado != 'Sim'){ var iconeImg = 'imagens/historico_dot_vermelho.png'; } else{ var iconeImg = 'imagens/historico_dot_azul.png'; } } } var myLatlng = new google.maps.LatLng(data.lat, data.lng); lat_lng.push(myLatlng); var path = poly.getPath(); path.push(myLatlng); var marker = new google.maps.Marker({ position: myLatlng, icon: iconeImg, map: var_map, clickable: true }); marker.info = new google.maps.InfoWindow({ content: '<b>Data: </b> ' + data.horario + '<br /><b>Velocidade:</b> ' + data.velocidade }); google.maps.event.addListener(marker, 'mouseover', function(){ marker.info.open(var_map, marker); }); google.maps.event.addListener(marker, 'mouseout', function(){ marker.info.close(); }); var_map.panTo(myLatlng); var_map.setZoom(17); latlngbounds.extend(marker.position); markerArrayHist.push(marker); if(i == markers.length-1){ clearInterval(intervalTraceRoute); var_map.setCenter(latlngbounds.getCenter()); var_map.fitBounds(latlngbounds); waitingDialog.hide(); } counterTrace++; } var myApp; myApp = myApp || (function(){ var pleaseWaitDiv = $('<section class="modal hide" id="pleaseWaitDialog" data-backdrop="static" data-keyboard="false"><section class="modal-header"><h1>Processando...</h1></section><section class="modal-body"><section class="progress progress-striped active"><section class="bar" style="width: 100%;"></section></section></section></section>'); return{ showPleaseWait: function() { pleaseWaitDiv.modal(); }, hidePleaseWait: function () { pleaseWaitDiv.modal('hide'); }, }; })(); var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); h = h - 51 + "px"; w = w + "px"; document.getElementById("map-canvas").style.height = h; document.getElementById("map-canvas").style.width = w; $(window).resize(function(){ var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); h = h - 51 + "px"; w = w + "px"; document.getElementById("map-canvas").style.height = h; document.getElementById("map-canvas").style.width = w; }); </script> </body> </html>
  2. rubenspsi

    Link em um MAPA

    Pessoal boa tarde a todos. Veja se alguém poderia me auxiliar, eu tenho um arquivo em html que é um mapa do estado de minas gerais, a minha ideia, é: quando alguém passar o mouse sobre a cidade ela apareça o nome e um link clicável para acessar outra página, alguém poderia me ajudar, a página está no seguinte endereço: rubenssantana.com/mapa/index.html - OBRIGADO
  3. Estou fazendo iniciando um app com Ionic 3, e utilizando a API do google para geolocalização. Segui tutoriais e mesmo assim deu esse erro quando abro a página que deveria aparecer o mapa " Runtime Error Uncaught (in promise): TypeError: Cannot read property 'firstChild' of null " Já procurei em alguns lugares e não encontro solução, nenhuma funciona. To precisando de ajuda com esses mapinhas. HTML da página inicial... <ion-header> <ion-navbar> <ion-title> Teste </ion-title> </ion-navbar> </ion-header> <ion-content padding> <ion-list> <ion-item> Latitude: {{lat}} </ion-item> <ion-item> Longitude: {{lon}} </ion-item> </ion-list> <button (click)="openMap()">Mapa</button> </ion-content> .ts da página inicial: import { Component } from '@angular/core'; import { NavController } from 'ionic-angular'; import { Geolocation } from '@ionic-native/geolocation'; import { MapPage } from '../map/map'; @Component({ selector: 'page-home', templateUrl: 'home.html' }) export class HomePage { lat:any=0.0; lon:any=0.0; constructor(public navCtrl: NavController, public geolocation: Geolocation) { //[ .. outra parte do código .. ] this.geolocation.getCurrentPosition().then((resp) => { // resp.coords.latitude // resp.coords.longitude this.lat = resp.coords.latitude; this.lon = resp.coords.longitude; }).catch((error) => { console.log('Error getting location', error); }); let watch = this.geolocation.watchPosition(); watch.subscribe((data) => { // data can be a set of coordinates, or an error (if an error occurred). // data.coords.latitude // data.coords.longitude }); } openMap(){ this.navCtrl.push(MapPage); } } //[ .. outra parte do código .. ] //} HTML da página do mapa: <ion-header> <ion-navbar> <ion-title>map</ion-title> </ion-navbar> </ion-header> <ion-content padding> <div id="mapa" > </div> </ion-content> .ts da página do mapa: import { Component } from '@angular/core'; import { IonicPage, NavController, NavParams, Platform } from 'ionic-angular'; import '../map/map'; import { Geolocation } from '@ionic-native/geolocation'; declare var google: any; /** * Generated class for the MapPage page. * * See https://ionicframework.com/docs/components/#navigation for more info on * Ionic pages and navigation. */ @IonicPage() @Component({ selector: 'page-map', templateUrl: 'map.html', }) export class MapPage { private initPage(){ let LatLng = new google.maps.LatLng(-22.913293, -43.688930); let mapOptions = { center: LatLng, zoom: 15, mapTypeId: google.maps.MapTypeId.ROADMAP, disableDefaultUI: true } let elemento = document.getElementById('mapa'); let mapa = new google.maps.Map(elemento, mapOptions); } //ionViewDidLoad() { // console.log('ionViewDidLoad MapPage'); //} constructor(public navCtrl: NavController, public navParams: NavParams, platform: Platform) { platform.ready().then(() =>{ this.initPage(); }, (err) => { console.log(err); }); } } E na index.html (só uma parte): <!--para o api do google maps .................................................................. --> <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com; script-src 'self' https://*.googleapis.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';"> <title>Ionic App</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico"> <link rel="manifest" href="manifest.json"> <meta name="theme-color" content="#4e8ef7"> <!-- google maps .............................................................................. --> <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?&sensor=false"></script> Talvez seja informação demais, mas, acho melhor que tenha mais do que menos.
  4. Username_

    Como criar um mapa como este?

    Olá, Alguém poderia me ajudar informando como eu poderia criar um mapa igual a esse? Salvei as imagens para poderem analisar melhor. Como eu poderia fazer isso utilizando PHP e Javascript? O banco de dados eu já vi, ficam guardados valores que se referem ao tipo de terreno(quadrado) e de acordo com esses valores é importado a imagem do tile correspondente. Mas não consigo pensar sobre mais do que isto. Como eu poderia criar um mapa assim? Utilizar arrays? Como? Como trabalhar a interação com este mapa? É feito com Javascript? Como gerar um mapa randomico que se ligue um ao outro de acordo com a posição das setas do mapa? São muitas dúvidas. Alguém poderia me ajudar. Mapa: http://devana.eu/game/grid.php <a href="http://s557.photobucket.com/user/Usuario_/media/Grid_zpszhccb3dy.png.html" target="_blank"><img src="http://i557.photobucket.com/albums/ss16/Usuario_/Grid_zpszhccb3dy.png" border="0" alt=" photo Grid_zpszhccb3dy.png"></a> <a href="http://s557.photobucket.com/user/Usuario_/media/Grid_Terrenos_zps4xd0n0f1.png.html" target="_blank"><img src="http://i557.photobucket.com/albums/ss16/Usuario_/Grid_Terrenos_zps4xd0n0f1.png" border="0" alt=" photo Grid_Terrenos_zps4xd0n0f1.png"></a> Obrigado.
  5. mldiogo87

    Desenvolvimento de mapa do Brasil com coordenadas

    Bom dia! Estou fazendo um site de viagens e gostaria de fazer um mapa do brasil colocando nele os relatos de viagens localizados geograficamente em cada região... Como o site é responsivo, gostaria de uma sugestão de qual seria o melhor recurso a ser utilizado para eu estudar.. Agradeço-lhes
  6. Julio.mac

    Usar php para calcular latitude/ longitude do Mapa

    Boa tarde. Estou usando um código JavaScript que usa a latitude e longitude para gerar os valores: sw_lat sw_lng ne_lat ne_lng Após o JavaScript usar a latitude e longitude é gerado os valores para sw_lat, sw_lng, ne_lat, ne_lng para fazer um http request. A url é formada com os pametros: http://www.example.com/v1/bizs?sw_lat=38.70881635599164&sw_lng=-107.03125&ne_lat=46.0329596654222&ne_lng=-92.96875 Minha dúvida é como faço para usar a longitude/ latitude para calcular em PHP esses valores: sw_lat = 38.70881635599164 sw_lng = -107.03125 ne_lat = 46.0329596654222 ne_lng = -92.96875 Por favor, alguém pode me ajudar a resolver esse problema? Abraço
  7. sergioas

    Android Map nao Localiza o Usuario no Mapa

    Bom Dia, Estou iniciando em android e fazendo um app basico de localizacao em tempo real do usuario. Criei uma activity basica de map, e fiz a codificacao para utilizar o gps e ir atualizando conforme o usuario se movimenta, e mostrando a localizacao no mapa de ruas. Quando simulo no meu celular o app roda e mostra o mapa, mas vejo que NAO ATIVA O GPS, quando o app abre, e consequentemente nao mostra a localizacao do usuario. Deve estar acontecendo algo com a permissao em tempo real, que eu nao sei como fazer. Pelo Log que coloquei ele entra no if da permissao. Se alguem conseguir me ajudar... Segue minha activity e meu Manifest. Activity: public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, LocationListener { private GoogleMap mMap; private Marker marcador; double lat = 0.0; double lng = 0.0; private int precisaoMinimaExigida = 2000; // Precisão do serviço de localização em metros. private int intervaloTempoLeituraGPS = 5000; // De quanto em quanto tempo (milissegundos) avisará que mudou de posição. private int distanciaLeituraGPS = 0; // De quantos em quantos metros avisará que mudou a posição. private int intervaloTempoREDE = 5000; // De quanto em quanto tempo (milissegundos) avisará que mudou de posição. private int distanciaREDE = 0; // De quantos em quantos metros avisará que mudou posição. // Define os elementos visuais para exposição das informações no dispositivo. // private EditText editTextPosicoes; // private ScrollView scroller; // Define o gerenciador de localização. private LocationManager locationManager; // Filtro para definir o evento de broadcast que o app aguardará. // No caso "android.location.LocationManager.PROVIDERS_CHANGED_ACTION". private IntentFilter filter; // Caixa de diálogo para interação com o usuário. private AlertDialog alert; // Variáveis de controle dos provedores de localização habilitados na configuração do Android. private Boolean provedorGPS_Habilitado; private Boolean provedorREDE_Habilitado; // Cria um Broadcast Receiver para que a MainActivity seja avisada caso o usuário mude as configurações de localização por fora do app // (deslizando a tela para baixo e clicando no ícone do GPS, por exemplo). // Isso é necessário porque durante a execução, o usuário tem como mudar as configurações de localização sem usar o próprio aplicativo. BroadcastReceiver bReceiver = new BroadcastReceiver() { @Override public void onReceive(Context arg0, Intent arg1) { // Chama o método que localiza o usuário. localizarUsuario(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_maps); // Obtain the SupportMapFragment and get notified when the map is ready to be used. SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); mapFragment.getMapAsync(this); /////// // Registra o receiver para que o app seja avisado quando o usuário modificar as configurações de localização do dispositivo. filter = new IntentFilter(android.location.LocationManager.PROVIDERS_CHANGED_ACTION); this.registerReceiver(bReceiver, filter); localizarUsuario(); } public void localizarUsuario() { // Este método efetivamente realiza a localização do usuário, configurando um "locationManager". // Através do locationManager o dispositivo utiliza ou o GPS ou a REDE para descobrir a localização // do usuário. Note que, na configuração do aparelho, podem estar habilitados ambos os métodos, // algum deles, ou nenhum. Para cada caso, uma mensagem de alerta deverá ser mostrada, // questionando o usuário se deseja ligar as ferramentas de localização. try { // Obtém o locationManager. locationManager = (LocationManager) getSystemService(getApplicationContext().LOCATION_SERVICE); // Há provedores de localização diversos. // O GPS_PROVIDER usa o hardware de GPS dispositivo para obter localização via satélite. // O NETWORK_PROVIDER obterá a localização a partir da triangulação de antenas da rede de telefonia celular. // Verifica se os provedores de localização estão habilitados. provedorREDE_Habilitado = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); provedorGPS_Habilitado = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); // Caso não haja nenhum provedor de localização habilitado... if (!provedorREDE_Habilitado && !provedorGPS_Habilitado) { Log.i("PROVEDORES","NAO ESTAO HABILITADOS"); // Não há provedores de localização habilitados. // Perguntar ao usuário se deseja habilitar. // Monta a caixa de diálogo. AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder .setMessage("O serviço de localização está desabilitado. Deseja mudar a configuração?") .setCancelable(false) .setPositiveButton("Configurar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { abreConfiguracaoDoDispositivo(); } }); alertDialogBuilder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); // editTextPosicoes.setText("Selecione uma forma de obter a localização\npelo menu Configurar."); } }); alert = alertDialogBuilder.create(); // Mostra a caixa de diálogo. if (!alert.isShowing()) { alert.show(); } } else { Log.i("PROVEDORES"," ESTAO HABILITADOS"); // Se serviço de localização já foi configurado... if (provedorGPS_Habilitado) { configuraProvedorGPS(); Log.i("CONFIGURANDO GPS","CONFIGURANDO GPS"); } else { // Caso apenas o serviço de localização por REDE esteja habilitado, sugere o GPS. // Monta a caixa de diálogo. AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder .setMessage("Gostaria de habilitar o GPS para uma precisão maior?") .setCancelable(false) .setPositiveButton("Sim", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { abreConfiguracaoDoDispositivo(); } }); alertDialogBuilder.setNegativeButton("Não", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); configuraProvedorREDE(); } }); alert = alertDialogBuilder.create(); // Mostra a caixa de diálogo. if (!alert.isShowing()) { alert.show(); } } } } catch (Exception e) { Log.i("gps", e.getMessage() + " " + e.getLocalizedMessage()); } } public void abreConfiguracaoDoDispositivo() { // Este método abre a tela de congifuração de localização do dispositivo. Intent callGPSSettingIntent = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS); (this).startActivity(callGPSSettingIntent); } public void configuraProvedorGPS() { // minTimeGPS é de quanto em quanto tempo (em milissegundos), a informação da localização será atualizada via GPS. // minDistanceGPS é de quantos em quantos metros a informação da localização será atualizada via GPS. long minTimeGPS = intervaloTempoLeituraGPS; long minDistanceGPS = distanciaLeituraGPS; locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTimeGPS, minDistanceGPS, this); Log.i("GPS CONFIGURADOOOO","GPS CONFIGURADOOOO"); // Configura o locationManager para chamar o método OnLocationChanged() de acordo com as premissas estabelecidas. if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { Log.i("SEM PERMISSAO","SEM PERMISSAO"); return; } } public void configuraProvedorREDE() { // minTimeNETWORK é de quanto em quanto tempo (em milissegundos), a informação da localização será atualizada via triangulação de antenas. // minDistanceNETWORK é de quantos em quantos metros a informação da localização será atualizada via via triangulação de antenas. long minTimeNETWORK = intervaloTempoREDE; long minDistanceNETWORK = distanciaREDE; // Configura o locationManager para chamar o método OnLocationChanged() de acordo com as premissas estabelecidas. if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return; } locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, minTimeNETWORK, minDistanceNETWORK, this); } /** * Manipulates the map once available. * This callback is triggered when the map is ready to be used. * This is where we can add markers or lines, add listeners or move the camera. In this case, * we just add a marker near Sydney, Australia. * If Google Play services is not installed on the device, the user will be prompted to install * it inside the SupportMapFragment. This method will only be triggered once the user has * installed Google Play services and returned to the app. */ @Override public void onMapReady(GoogleMap googleMap) { mMap = googleMap; } private void agregarMarcador(double lat, double lng) { LatLng coordenadas = new LatLng(lat, lng); CameraUpdate miUbicacion = CameraUpdateFactory.newLatLngZoom(coordenadas, 16); if (marcador != null) marcador.remove(); marcador = mMap.addMarker(new MarkerOptions() .position(coordenadas) .title("Minha Posicao atual") .icon(BitmapDescriptorFactory.fromResource(android.R.mipmap.sym_def_app_icon))); mMap.animateCamera(miUbicacion); } private void actualizarUbicacion(Location location) { if (location != null) { lat = location.getLatitude(); lng = location.getLongitude(); agregarMarcador(lat, lng); } } @Override public void onLocationChanged(Location location) { // Este método será chamado toda vez que houver uma atualização da localização do usuário. // A atualização da localização ocorre de acordo com o configurado no locationManager. try { // Obtém a informação da precisão da localização, em metros. float precisao=location.getAccuracy(); // Se a precisão for menor ou igual à precisão mínima exigida (em metros), então mostra a localização na tela. // A precisão mínima exigida depende da aplicação. if (precisao <= precisaoMinimaExigida) { actualizarUbicacion(location); } } catch (Exception e) { } } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } @Override protected void onDestroy() { super.onDestroy(); // Desregistra o Broadcast Receiver. unregisterReceiver(bReceiver); } } ============================ Manifest: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="goodeal.localizacaousuarios2"> <!-- The ACCESS_COARSE/FINE_LOCATION permissions are not required to use Google Maps Android API v2, but you must specify either coarse or fine location permissions for the 'MyLocation' functionality. --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.LOCATION_HARDWARE" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <!-- The API key for Google Maps-based APIs is defined as a string resource. (See the file "res/values/google_maps_api.xml"). Note that the API key is linked to the encryption key used to sign the APK. You need a different API key for each encryption key, including the release key that is used to sign the APK for publishing. You can define the keys for the debug and release targets in src/debug/ and src/release/. --> <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key" /> <activity android:name=".MapsActivity" android:label="@string/title_activity_maps"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
  8. guigaviana

    mapa personalizado

    Fala galera! É o seguinte, preciso desenvolver uma pagina na qual eu crie um mapa com os pontos e as informações que eu quero, e que o visitante quando entrar aparece de automático o local mais próximo a ele, explicando melhor: - Irei marcar no mapa todas as pessoas que revendem produtos da minha loja, com o endereço, telefone, etc. - Quando o visitante entrar o mapa vai centralizar na localização em que ele está e exibira ao lado do mapa as opções mais próximas a ele, exibindo a distância, etc. Segue um site que o sistema é parecido com o que preciso, mais nesse site você tem que pesquisar o que quer, no caso do meu só serviria pra mostrar o local mais próximo a ela. http://divulgacity.com.br/listagem-categoria/ponto-turistico/ Caso alguém possa me auxiliar a montar esse modelo, ficaria muito grato. Obrigado
  9. AmiltonTeles

    Problemas no Código com iframe do google Maps

    Olá galera, tenho um software e a versão online desse software no qual trabalho com a divulgação de clientes da minha cidade. Dentro deste programa o cliente tem um espaço no qual o programa busca em um código PHP o iframe que a pagina do google Maps disponibiliza para incorporar o mapa. A um ano e pouco mais ou menos sempre funcionou perfeitamente tanto no programa quando no meu site que usa do mesmo código PHP do programa tambem, porem ontem o programa esta aparecendo a tela do google maps em branco e mais nada mais o site esta tudo ok, não entendi porque parou de funcionar, se alguem poder me dar uma luz agradeceria muito!!! Segue fotos de como esta o programa depois deste problema e meu código: <?php //CODIGO ANTES if ($endereco == "") { //$endereco = '<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d30284.691662735564!2d-49.217613105834985!3d-18.411663076758142!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x94a10d42f64e9f31%3A0x46945389f6e9719b!2spra%C3%A7a+da+republica!5e0!3m2!1spt-BR!2sbr!4v1401219370032" width="600" height="450" frameborder="0" style="border:0"></iframe>'; $endereco = '<iframe src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d3785.7362106880078!2d-49.225916999999995!3d-18.404853000000003!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x94a10d0b9e10ee73%3A0xfacaf3615a8140a3!2sVerFone!5e0!3m2!1spt-BR!2sbr!4v1402002961722" width="600" height="450" frameborder="0" style="border:0"></iframe>'; } $endereco = str_replace('width="600"', 'width="650"', $endereco); $endereco = str_replace('height="450"', 'height="500"', $endereco); ?> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> <html xmlns='http://www.w3.org/1999/xhtml'> <head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> <!--<meta http-equiv="X-UA-Compatible" content="IE = 9">--> <title>VerFone - GoogleMaps</title> <!-- --> <script src="http://code.jquery.com/jquery-2.0.0.js"></script> <script src="http://malsup.github.io/jquery.cycle.all.js"></script> <script language="JavaScript" src="../java/PreencheSelectCidadeOff.js"></script> </head> <!-- <script type="text/javascript" charset="utf-8"> $(window).load(function(){ // alert("OK - 00"); setTimeout('preencheform()', 400); }); </script> --> <body background="mapa.jpg"> <table> <tr> <td width="220"> </td> <td> <form id="form1" name="form1" method="post" action="javascript:AbreGoogleMapsPesquisa();"> <table width="665" valign="top" border="0" cellpadding="1" cellspacing="1"> <tr> <td align="left" valign="top"> <b><label id="lbluf" for="cbouf" >Estado</label></b> <select id="cbouf" name="cbouf" style="width:52px; height=80px;" onchange="javascript:PreencheCidade()"> <option value="">-UF-</option> <option class="uf-AC" value="AC">AC</option> <option class="uf-AL" value="AL">AL</option> <option class="uf-AM" value="AM">AM</option> <option class="uf-AP" value="AP">AP</option> <option class="uf-BA" value="BA">BA</option> <option class="uf-CE" value="CE">CE</option> <option class="uf-DF" value="DF">DF</option> <option class="uf-ES" value="ES">ES</option> <option class="uf-GO" value="GO">GO</option> <option class="uf-MA" value="MA">MA</option> <option class="uf-MG" value="MG">MG</option> <option class="uf-MS" value="MS">MS</option> <option class="uf-MT" value="MT">MT</option> <option class="uf-PA" value="PA">PA</option> <option class="uf-PB" value="PB">PB</option> <option class="uf-PE" value="PE">PE</option> <option class="uf-PI" value="PI">PI</option> <option class="uf-PR" value="PR">PR</option> <option class="uf-RJ" value="RJ">RJ</option> <option class="uf-RN" value="RN">RN</option> <option class="uf-RO" value="RO">RO</option> <option class="uf-RR" value="RR">RR</option> <option class="uf-RS" value="RS">RS</option> <option class="uf-SC" value="SC">SC</option> <option class="uf-SE" value="SE">SE</option> <option class="uf-SP" value="SP">SP</option> <option class="uf-TO" value="TO">TO</option> </select> </td> <td align="left" valign="top"> <b><label id="lblcidade" for="txtcidade" >Informe a cidade</label></b> <select id="cbocidade" name="cbocidade" style="width:245px; "> <option value="">---Selecione UF---</option> </select> </td> <td align="left" valign="top"> <b><label id="lblendereco" for="txtendereco" >Informe o endereço</label></b> <input name="txtendereco" type="text" id="txtendereco" size="30" maxlength="60" style="text-transform:uppercase;" /> </td> <td width="104" align="left" valign="botton"> <br> <input type="image" name="imageField" id="imageField" width="91" height="23" src="http://www.atendimentonet.com/bancodados/RedesSociaisImagem.php?Local=225&UF=GO&Municipio=ITUMBIARA" onClick="submit"/> <!--width="103" height="26"--> </td> </tr> </table> </form> <!-- preview?q=caldas+novas,+go,+coronel+bento+godoy,+179 <iframe src='https://www.google.com/maps/' width='720' height='550' frameborder='0' style='border:0'></iframe> <iframe src='https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d3785.568965868044!2d-49.24586644682248!3d-18.41245837339567!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x94a10d015ff47ddb%3A0x922dfe59f39843ed!2sSantos+Dumont!5e0!3m2!1spt-BR!2sbr!4v1400934740588' width='720' height='550' frameborder='0' style='border:0'></iframe> --> <?php echo $endereco; ?> </td> </tr> </table> <script> function preencheform() { // $("#cbouf option[value='<?php echo $UfAss; ?>']").attr("selected", true); // alert("OK - 01"); // alert("OK - 02"); // $("#cbocidade option[value='<?php echo $municipio; ?>']").attr("selected", true); document.getElementById('cbouf').value = '<?php echo $UfAss; ?>'; PreencheCidade(); document.getElementById('cbocidade').value = '<?php echo $municipio; ?>'; document.getElementById('txtendereco').focus(); } function AbreGoogleMapsPesquisa() { // alert("http://www.verfone.com.br/verfoneoff/googlemaps_Pesquisa.php?uf="+document.getElementById('cbouf').value+"&municipio="+document.getElementById('cbocidade').value+"&logradouro="+document.getElementById('txtendereco').value); window.location.href = "http://www.verfone.com.br/verfoneoff/googlemaps_Pesquisa.php?uf="+document.getElementById('cbouf').value+"&municipio="+document.getElementById('cbocidade').value+"&logradouro="+document.getElementById('txtendereco').value; } // preencheform(); setTimeout('preencheform()', 500); </script> </body> </html> PROGRAMA: SITE
  10. Pacheco51

    Reset no Mapa ao bater a tecla "Enter"

    Olá Pessoal, Espero que estejam todos bem! O caso é o seguinte, eu tenho um mapa de lojas no site http://icover.com.br/comprar.php O mapa esta funcionando em wordpress usando uma extensão chamada Store Locator Plus (muito boa por sinal) e coloquei dentro dessa pagina através de uma iframe, cujo o link original do mapa é no http://icover.com.br/blog/ Até aí tudo bem, Sem problemas. Mas gostaria de uma "frescurinha" para dar uma melhorada na UX do mapa, para os mais variados tipos de usuários, que é ao realizar uma busca sem sucesso, e a pessoa quiser resetar o mapa para o inicial (mapa completo) seria somente limpar a aba do form e bater a tecla enter. Outra solução seria: Ou até mesmo colocar um botão em algum canto pra realizar o reset do mapa ou refresh da pag (dentro da iframe) Alguém poderia me dar uma luz, pois estou sem idéias de como fazer isso Agradeço desde já a todos os usuários!
  11. AlissonDesign

    Mapbox com multiplus lugares

    Olá, bom eu já olhei na documentação do mapbox mais não consegui fazer. Minha duvida é a seguinte: eu telho uma lista de algumas cidades e quero que ao passar o mouse o mapa mostre a localização daquela cidade, isso de forma alternada.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.