Show Menu
主题×

地理位置和目标点

地理位置可通过在 Android 应用程序中使用纬度和经度以及预定义的目标点,来帮助您测量位置数据。
每个 trackLocation 调用均发送以下信息:
  • 纬度、经度以及在 Adobe Mobile Services 用户界面中定义的目标点 (POI) 中的位置。
    此信息将传递到移动设备解决方案变量,以便自动进行报告。
  • 作为上下文数据传递的到中心的距离以及精确度。
    系统不会自动捕获这些变量。您必须按照以下“发送其他数据”**​部分中的说明来映射这些上下文数据变量。

动态 POI 更新

从版本 4.2 开始,POI 可在 Adobe Mobile 用户界面中定义并动态同步到应用程序配置文件。此同步需要 ADBMobile JSON 配置 中的 analytics.poi 设置:
“analytics.poi”: “https://assets.adobedtm.com/…/yourfile.json”,

如果未配置此设置,您必须下载更新版本的 ADBMobile.json 文件并将其添加到您的应用程序中。有关更多信息,请参阅 下载 SDK 和测试工具

跟踪地理位置和 POI

  1. 将库添加到您的项目并实施生命周期。
    有关更多信息,请参阅 核心实施和生命周期 中的“将 SDK 和配置文件添加到您的 IntelliJ IDEA 或 Eclipse 项目”**。
  2. 导入库:
    import com.adobe.mobile.*;
    
    
  3. 调用 trackLocation 以跟踪当前位置:
    Location currentLocation = new Location("my location here"); 
    Analytics.trackLocation(currentLocation, null);
    
    
    您可以随时调用 trackLocation
    您可以使用位置策略来确定传递到 trackLocation 调用的位置。有关更多信息,请参阅 Android 位置策略
此外,如果确定位置位于定义的 POI 半径内,则 a.loc.poi 上下文数据变量将随 trackLocation 点击一起发送,并在​ 位置划分 ​报表中报告为 POI。另外,还将发送 a.loc.dist 上下文变量,其中包含到定义坐标的距离(以米为单位)。

发送其他数据

除了位置数据之外,您还可以通过每个跟踪位置调用发送其他上下文数据:
HashMap<String, Object> locationContextData = new HashMap<String, Object>(); 
locationContextData.put("myapp.location.LocationSource", "GPS"); 
 
Location currentLocation = new Location("my location here"); 
Analytics.trackLocation(currentLocation, locationContextData);

上下文数据值必须映射到 Adobe Mobile Services 用户界面中的自定义变量:

位置上下文数据

纬度和经度均使用三个不同的上下文数据参数进行发送,其中每个参数表示不同的精度级别,总共有六个上下文数据参数。
例如,坐标纬度为 40.93231、经度为 -111.93152 表示精度达 1 米的位置。此位置将根据精度级别在以下变量中进行拆分:
a.loc.lat.a = 040.9
a.loc.lat.b = 32
a.loc.lat.c = 31
a.loc.lon.a = -111.9
a.loc.lon.b = 31
a.loc.lon.c = 52
根据当前位置的精确度,某些精度级别可能会显示为 00 。例如,如果位置当前精确到 100 米, a.loc.lat.c a.loc.lon.c 将会填充 00
请牢记以下信息:
  • 发送 trackLocation 请求相当于调用 trackAction
  • POI 不会作为典型 trackAction trackState 调用的一部分进行传递,因此您必须使用 trackLocation 调用来跟踪 POI。
  • 应当根据需要经常调用 trackLocation 以跟踪位置和 POI。
    我们建议在应用程序启动时调用 trackLocation ,之后可根据应用程序的要求在需要时进行调用。
  • 只有在应用程序配置文件中定义 POI 后,才会填充 POI。
    POI 不适用于先前发送的历史 trackLocation 调用。
  • trackLocation 调用支持发送其他上下文数据,这一点与 trackAction 调用类似。
  • 如果有两个 POI 的直径重叠,则使用包含当前位置的第一个 POI。
    如果您的 POI 重叠,您应当按照从最大粒度到最小粒度的顺序列出 POI,以确保报告最大粒度的 POI。