Gustavo,
Estou é possível conseguir a localização do usuário utilizado o código abaixo:
// jeito 1
IMonitorField geoLocationField = ManagerFactory.getMonitorManager().getField(MonitorFields.Client.GEOLOCATION);
ExtendedGeoPoint geoPoint = null;
List<IMonitorValuesProvider> monitoringValuesProviders = ManagerFactory.getMonitorManager().getMonitorContext().getMonitoringValuesProviders();
for (IMonitorValuesProvider iMonitorValuesProvider : monitoringValuesProviders)
{
if (iMonitorValuesProvider instanceof GeoLocationValuesProvider)
{
List<? extends Serializable> values = ((GeoLocationValuesProvider) iMonitorValuesProvider).getValues(sessionConfig, geoLocationField, transaction);
if (values != null && !values.isEmpty())
{
geoPoint = (ExtendedGeoPoint) values.get(0);
}
}
}
// jeito 2
if (geoPoint == null)
{
geoPoint = ManagerFactoryInternal.getGeoLocationManager().getGeoPointByRequest(request);
}
Jeito 1: o Lumis já buscar a geolocation nas requisições do usuário. Assim, pode já estar calculada ali dentro do contexto de monitoração.
Jeito 2: caso a monitoração da geolocalicação estiver desligada - pode depender da versão do Lumis - utilize este jeito.