-
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]
&¶m_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+"¢er="+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]
-