Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joao b silva

distancia entre cidades

Recommended Posts


  • Conteúdo Similar

    • Por IgorBap
      Bom dia!
       
      Preciso escrever um código de algoritmo que realiza a conta de conversão de latitudes e longitudes em distância utilizando o Teorema de Pitágoras e não sei por onde começar.
      Encontrei esse calculo que poderá ser inserido.
       
      Triângulo Pitagórico

      Imaginemos 2 pontos P=(x1,y1) e Q=(x2,y2), obtemos a distância entre P e Q, traçando as projeções destes pontos
      sobre os eixos coordenados, obtendo um triângulo retângulo e usando o Teorema de Pitágoras.
      Pitagoras1.png (682 Bytes) Exibido 36730 vezes Assim, considerando 2 pontos de coordenadas (-22.902778, -43.206667) e (-23.548333, -46.636111)
      Calculando-se a distância entre eles, tem-se:
      Pitagoras2.png (2.14 KiB) Exibido 36729 vezes Pitagoras3.png (2.75 KiB) Exibido 36729 vezes A distância em graus resulta 3,4896744
      O raio da terra tem aproximadamente 6371km.
      Uma volta na terra tem 2 * pi * raio = 40030000m.
      Podemos, através de uma regra de 3 simples, obter a conversão do ângulo encontrado para uma distância em metros.
       

    • Por bessa238
      Bom dia galera, estou com um problema do qual não consigo resolver. É o seguinte, eu tenho 2 selects, um com as siglas dos estados brasileiros e outro com as cidades, o select de cidades é populado de acordo com o estado selecionado, até aí tudo bem. O problema é que estou usando um webservice do viacep para trazer dados de acordo com o cep preenchido, ao preencher o cep ele seta todos os dados corretamente, mas quando chega o valor da cidade, ele tenta setar o select antes do preenchimento das cidades. Sendo assim gostaria de saber se existe uma maneira de saber quando o select esta completamente carregado ? Segue o trecho do código…
      //Consulta o webservice viacep.com.br/ $.getJSON("https://viacep.com.br/ws/"+ cep +"/json/?callback=?", function(dados) { if (!("erro" in dados)) { //Atualiza os campos com os valores da consulta. $("#endereco").val(dados.logradouro); $("#bairro").val(dados.bairro); $("#estadoatual").val($('option:contains('+(dados.uf)+')').val()); $("#estadoatual").change(); $("#cidadeatual").val($('option:contains('+(dados.localidade).toUpperCase()+')').val()); $("#complemento").val(dados.complemento); } //end if. else { //CEP pesquisado não foi encontrado. limpa_formulário_cep(); alert("CEP não encontrado."); } });
    • Por Daniele Prada
      Boa noite Pessoal. Eu sigo trabalhando na minha rede social adulta, e na página "pesquisar", é possível buscar pessoas apenas pelo nome, gênero, relacionamento e status (pelo sistema original da plataforma) . Eu queria acrescentar buscar tambem por "CIDADES" ou "PESSOAS PRÓXIMAS". Como os desenvolvedores da plataforma que comprei, não auxiliam com customização, eles apenas compartilham dados sobre a estrutura e apontam quais arquivos editar. são TRÊS arquivos e um deles uma function, que ja tentei de todas as maneiras possíveis e não consegui. por favor me ajudem!
       
      PS: Vou postar as imagens por links, por que não estou conseguindo enviar imagens para o fórum. está dando erro.
       
      IMG 1: https://imgur.com/a/AuglfH0 (Como está atualmente.)
      IMG 2: https://imgur.com/a/ryOLG     (PHP onde devo inserir "cidades")
      IMG 3: https://imgur.com/a/I3pdI       (Onde devo inserir a function)
      IMG 4: https://imgur.com/a/u0M76   (Onde devo mostrar)
       
      O site para quem quiser verificar melhor é https://www.globsex.com.br 
    • Por Lutti Lutter
      Preciso alterar um arquivo, e selecionar todos os dados de uma tabela.
      Quando eu seleciono estados por exemplo, ele abre as cidades por estado que escolhi, e tenho que selecionar apenas uma cidade.. Mas eu quero ao selecionar um estado,  SELECIONAR TODAS AS CIDADES do estado que eu selecionar, e NÃO de selecionar apenas uma cidade.
       
      Segue script
       
      <div class="head">
          <span id="title" style="color:black;">{l_choose_a_city}</span>
          <a id="choose_city_close" class="icon_close" href=""></a>
      </div>
      <div class="cont">
          <ol id="selectable">
              {list_options}
          </ol>
      </div>
      <div class="foot">
          <a id="back_item" data-type="" class="back" href="#">{l_back_to_states}</a>
          <input id="choose_ok" type="button" class="btn blue fl_right" value="{l_ok}" />
      </div>
      <script>
      var param = ['geo_countries', 'geo_states', 'geo_cities'],
          param_geo = ['{country_id}', '{state_id}', '{city_id}'],
          param_list = ['', '', '{list_options_js}'],
          param_geo_set,
          param_list_set,
          title_back = ['{l_back_to_countries}', '{l_back_to_states}'],
          title = ['{l_choose_a_country}', '{l_choose_a_state}', '{l_choose_a_city}'];
          pp_choose_city = $('#pp_choose_city'),
          selectable = $('#selectable'),
          selectable_li = $('#selectable li'),
          back_item = $('#back_item'),
          title_head = $('#title'),
          choose_ok = $('#choose_ok'),
          step = 2,
          title_city = '',
          searchFilter=$('#filter_module_location_title'),
          isSearchFilter=searchFilter[0]?1:0,
          userNoCity = '{user_no_city}',
          opt=.6;
          if(typeof param_geo_init != 'undefined') {
              param_geo = param_geo_init;
          }
          param_geo_set = param_geo.concat();
          param_list_set = param_list.concat();
          selectable.scrollTo('#{selected_options}');
          $('.profile_city_choose').click(function(){
              setCountry();return false;
          });
          $('#choose_city_close').click(function(){
              pp_choose_city.close();return false;
          });
          choose_ok.click(function (){
              pp_choose_city.close();
              if (param_geo_set[2] != param_geo[2] || (userNoCity*1 && !isSearchFilter)) {
                  userNoCity = 0;
                  param_geo_set = param_geo;
                  param_list_set = param_list;
                  title_city = $('#selectable li.selected').text();
                  // search page filter
                  var filter=$('#filter_module_location_title');
                  if(filter[0]) {
                      filter.text(title_city);
                      $('.find_new_friends_in_city_now').html(tmplCityTitle.replace('\{city\}', title_city));
                      $('#filter_country').val(param_geo[0]);
                      $('#filter_state').val(param_geo[1]);
                      $('#filter_city').val(param_geo[2]);
                      if(filterCityValue != param_geo[2]) {
                          filterCityValue = param_geo[2];
                          $(moduleFilterClass).change();
                      }
                      return false;
                  }
                  $.post('{url_main}ajax.php', {cmd: 'geo_param_map', country: param_geo[0], state: param_geo[1], city: param_geo[2]}, geo_map);
                  //$('#selectable li').off('click');
                  //pp_choose_city.remove();
              }
              return false;
          });
          $('.pp_body').on('click', function(e){
              if(e.target==this
                 &&$('#pp_choose_city:visible')[0]
                 &&param_geo_set[2]==param_geo[2]){
                  pp_choose_city.close()
              }
          })
          function geo_map(res)
          {
              var data=checkDataAjax(res);
              if(data){
                  var map=$('#map_title'),filter=$('#filter_module_location_title');
                  if(map[0]){
                      map.text(title_city+', '+data.country);
                      load_map(data.lat/{ip_multiplicator}, data.long/{ip_multiplicator});
                  }
              }else{}
          }
          function load_map(lat, long)
          {
              var pic = new Image(),
                  map = $('#profile_map');
                  src = "http://maps.googleapis.com/maps/api/staticmap?markers=color:red%7Clabel:%7C"+lat+","+long+"&center="+lat+","+long+"&zoom=10&size=459x277&sensor=false&scale=1";;
              map.attr('src', '{url_tmpl_main}images/airplane.gif');
              pic.src = src;
              var mapBox = $('#profile_map_box'),
                  isHideMap = parseInt(mapBox.css('height')) == 0,
                  dur = (isHideMap) ? 1 : 1600;
              $(pic).load(function(){
                  map.hide().attr('src', src).fadeIn(dur,function(){
                      if (isHideMap) {
                          mapBox.animate({height:'277px'},300);
                      }
                  });
              });
          }
          function setCountry()
          {
              step=2;
              delete param_geo;
              delete param_list;
              param_geo = param_geo_set.concat();
              param_list = param_list_set.concat();
              title_head.text(title[2]);
              back_item.html(title_back[1]).show();
              $('#'+param_geo[2]).addClass('selected').siblings().removeClass('selected');
              selectable.html(param_list[2]).scrollTo('#'+param_geo[2]);
              choose_ok.hide();
              choose_ok.show();
              pp_choose_city.open();
          }
          back_item.click(function(){
              var select_id, list;
              if (step == 1) {
                  back_item.hide();
              }
              selected = param_geo[step-1];
              select_id = (step>1) ? param_geo[step-2] : param_geo[0];
              list = param_list[step-1];
              choose_ok.hide();
              if (list != '') {
                  step--;
                  selectable.html(param_list[step]).scrollTo('#'+param_geo[step]);
                  back_item.html(title_back[step-1]);
                  title_head.text(title[step]);
              } else {
                  selectable.fadeTo(0,opt);
                  $.post('{url_main}ajax.php', {cmd: param[step-1], select_id: select_id, selected: selected, filter:isSearchFilter}, update_list_back);
              }
              return false;
          })
          var update_list_back = function(res)
          {
              var data=checkDataAjax(res);
              if(data){
                  step--;
                  param_list[step] = data.list;
                  selectable.html(data.list).fadeTo(0,1).scrollTo('#'+param_geo[step]);
                  back_item.html(title_back[step-1]);
                  title_head.text(title[step]);
              }else{}
          }
          $('body').on('click', '#selectable li', change);
          function change(){
              var select_id = $(this).attr('id');
              $(this).addClass('selected').siblings().removeClass('selected');
              param_list[step] = selectable.html();
              back_item.html(title_back[step]).show();
              title_head.text(title[step+1]);
              if (step == 2) {
                  param_geo[step] = select_id;
                  choose_ok.show();
              } else {
                  if (param_geo[step] != select_id) {
                      param_geo[step] = select_id;
                      selectable.fadeTo(0,opt);
                      $.post('{url_main}ajax.php', {cmd: param[step+1], select_id: select_id, filter:isSearchFilter}, update_list);
                  } else {
                      step++;
                      selectable.html(param_list[step]).scrollTo('#'+param_geo[step]);
                  }
              }
          }
          var update_list = function(res)
          {
              var data=checkDataAjax(res);
              if(data){
                  step++;
                  param_list[step] = data.list;
                  selectable.html(data.list).fadeTo(0,1).scrollTo(0);
                  if (step==2) {
                      var item=$('#selectable > li');
                      if(item.length==1){item.click()}
                  }
              }else{}
          }
      </script>
    • Por gugacamacho
      Senhores, bom dia...
       
      Estou com um grande problema com este script para calcular distancia entre coordenadas, o erro se dá quando eu uso a informacao do formulario, ele nao le a coordenada correta, mas quando insiro de maneira estatica, funciona normal... preciso de muita a ajuda de todos.
      <%@ Language=VBScript %> <!--#include file="cnx_map.asp"--> <% 'set rs = Conn.Execute("SELECT * FROM ctos ORDER by codigo") Function DegRad(x) 'Degrees to Radians DegRad = x * ((4 * Atn(1)) / 180) End Function Function GetGeodesicDistance(Lat1,Lon1,Lat2,Lon2,rScale) Dim er,pr,fl,F,G,L,S,C,W,R,D,H1,H2 er = 6378.1370000 pr = 6356.7523142 fl = (er - pr) / er F = (DegRad(Lat1) + DegRad(Lat2)) / 2 G = (DegRad(Lat1) - DegRad(Lat2)) / 2 L = (DegRad(Lon1) - DegRad(Lon2)) / 2 S = Sin(G)^2 * Cos(L)^2 + Cos(F)^2 * Sin(L)^2 C = Cos(G)^2 * Cos(L)^2 + Sin(F)^2 * Sin(L)^2 W = Atn(Sqr(S / C)) R = Sqr(S * C) / W D = 2 * W * er H1 = (3 * R - 1) / (2 * C) H2 = (3 * R + 1) / (2 * S) Select Case rScale Case "statute" dScale = 1.60934 Case "nautical" dScale = 1.85200 Case "metric" dScale = 1.00000 Case Else dScale = 1.60934 End Select GetGeodesicDistance = (D * (1 + fl * H1 * Sin(F)^2 * Cos(G)^2 - fl * H2 * Cos(F)^2 * Sin(G)^2)) / dScale End Function %> <div align="center"> <form name="frm" method="post" action="mapa_v.asp"> <label>Posição do cliente <input name="latitude" type="text" id="latitude" value=-28.401684> <input name="longitude" type="text" id="longitude" value=-49.389643> </label> <label> <input type="submit" name="Submit" value="Enviar"> </label> </form> </div> <% dim Lati0, Long0, Lati1, Long1 lati0 = request.form("latitude") long0 = request.form("longitude") response.write GetGeodesicDistance(-28.401684,-49.389643,-28.394418,-49.395537, "metric") & " RESULTADO CORRETO<br><br><br>" Lati1 = "-28.394418" Long1 = "-49.395537" response.Write(lati0) & "," response.Write(Long0) & "," response.Write(lati1) & "," response.Write(Long1) & "<br><br><br>" 'Display calc response.write GetGeodesicDistance(Lati0,Long0,Lati1,Long1, "metric") & " RESULTADO DO CALCULO<br>" %> [Click e arraste para mover]  
×

Informação importante

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