zoukankan      html  css  js  c++  java
  • 利用HTML5开发Android(5)---HTML5地理位置服务在Android中的应用

    Android中
    Java代码
     1 //启用地理定位   
     2 webSettings.setGeolocationEnabled(true);   
     3 //设置定位的数据库路径   
     4 webSettings.setGeolocationDatabasePath(dir);   
     5   
     6 //配置权限(同样在WebChromeClient中实现)   
     7 public void onGeolocationPermissionsShowPrompt(String origin,    
     8                GeolocationPermissions.Callback callback) {   
     9     callback.invoke(origin, true, false);   
    10     super.onGeolocationPermissionsShowPrompt(origin, callback);   
    11 }  
    在Manifest中添加权限
    Xml代码
    1 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
    2 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />  
    HTML5中 通过navigator.geolocation对象获取地理位置信息
    常用的navigator.geolocation对象有以下三种方法:

    1 //获取当前地理位置   
    2 navigator.geolocation.getCurrentPosition(success_callback_function, error_callback_function, position_options)   
    3 //持续获取地理位置   
    4 navigator.geolocation.watchPosition(success_callback_function, error_callback_function, position_options)   
    5 //清除持续获取地理位置事件   
    6 navigator.geolocation.clearWatch(watch_position_id)  
    其中success_callback_function为成功之后处理的函数,error_callback_function为失败之后返回的处理函数,参数position_options是配置项
     
    JS中的代码
    Js代码
     1 //定位   
     2 function get_location() {   
     3     if (navigator.geolocation) {   
     4         navigator.geolocation.getCurrentPosition(show_map,handle_error,{enableHighAccuracy:false,maximumAge:1000,timeout:15000});   
     5     } else {   
     6         alert("Your browser does not support HTML5 geoLocation");   
     7     }   
     8 }   
     9        
    10 function show_map(position) {   
    11     var latitude = position.coords.latitude;   
    12     var longitude = position.coords.longitude;   
    13     var city = position.coords.city;   
    14     //telnet localhost 5554   
    15     //geo fix -82.411629 28.054553   
    16     //geo fix -121.45356 46.51119 4392   
    17     //geo nmea $GPGGA,001431.092,0118.2653,N,10351.1359,E,0,00,,-19.6,M,4.1,M,,0000*5B   
    18     document.getElementByIdx_x_x_x("Latitude").innerHTML="latitude:"+latitude;   
    19     document.getElementByIdx_x_x_x("Longitude").innerHTML="longitude:"+longitude;   
    20     document.getElementByIdx_x_x_x("City").innerHTML="city:"+city;   
    21 }   
    22        
    23 function handle_error(err) {   
    24     switch (err.code) {   
    25     case 1:   
    26         alert("permission denied");   
    27         break;   
    28     case 2:   
    29         alert("the network is down or the position satellites can't be contacted");   
    30         break;   
    31     case 3:   
    32         alert("time out");   
    33         break;   
    34     default:   
    35         alert("unknown error");   
    36         break;   
    37     }   
    38 }  
    其中position对象包含很多数据 error代码及选项 可以查看文档
  • 相关阅读:
    .net core 3.1 添加mysql ef core
    使用HttpContext.SignInAsync实现简单的授权
    linux部署harbor和基本使用
    委托,事件,Action , Func
    .net core 第三方Microsoft账号登录
    Persist Security Info 参数的作用
    SQL Server2008附加数据库之后显示为只读时解决方法
    Oracle 数据库学习笔记(五)(数据库修改密码(表密码,sys密码,system密码))
    JS做”返回顶部”按钮功能并实现滑动效果
    SQL Server 2008 允许远程链接 解决方法
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/345fdgdgfdgfdgd.html
Copyright © 2011-2022 走看看