Jump to content

Thais Hoe

Members
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

0 Comum

About Thais Hoe

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Bom dia! Trabalho muito pouco com o JavaScript e preciso fazer um script que: Pega a localização do cliente >> Faz o calculo da distância entre a localização e cada loja >> Faz o calculo de qual loja está mais próxima (em KM) >> Se a distancia da loja mais próxima for inferior a 30km = Mostra aviso com o endereço da loja mais próxima (se possível um botão pra ir pra pagina de informações, ou um popup que consiga colocar endereço,telefone,etc) >> Se a distancia da loja mais próxima for superior a 30km = exibe aviso de que não tem lojas próximas a localização atual dele. Fiz com "alert" os avisos, mas se eu conseguisse fazer tudo isso com um popup seria legal. Por hora coloquei duas lojas apenas, mas posteriormente vou ter que colocar mais de 10, então se houver um jeito de fazer esse código ser mais "limpo" quando isso acontecer (criando uma lista ou algo do gênero) também agradeço. Tenho um código mais ou menos pronto, mas como não domino a linguagem acredito que contém alguns erros: // Lojas var Americana = { posicao : { latitude1 : -22.742685, longitude1 : -47.341661 } } var BeloHorizonte = { posicao : { latitude2 : -19.935678, longitude2 : -43.970808 } } var Parametro = { distanciaMaxima : 30, // Funcao que ira verificar se o cliente esta por perto mostraLoja : function( posicao ){ var distancia = MenorDistancia; // Verifica se o cliente nao esta muito longe if( distancia <= this.distanciaMaxima ){ if ( confirm( 'A loja mais próxima está à ' + distancia + ' KM ' ) ){ alert( 'Ver mais dados da loja' ); } } else { alert( 'Ops, você está muito longe, não temos uma loja próxima' ); } } }; // Objeto localizacao var Localizacao = { // Inicia inicia : function(){ // Quando o browser retorna a posicao do usuario var sucesso = function( posicao ){ Parametro.mostraLoja( posicao.coords ); }; // Erro no processo de obter a posicao var erro = function( erro ){ var erroDescricao = 'Ops, '; switch( erro.code ) { case erro.PERMISSION_DENIED: erroDescricao += 'usuário não autorizou a Geolocation.'; break; case erro.POSITION_UNAVAILABLE: erroDescricao += 'localização indisponível.'; break; case erro.TIMEOUT: erroDescricao += 'tempo expirado.'; break; case erro.UNKNOWN_ERROR: erroDescricao += 'não sei o que foi, mas deu erro!'; break; } alert( erroDescricao ) }; // Verifica se o browser do usuario tem suporte a geolocation if ( navigator.geolocation ){ navigator.geolocation.getCurrentPosition( sucesso, erro ); } else { erro(); } } }; // Objeto para calcular a distancia entre dois pontos // Adaptado dessa formula http://stackoverflow.com/questions/27928/how-do-i-calculate-distance-between-two-latitude-longitude-points var Distancia1 = { distanciaEntreDoisPontos1 : function( pontoInicial, pontoFinal ){ var R = 6371; // Radio da Terra var dLat = this.graus2Radianos( pontoFinal.latitude - pontoInicial.latitude1 ); var dLon = this.graus2Radianos( pontoFinal.longitude - pontoInicial.longitude1 ); var a = Math.sin( dLat/2 ) * Math.sin( dLat/2 ) + Math.cos( this.graus2Radianos( pontoInicial.latitude1 ) ) * Math.cos( this.graus2Radianos( pontoFinal.latitude ) ) * Math.sin( dLon/2 ) * Math.sin( dLon/2 ); var c = 2 * Math.atan2( Math.sqrt( a ), Math.sqrt( 1-a ) ); var d = R * c; return d; }, graus2Radianos : function( graus ){ return graus * ( Math.PI/180 ) } }; // Objeto para calcular a distancia entre dois pontos // Adaptado dessa formula http://stackoverflow.com/questions/27928/how-do-i-calculate-distance-between-two-latitude-longitude-points var Distancia2 = { distanciaEntreDoisPontos2 : function( pontoInicial, pontoFinal ){ var R = 6371; // Radio da Terra var dLat = this.graus2Radianos( pontoFinal.latitude - pontoInicial.latitude2 ); var dLon = this.graus2Radianos( pontoFinal.longitude - pontoInicial.longitude2 ); var a = Math.sin( dLat/2 ) * Math.sin( dLat/2 ) + Math.cos( this.graus2Radianos( pontoInicial.latitude2 ) ) * Math.cos( this.graus2Radianos( pontoFinal.latitude ) ) * Math.sin( dLon/2 ) * Math.sin( dLon/2 ); var c = 2 * Math.atan2( Math.sqrt( a ), Math.sqrt( 1-a ) ); var d = R * c; return d; }, graus2Radianos : function( graus ){ return graus * ( Math.PI/180 ) } }; var MenorDistancia = Math.min (Distancia1.distanciaEntreDoisPontos1, Distancia2.distanciaEntreDoisPontos2); $( document ).ready( function(){ Localizacao.inicia(); } );
  2. Thais Hoe

    Carrosel com texto

    Bom dia estou desenvolvendo um site, mas tenho pouquíssima (quase nenhuma) noção de JS. Preciso fazer um carrosel que mostre o nome de um cliente e a avaliação que ele deixou. Com base nesse código consegui fazer algo que funcione: O problema é que quando eu coloco o script js para aparecer a primeira avaliação (#wall-1), ao abrir a página ele direciona o navegador direto para a parte das avaliações, que no caso é no final da pagina, acima do rodapé. Sem o script, ele não aparece as avaliações... Tentei procurar um pouco sobre a propriedade window mas não consegui uma solução. Se alguém tiver uma solução ou um outro código (de preferencia simples como esse), me ajudaria muito. Obs: já coloquei o código no header, footer e em um arquivo separado .js EDIT: Se alguém puder me dizer como setar um timer também para mudar sozinho de avaliação agradeço. Obg
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.