Delphi 安卓手机获取GPS定位并显示在腾讯地图上

最近一直在学习DELPHI安卓的开发,在网上整理了一些资料,以下内容是关于手机定位与调用腾讯地图显示定位的方法。

大纲内容如下:
1.如何获取手机定位的GPS坐标
2.纠正GPS坐标符合腾讯地图
3.在地图中显示手机的位置
4.附上GPS坐标纠正的单元文件内容

注意事项:记住要对手机的权限进行申请,至于如何申请这里不过多描述,各位看倌可以上网查资料,或者我后面单独出一篇文章详细说明安卓权限申请的问题

废话不多说,直接开干

【1.获取手机定位坐标】
以下实现方式是将获取经度和纬度分开成两个函数,详见代码内容:
首先引用必要单元:

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,GetGPSOffset,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, System.Sensors,FMX.WebBrowser,

  {$IFDEF ANDROID}
  Androidapi.JNI.GraphicsContentViewText,
  Androidapi.JNI.JavaTypes,
  FMX.Helpers.Android,
  Androidapi.Helpers,
  AndroidApi.Jni.App,
  Androidapi.JNIBridge,
  androidapi.Jni.Location,
  Androidapi.JNI.Telephony;
  {$ENDIF}

获取GPS经度坐标

{$REGION '获取定位坐标经度'}
function GetLatitude:Single;
var
  LocationManagerService: JObject;
  Location: JLocation;
  fLocationManager: JLocationManager;
begin
  if not assigned(fLocationManager) then
  begin
//获得Java对象
    LocationManagerService := sharedActivitycontext.getSystemService
      (TJcontext.JavaClass.LOCATION_SERVICE);
// 获得对象的java实例
    fLocationManager := tjlocationmanager.Wrap
      ((LocationManagerService as ILocalObject).GetObjectID);
     end;
//调用Java方法
  // use the gps provider to get current lat, long and altitude
  Location := fLocationManager.getLastKnownLocation
    (tjlocationmanager.JavaClass.GPS_PROVIDER);

 Result:=location.getLatitude;
end;
{$ENDREGION}

获取GPS纬度坐标

{$REGION '获取定位坐标纬度'}
function GetLongitude:Single;
var
  LocationManagerService: JObject;
  Location: JLocation;
  fLocationManager: JLocationManager;
begin
  if not assigned(fLocationManager) then
  begin
//获得Java对象
    LocationManagerService := sharedActivitycontext.getSystemService
      (TJcontext.JavaClass.LOCATION_SERVICE);
// 获得对象的java实例
    fLocationManager := tjlocationmanager.Wrap
      ((LocationManagerService as ILocalObject).GetObjectID);
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值