kakao_maps_flutter 0.0.1-beta1 copy "kakao_maps_flutter: ^0.0.1-beta1" to clipboard
kakao_maps_flutter: ^0.0.1-beta1 copied to clipboard

KakaoMaps SDK v2 for Flutter

kakao_maps_flutter #

pub package Platform

A Flutter plugin for integrating Kakao Maps SDK v2, providing a native map experience for both Android and iOS platforms.

πŸ“± Platform Support #

Feature Android iOS
Camera Controls βœ… βœ…
Marker Management βœ… βœ…
POI Controls βœ… βœ…
Coordinate Conversion βœ… ❌
Map Information βœ… βœ…

Features #

πŸ—ΊοΈ Core Map Features #

  • Native map view integration for Android and iOS
  • Zoom level control (1-21)
  • Camera position and movement control
  • Map center point retrieval
  • Map information (zoom, rotation, tilt)
  • Viewport bounds management

πŸ“ Marker Management #

  • Add/remove individual markers
  • Batch operations for multiple markers
  • Custom marker images support (base64 encoded)
  • Clear all markers functionality

🏒 POI (Points of Interest) Controls #

  • Toggle POI visibility
  • Toggle POI clickability
  • Adjustable POI scale levels:
    • Small (0)
    • Regular (1)
    • Large (2)
    • XLarge (3)

πŸŽ₯ Camera Controls #

  • Animated camera movements
  • Custom animation duration
  • Auto elevation support
  • Consecutive movement control
  • Tilt and rotation adjustments

πŸ”„ Coordinate Conversion #

  • Convert between map coordinates (LatLng) and screen points
  • Support for viewport bounds calculation
  • Map padding adjustment

Getting Started #

Prerequisites #

  1. Obtain a Kakao Maps API key from the Kakao Developers Console
  2. Configure your project for Kakao Maps SDK (see platform-specific setup below)

Installation #

Add to your pubspec.yaml:

dependencies:
  kakao_maps_flutter: ^latest_version

Basic Usage #

  1. Initialize the SDK:
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await KakaoMapsFlutter.init('YOUR_API_KEY');
  runApp(const MyApp());
}
  1. Add a map to your widget:
class MapScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: KakaoMap(
        onMapCreated: (controller) {
          // Store controller for map operations
        },
      ),
    );
  }
}

Map Operations #

  1. Camera Movement:
await controller.moveCamera(
  cameraUpdate: CameraUpdate.fromLatLng(
    LatLng(latitude: 37.5665, longitude: 126.9780),
  ),
  animation: const CameraAnimation(
    duration: 1500,
    autoElevation: true,
    isConsecutive: false,
  ),
);
  1. Marker Management:
// Add a marker
await controller.addMarker(
  labelOption: LabelOption(
    id: 'marker_id',
    latLng: LatLng(latitude: 37.5665, longitude: 126.9780),
    base64EncodedImage: 'your_base64_image',
  ),
);

// Remove a marker
await controller.removeMarker(id: 'marker_id');
  1. POI Controls:
// Toggle POI visibility
await controller.setPoiVisible(isVisible: true);

// Set POI scale
await controller.setPoiScale(scale: 1); // Regular size
  1. Map Information:
// Get current map info
final mapInfo = await controller.getMapInfo();
print('Zoom: ${mapInfo?.zoomLevel}');
print('Rotation: ${mapInfo?.rotation}Β°');
print('Tilt: ${mapInfo?.tilt}Β°');

Platform-Specific Setup #

No platform-specific setup required

Future Plans #

Upcoming Features #

  1. Map Events and Callbacks

    • Touch events
    • POI click events
    • Camera movement events
    • Marker click events
  2. Advanced Marker Features

    • Custom marker views
    • Marker clustering
    • Marker animations
    • InfoWindow customization
  3. Polyline and Polygon Support

    • Draw paths and regions
    • Customize styles
    • Interactive editing
  4. Local Search Integration

    • POI search
    • Address search
    • Reverse geocoding
  5. Advanced Map Features

    • Custom map styles
    • Indoor maps
    • 3D building display
    • Traffic information
  6. Performance Optimizations

    • Marker rendering optimization
    • Memory management improvements
    • Caching mechanisms

Contributing #

Contributions are welcome! Please read our contributing guidelines before submitting pull requests.

License #

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments #

  • Thanks to Kakao for providing the Maps SDK
  • Special thanks to all contributors