Google 颤振中的地图不显示标记
Google Map in flutter not showing markers
我正在尝试为我的应用实现 Google 地图标记功能。通过使用坐标。
它工作正常。但是markers/pointers没有显示在地图上。全屏只渲染空地图
有什么方法可以解决这个问题??
完整代码
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class GoogleMapScreen extends StatefulWidget {
const GoogleMapScreen({Key? key}) : super(key: key);
@override
_GoogleMapScreenState createState() => _GoogleMapScreenState();
}
class _GoogleMapScreenState extends State<GoogleMapScreen> {
late GoogleMapController mapController;
Set<Marker> markers = {};
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
void onMapcreated(GoogleMapController controller) {
setState(() {
markers.add(const Marker(
markerId: MarkerId('1'),
position: LatLng(13.007488, 77.598656),
infoWindow: InfoWindow(
title: 'Marker Title Second ',
snippet: 'My Custom Subtitle',
),
));
markers.add(const Marker(
markerId: MarkerId('2'),
position: LatLng(12.999595, 77.585856),
infoWindow: InfoWindow(
title: 'Marker Title Third ',
snippet: 'My Custom Subtitle',
),
));
markers.add(const Marker(
markerId: MarkerId('3'),
position: LatLng(13.001916, 77.588849),
infoWindow: InfoWindow(
title: 'Marker Title Fourth ',
snippet: 'My Custom Subtitle',
),
));
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
extendBody: true,
extendBodyBehindAppBar: true,
body: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: GoogleMap(
initialCameraPosition: const CameraPosition(
target: LatLng(36.736847, 4.045026),
zoom: 15,
),
mapToolbarEnabled: true,
buildingsEnabled: false,
myLocationButtonEnabled: true,
mapType: MapType.normal,
markers: markers,
onMapCreated: onMapcreated,
),
),
);
}
}
输出
我为 Google API 使用了 Empty API 键。
而且我还需要隐藏地图上的加号、减号和版权
- 你需要有 Google 地图 API 键否则你会看到一个空的白色屏幕。
我用 google api 键试过你的纯代码机器,它工作正常。
这是我用过的代码(尝试复制粘贴并检查)
2.for 隐藏缩放按钮使用 zoomControlsEnabled: true,
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class GoogleMapScreen extends StatefulWidget {
const GoogleMapScreen({Key? key}) : super(key: key);
@override
_GoogleMapScreenState createState() => _GoogleMapScreenState();
}
class _GoogleMapScreenState extends State<GoogleMapScreen> {
late GoogleMapController mapController;
Set<Marker> markers = {};
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
void onMapcreated(GoogleMapController controller) {
setState(() {
markers.add(const Marker(
markerId: MarkerId('1'),
position: LatLng(13.007488, 77.598656),
infoWindow: InfoWindow(
title: 'Marker Title Second ',
snippet: 'My Custom Subtitle',
),
));
markers.add(const Marker(
markerId: MarkerId('2'),
position: LatLng(13.007481, 77.598651),
infoWindow: InfoWindow(
title: 'Marker Title Third ',
snippet: 'My Custom Subtitle',
),
));
markers.add(const Marker(
markerId: MarkerId('3'),
position: LatLng(13.001916, 77.588849),
infoWindow: InfoWindow(
title: 'Marker Title Fourth ',
snippet: 'My Custom Subtitle',
),
));
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
extendBody: true,
extendBodyBehindAppBar: true,
body: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: GoogleMap(
initialCameraPosition: const CameraPosition(
target: LatLng(13.007481, 77.598656),
zoom: 10,
),
mapToolbarEnabled: true,
buildingsEnabled: false,
myLocationButtonEnabled: true,
mapType: MapType.normal,
markers: markers,
onMapCreated: onMapcreated,
zoomControlsEnabled: true,
),
),
);
}
}
注:
我想问题是您的 target LatLng 指的是
不同的位置和另一个原因可能是你没有
提供 API 键。
你之前的目标是 36.736847, 4.045026
,我改为 13.007488, 77.598656
离你的标记最近,包括你的缩放值从 15 到 10
我正在尝试为我的应用实现 Google 地图标记功能。通过使用坐标。
它工作正常。但是markers/pointers没有显示在地图上。全屏只渲染空地图
有什么方法可以解决这个问题??
完整代码
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class GoogleMapScreen extends StatefulWidget {
const GoogleMapScreen({Key? key}) : super(key: key);
@override
_GoogleMapScreenState createState() => _GoogleMapScreenState();
}
class _GoogleMapScreenState extends State<GoogleMapScreen> {
late GoogleMapController mapController;
Set<Marker> markers = {};
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
void onMapcreated(GoogleMapController controller) {
setState(() {
markers.add(const Marker(
markerId: MarkerId('1'),
position: LatLng(13.007488, 77.598656),
infoWindow: InfoWindow(
title: 'Marker Title Second ',
snippet: 'My Custom Subtitle',
),
));
markers.add(const Marker(
markerId: MarkerId('2'),
position: LatLng(12.999595, 77.585856),
infoWindow: InfoWindow(
title: 'Marker Title Third ',
snippet: 'My Custom Subtitle',
),
));
markers.add(const Marker(
markerId: MarkerId('3'),
position: LatLng(13.001916, 77.588849),
infoWindow: InfoWindow(
title: 'Marker Title Fourth ',
snippet: 'My Custom Subtitle',
),
));
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
extendBody: true,
extendBodyBehindAppBar: true,
body: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: GoogleMap(
initialCameraPosition: const CameraPosition(
target: LatLng(36.736847, 4.045026),
zoom: 15,
),
mapToolbarEnabled: true,
buildingsEnabled: false,
myLocationButtonEnabled: true,
mapType: MapType.normal,
markers: markers,
onMapCreated: onMapcreated,
),
),
);
}
}
输出
我为 Google API 使用了 Empty API 键。
而且我还需要隐藏地图上的加号、减号和版权
- 你需要有 Google 地图 API 键否则你会看到一个空的白色屏幕。
我用 google api 键试过你的纯代码机器,它工作正常。 这是我用过的代码(尝试复制粘贴并检查)
2.for 隐藏缩放按钮使用 zoomControlsEnabled: true,
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class GoogleMapScreen extends StatefulWidget {
const GoogleMapScreen({Key? key}) : super(key: key);
@override
_GoogleMapScreenState createState() => _GoogleMapScreenState();
}
class _GoogleMapScreenState extends State<GoogleMapScreen> {
late GoogleMapController mapController;
Set<Marker> markers = {};
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
void onMapcreated(GoogleMapController controller) {
setState(() {
markers.add(const Marker(
markerId: MarkerId('1'),
position: LatLng(13.007488, 77.598656),
infoWindow: InfoWindow(
title: 'Marker Title Second ',
snippet: 'My Custom Subtitle',
),
));
markers.add(const Marker(
markerId: MarkerId('2'),
position: LatLng(13.007481, 77.598651),
infoWindow: InfoWindow(
title: 'Marker Title Third ',
snippet: 'My Custom Subtitle',
),
));
markers.add(const Marker(
markerId: MarkerId('3'),
position: LatLng(13.001916, 77.588849),
infoWindow: InfoWindow(
title: 'Marker Title Fourth ',
snippet: 'My Custom Subtitle',
),
));
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
extendBody: true,
extendBodyBehindAppBar: true,
body: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
child: GoogleMap(
initialCameraPosition: const CameraPosition(
target: LatLng(13.007481, 77.598656),
zoom: 10,
),
mapToolbarEnabled: true,
buildingsEnabled: false,
myLocationButtonEnabled: true,
mapType: MapType.normal,
markers: markers,
onMapCreated: onMapcreated,
zoomControlsEnabled: true,
),
),
);
}
}
注: 我想问题是您的 target LatLng 指的是 不同的位置和另一个原因可能是你没有 提供 API 键。
你之前的目标是 36.736847, 4.045026
,我改为 13.007488, 77.598656
离你的标记最近,包括你的缩放值从 15 到 10