Геолокация - отображение расстояния счета на карте - PullRequest
0 голосов
/ 07 июня 2018

Я создал приложение Geolocation, которое отображает местоположение Учетной записи на карте.Однако, чтобы улучшить и продолжить, я решил добавить функцию, которая отображает «Расстояние» учетной записи для человека, который просматривает карту.

После нескольких дней исследований, это то, как далеко я продвинулся, но я все еще не могу заставить его работать.Поэтому, пожалуйста, если кто-нибудь знает, что я делаю неправильно или как заставить это работать, пожалуйста, дайте мне знать!

Мой код:

public with sharing class AccountController {
@AuraEnabled
public static List<Account> findAll() {
return [SELECT id, name, Location__Latitude__s, Location__Longitude__s, Industry
        FROM Account
        WHERE Location__Latitude__s != NULL AND Location__Longitude__s != NULL
        LIMIT 50];
DISTANCE(GEOLOCATION(BillingLatitude , BillingLongitude ),
Account_Name__r.GeoLocation__Latitude__s , Branch_Assigned__r.GeoLocation__Longitude__s )  , 
'mi')         
}} 

Большое спасибо!

1 Ответ

0 голосов
/ 08 июня 2018

Для этого вам необходимо знать:

  1. Идентификатор учетной записи.(Переменная AccountId ниже)
  2. Координаты широты и долготы текущего местоположения пользователя.(Переменные Latitude и Longitude ниже)
    Я, вероятно, должен добавить здесь, что вам понадобится способ собрать координаты широты и долготы того места, где в данный момент находится пользователь, что в веб-браузере может бытьс помощью javascript геолокации api .

Эта информация может быть введена в следующий запрос:

Id AccountId = '0010I00001qh9r0';
Decimal Latitude  = 37.775;
Decimal Longitude = -122.418;

list<Account> Accounts = [ 
    SELECT Id
         , DISTANCE ( 
             Location__c 
           , GEOLOCATION( :Latitude , :Longitude ) 
           , 'km' 
           ) Distance
    FROM Account
    WHERE Id = :AccountId
];

for ( Account a : Accounts ) System.debug( a );

, который даст вам расстояние:

Счет: {Id = 0010I00001qh9r0QAA, расстояние = 1.6328418223544767}

...