背景:看到Apex的帮助文档上有从地址项目上取得经纬度,城市等操作。
Account[] records = [SELECT id, BillingAddress FROM Account LIMIT 10];
for(Account acct : records) {
Address addr = acct.BillingAddress;
Double lat = addr.latitude;
Double lon = addr.longitude;
Location loc1 = Location.newInstance(30.1944,-97.6682);
Double apexDist1 = addr.getDistance(loc1, 'mi');
Double apexDist2 = loc1.getDistance(addr, 'mi');
System.assertEquals(apexDist1, apexDist2);
Double apexDist3 = Location.getDistance(addr, loc1, 'mi');
System.assertEquals(apexDist2, apexDist3);
}
以为定义好城市之后可以取得经纬度呢。所以验证了一下。
结果:如果在画面上只设置了国家,省份,城市信息,在Apex里是取得不到经纬度的。
(看来SFDC没有那么智能啊。)
还是需要设置上经纬度的值才行。