Usando un código JavaScript relativamente simple, puede crear aplicaciones web que puedan determinar los detalles de la ubicación geográfica del usuario, incluida la latitud y la longitud y la altitud. Algunas aplicaciones web pueden incluso proporcionar funciones de navegación al monitorear el movimiento de las ubicaciones de los usuarios a lo largo del tiempo, lo que también integra sistemas de mapas como la API GooglEMaps.
HTML5 proporciona API de geolocalización para determinar la ubicación del usuario. Podemos usar esta función de HTML5 para desarrollar aplicaciones basadas en la información de geolocalización. Este artículo combina ejemplos para compartir con usted cómo usar HTML5 y usar interfaces de mapas de Baidu y Google para obtener la información de ubicación geográfica precisa de los usuarios.
La geolocalización es una nueva característica de HTML5, por lo que solo es posible ejecutar en navegadores modernos que admiten HTML5, especialmente dispositivos portátiles como iPhones, donde la geolocalización es más precisa. Primero, necesitamos detectar si el navegador del dispositivo de usuario admite la geolocalización y, de ser así, obtener información geográfica. Tenga en cuenta que esta característica puede infringir la privacidad del usuario. A menos que sea el consentimiento del usuario, la información de ubicación del usuario no está disponible, por lo que cuando accedamos a la aplicación, solicitaremos si permitir la geolocalización y, por supuesto, podemos elegir permitir.
- functiongetLocation () {
- if (navigator.geolocation) {
- navigator.geolocation.getCurrentPosition (showposition, ducha);
- }demás{
- alerta (el navegador no admite la geolocalización);
- }
- }
El código anterior muestra que si el dispositivo de usuario admite la geolocalización, ejecute el método GetCurrentPosition (). Si GetCurrentPosition () se ejecuta con éxito, un objeto de coordenadas se devuelve a la función especificada en el parámetro ShowPosition. El segundo parámetro del método getCurrentPosition () se usa para manejar el error, que especifica la función que se ejecuta cuando la ubicación del usuario no se puede obtener.
Primero veamos la función showerror (), que especifica el manejo de algunos códigos de error al obtener la ubicación geográfica del usuario:
- functionShowerror (error) {
- switch (error.code) {
- caseError.Permission_Denied:
- alerta (la localización falló, el usuario se niega a solicitar la geolocalización);
- romper;
- CaseError.Position_Unavailable:
- alerta (la localización fallida, la información de ubicación no está disponible);
- romper;
- CaseError.TimeOut:
- alerta (localización de fallas, solicitando obtener tiempo de tiempo de ubicación del usuario);
- romper;
- caseError.unknown_error:
- alerta (la localización falló, el sistema de posicionamiento falló);
- romper;
- }
- }
Veamos la función showposition (), y llamemos la latitud y la longitud de las coordinas para obtener la latitud y la longitud del usuario.
- functionShowPosition (posición) {
- varlat = posicion.coords.latitude; // latitud
- varlag = posicion.coords.nongitude; // longitud
- alerta ('Lat:'+Lat+', Longitud:'+LAG);
- }
Use mapas de Baidu y interfaces de Google Maps para obtener direcciones de usuario
Como entendemos que la geolocalización de HTML5 puede obtener la latitud y la longitud del usuario, lo que debemos hacer es convertir la latitud y la longitud abstractas en información de ubicación geográfica real de usuario real, significativo. Afortunadamente, Baidu Maps y Google Maps proporcionan interfaces a este respecto. Solo necesitamos pasar la información de latitud y longitud obtenida por HTML5 a la interfaz del mapa, y devolverá la ubicación geográfica del usuario, incluida la información provincial, municipal y regional, e incluso información detallada de ubicación geográfica, como calles y números de casas.
Primero definimos el DIV para mostrar la ubicación geográfica en la página y definimos ID#baidu_geo e ID#google_geo respectivamente. Solo necesitamos modificar la función clave showposition (). Primero veamos la interacción de la interfaz del mapa de Baidu. Enviamos la información de latitud y longitud a la interfaz del mapa de Baidu a través de AJAX, y la interfaz devolverá la información provincial, municipal y de la calle correspondiente. La interfaz del mapa de Baidu devuelve una cadena de datos JSON, y podemos mostrar la información requerida a div#baidu_geo de acuerdo con nuestras necesidades. Tenga en cuenta que la biblioteca jQuery se usa aquí, y el archivo de la biblioteca jQuery debe cargarse primero.
- functionShowPosition (posición) {
- varlatlon = posicion.coords.latitude+','+posicion.coords.longitude;
- // Baidu
- varurl = http: //api.map.baidu.com/geocoder/v2/? ak = c93b5178d7a8ebdb830b9b557abce78b & llamado = renderReverse & ubicación =+latlon+& output = json & pois = 0;
- $ .AJAX ({
- Tipo: Obtener,
- Tipo de datos: JSONP,
- URL: URL,
- befeforesend: function () {
- $ (#baidu_geo) .html ('localización ...');
- },
- éxito: function (json) {
- if (json.status == 0) {
- $ (#baidu_geo) .html (json.result.formatted_address);
- }
- },
- Error: función (xmlhttprequest, textstatus, errorthrown) {
- $ (#baidu_geo) .html (la ubicación de la dirección de latlon+falló);
- }
- });
- });
Veamos la interacción de la interfaz de Google Maps. Del mismo modo, enviamos información de latitud y longitud a la interfaz de Google Maps a través de AJAX, y la interfaz devolverá la provincia correspondiente, los detalles de la ciudad y la calle. La interfaz de Google Maps también devuelve una cadena de datos JSON. Estos datos JSON son más detallados que los devueltos por la interfaz Baidu Maps. Podemos mostrar la información requerida para div#Google_Geo de acuerdo con nuestras necesidades.
- functionShowPosition (posición) {
- varlatlon = posicion.coords.latitude+','+posicion.coords.longitude;
- varurl = 'http: //maps.google.cn/maps/api/geocode/json? latlng ='+latlon+'& language = cn';
- $ .AJAX ({
- Tipo: Obtener,
- URL: URL,
- befeforesend: function () {
- $ (#google_geo) .html ('localización ...');
- },
- éxito: function (json) {
- if (json.status == 'ok') {
- VARRESULTS = JSON.RESULTS;
- $ .each (resultados, función (índice, matriz) {
- if (index == 0) {
- $ (#google_geo) .html (array ['formatted_address']);
- }
- });
- }
- },
- Error: función (xmlhttprequest, textstatus, errorthrown) {
- $ (#Google_Geo) .html (Latlon+Dirección La ubicación fallida);
- }
- });
- }
El código anterior integra la interfaz del mapa de Baidu y la interfaz de mapa de Google en la función showposition () respectivamente, y podemos llamarla de acuerdo con la situación real. Por supuesto, esta es solo una aplicación simple. Podemos desarrollar muchas aplicaciones complejas basadas en este simple ejemplo. Se recomienda utilizar un navegador móvil para acceder a la demostración de demostración.