ar_location_view 1.0.1 copy "ar_location_view: ^1.0.1" to clipboard
ar_location_view: ^1.0.1 copied to clipboard

ArLocationView is designed to used in areas with large concentration of static POIs

ar_location_view #

Augmented reality for geo location for flutter. Inspired HDAugmentedReality

Demo #

ArLocationView

Description #

ArLocationView is designed to used in areas with large concentration of static POIs. Where primary goal is the visibility of all POIs.

Remark: Altitudes of POIs are disregarded

Features #

  • Automatic vertical stacking of annotations views
  • Tracks user movement and updates visible annotations
  • Fully customisable annotation view
  • Supports all rotations

Basic usage #

Look at the example

Create class extend ArAnnotation

class Annotation extends ArAnnotation {
  final AnnotationType type;
  
  Annotation({required super.uid, required super.position, required this.type});
}

Create a widget for Annotation view for example


class AnnotationView extends StatelessWidget {
  const AnnotationView({
    Key? key,
    required this.annotation,
  }) : super(key: key);

  final Annotation annotation;

  @override
  Widget build(BuildContext context) {
    return Container(
      decoration: BoxDecoration(
        borderRadius: BorderRadius.circular(5),
        color: Colors.white,
      ),
      child: Row(
        children: [
          Expanded(
            child: Container(
              decoration: const BoxDecoration(
                borderRadius: BorderRadius.only(
                  topLeft: Radius.circular(5),
                  bottomLeft: Radius.circular(5),
                ),
              ),
              child: typeFactory(annotation.type),
            ),
          ),
          Expanded(
            flex: 2,
            child: Padding(
              padding: const EdgeInsets.all(4.0),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Text(
                    annotation.type.toString().substring(15),
                    maxLines: 1,
                    style: const TextStyle(fontWeight: FontWeight.bold),
                  ),
                  Text(
                    '${annotation.distanceFromUser.toInt()} m',
                  ),
                ],
              ),
            ),
          )
        ],
      ),
    );
  }

  Widget typeFactory(AnnotationType type) {
    IconData iconData = Icons.ac_unit_outlined;
    Color color = Colors.teal;
    switch (type) {
      case AnnotationType.pharmacy:
        iconData = Icons.local_pharmacy_outlined;
        color = Colors.red;
        break;
      case AnnotationType.hotel:
        iconData = Icons.hotel_outlined;
        color = Colors.green;
        break;
      case AnnotationType.library:
        iconData = Icons.library_add_outlined;
        color = Colors.blue;
        break;
    }
    return Icon(
      iconData,
      size: 40,
      color: color,
    );
  }
}

License #

ArLocationView is released under the MIT license.

51
likes
0
pub points
80%
popularity

Publisher

unverified uploader

ArLocationView is designed to used in areas with large concentration of static POIs

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

camera, flutter, geolocator, native_device_orientation, permission_handler, plugin_platform_interface, sensors_plus, vector_math

More

Packages that depend on ar_location_view