Usando código JavaScript relativamente simples, você pode criar aplicativos da Web que podem determinar os detalhes da localização geográfica do usuário, incluindo latitude e longitude e altitude. Alguns aplicativos da Web podem até fornecer funções de navegação, monitorando o movimento dos locais do usuário ao longo do tempo, o que também integra sistemas de mapa, como a API do GoogleMaps.
O HTML5 fornece API de geolocalização para determinar a localização do usuário. Podemos usar esse recurso do HTML5 para desenvolver aplicativos com base em informações de geolocalização. Este artigo combina exemplos para compartilhar com você como usar o HTML5 e usar interfaces Baidu e Google Map para obter informações precisas de localização geográfica dos usuários.
A geolocalização é um novo recurso do HTML5, portanto, é possível executar apenas os navegadores modernos que suportam HTML5, especialmente dispositivos portáteis, como iPhones, onde a geolocalização é mais precisa. Primeiro, precisamos detectar se o navegador do dispositivo do usuário suporta a geolocalização e, em caso afirmativo, obter informações geográficas. Observe que esse recurso pode infringir a privacidade do usuário. A menos que o consentimento do usuário seja, as informações de localização do usuário não estão disponíveis; portanto, quando acessarmos o aplicativo, solicitaremos a permitir a geolocalização e, é claro, podemos optar por permitir.
- functionGetLocation () {
- if (navegator.geolocation) {
- Navigator.geolocation.GetCurrentPosition (ShowPosition, Showerror);
- }outro{
- alerta (o navegador não suporta a geolocalização.);
- }
- }
O código acima mostra que, se o dispositivo do usuário suportar geolocalização, execute o método getCurrentPosition (). Se o getCurrentPosition () funcionar com sucesso, um objeto de coordenadas será retornado à função especificada no parâmetro ShowPosition. O segundo parâmetro do método getCurrentPosition () é usado para lidar com o erro, que especifica a função que é executada quando o local do usuário não consegue.
Vamos primeiro olhar para a função SHOWRROR (), que especifica o manuseio de alguns códigos de erro ao obter o local geográfico do usuário:
- functionShowerRor (erro) {
- switch (error.code) {
- caseError.permission_denied:
- alerta (localização falhou, o usuário se recusa a solicitar a geolocalização);
- quebrar;
- caseError.Position_Unavilable:
- alerta (falha na localização, informações de localização não estão disponíveis);
- quebrar;
- caseError.timeout:
- alerta (falha na localização, solicitando obter o tempo limite da localização do usuário);
- quebrar;
- caseError.unknown_error:
- alerta (falha na localização, falha no sistema de posicionamento);
- quebrar;
- }
- }
Vejamos a função ShowPosition () e chamar a latitude e longitude dos coordenados para obter a latitude e a longitude do usuário.
- FunctionShowPosition (posição) {
- varlat = position.coords.latitude; // latitude
- Varlag = POSITION.COORDS.Longitude; // Longitude
- alerta ('lat:'+lat+', longitude:'+lag);
- }
Use mapas Baidu e interfaces do Google Maps para obter endereços do usuário
Como entendemos que a geolocalização do HTML5 pode obter a latitude e a longitude do usuário, o que precisamos fazer é converter latitude e longitude abstratas em informações de localização geográfica real de usuário real legais. Felizmente, os mapas Baidu e o Google Maps fornecem interfaces a esse respeito. Precisamos apenas aprovar as informações de latitude e longitude obtidas pelo HTML5 para a interface do mapa, e elas retornarão a localização geográfica do usuário, incluindo informações provinciais, municipais e regionais e até informações geográficas detalhadas, como ruas e números de casas.
Primeiro, definimos o div para exibir o local geográfico na página e definir ID#Baidu_Geo e ID#Google_Geo, respectivamente. Só precisamos modificar a principal função exibePosition (). Vamos primeiro olhar para a interação da interface do mapa do Baidu. Enviamos as informações de latitude e longitude para a interface do mapa do Baidu através do Ajax, e a interface retornará as informações provinciais, municipais e de rua correspondentes. A interface do mapa do Baidu retorna uma sequência de dados JSON e podemos exibir as informações necessárias para div#Baidu_Geo de acordo com nossas necessidades. Observe que a biblioteca jQuery é usada aqui e o arquivo da biblioteca jQuery precisa ser carregado primeiro.
- FunctionShowPosition (posição) {
- varlatlon = position.coords.latitude+','+position.coords.longitude;
- // Baidu
- varurl = http: //api.map.baidu.com/geocoder/v2/? Ak = c93b5178d7a8ebdb830b9b557abce78b & callback = renderverse e localização =+latlon+e saída = json & pois = 0;
- $ .ajax ({
- Tipo: Get,
- Datatype: jsonp,
- URL: URL,
- beforesend: function () {
- $ (#Baidu_Geo) .html ('localizando ...');
- },
- Sucesso: função (JSON) {
- if (json.status == 0) {
- $ (#Baidu_Geo) .html (json.result.formatted_address);
- }
- },
- Erro: função (xmlhttprequest, textstatus, ertrorthrown) {
- $ (#Baidu_Geo) .html (Latlon+Localização do endereço falhou);
- }
- });
- });
Vejamos a interação da interface do Google Maps. Da mesma forma, enviamos informações de latitude e longitude para a interface do Google Maps através do Ajax, e a interface retornará a província correspondente, detalhes da cidade e da rua. A interface do Google Maps também retorna uma sequência de dados JSON. Esses dados JSON são mais detalhados do que os retornados pela interface Baidu Maps. Podemos exibir as informações necessárias para div#google_geo de acordo com nossas necessidades.
- FunctionShowPosition (posição) {
- varlatlon = position.coords.latitude+','+position.coords.longitude;
- varurl = 'http: //maps.google.cn/maps/api/geocode/json? latlng ='+latlon+'& idioma = cn';
- $ .ajax ({
- Tipo: Get,
- URL: URL,
- beforesend: function () {
- $ (#google_geo) .html ('localizando ...');
- },
- Sucesso: função (JSON) {
- if (json.status == 'ok') {
- varresults = json.results;
- $ .ECH (Resultados, função (índice, Array) {
- if (index == 0) {
- $ (#google_geo) .html (array ['formatted_address']);
- }
- });
- }
- },
- Erro: função (xmlhttprequest, textstatus, ertrorthrown) {
- $ (#google_geo) .html (Latlon+Localização do endereço falhou);
- }
- });
- }
O código acima integra a interface do mapa Baidu e a interface do mapa do Google na função ShowPosition (), respectivamente, e podemos chamá -la de acordo com a situação real. Obviamente, este é apenas um aplicativo simples. Podemos desenvolver muitas aplicações complexas com base neste exemplo simples. Recomenda -se usar um navegador móvel para acessar a demonstração da demonstração.