🧩

Flutter --Google Mapに長押しでピンを立てる

2023/01/22に公開

大きな目標

Flutterで蒐集したデータをMySQLでアーカイブ化、Flutterから検索した結果をUnity上で三次元表示し、開架の図書館内を歩きながら本を手に取ってみるような表現を目指す。

中期的な目標

データベースに無関心なuserが入力しても適切なデータを蒐集できるフロントをFlutterで作る。

今日の目標

Google Mapの任意の位置に長押しでピンを立てる。

コードはこんな感じ

import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

class CartePage extends StatefulWidget {
  const CartePage({Key? key}) : super(key: key);

  
  CartePageState createState() => CartePageState();
}

class CartePageState extends State<CartePage> {
  late GoogleMapController mapController;
  final Set<Marker> markers = {};

  void _onMapCreated(GoogleMapController controller) {
    mapController = controller;
  }

  
  Widget build(BuildContext context) {
    return Scaffold(
        body: GoogleMap(
          onMapCreated: _onMapCreated,
          initialCameraPosition: const CameraPosition(
            target: LatLng(0.000000,  0.000000),
            zoom: 0.0,
          ),
          markers: markers,  //この1行が足らなかった。
          onLongPress: onLongPress,
        ),
    );
  }

  void onLongPress(LatLng latLng) {
    setState(() {
      markers.add(Marker(
        markerId: MarkerId(latLng.toString()),
        position: latLng,
      ));
    });
  }
}

まとめ

地図は表示されるがマーカーが立たない状況が続いて、結局ChatGPTに見てもらったら、1行足らなかった。明日はこのマーカーから緯度経度、地名などの情報を取得する。

Flutter大学

Discussion