标签: fluttermap

如何在 Flutter 的 Canvas 上绘制小部件?

有没有办法在 aWidget上的给定位置绘制a Canvas

更具体地说,我想在实际小部件的前面单独绘制Marker与 a 相关的's的子小部件。这是创建一个可以做到这一点的尝试,但我无法弄清楚如何在画布上实际绘制小部件。使用requires a ,我不知道如何创建/检索:FlutterMapCanvasFlutterMapCustomPainterRenderObjectPaintingContext

class MarkerPainter extends CustomPainter {
  MapController mc;
  BuildContext context;
  List<Marker> markers;

  MarkerPainter(this.context, this.mc, this.markers);

  @override
  void paint(Canvas canvas, Size size) {
    if( markers != null && markers.isNotEmpty ){
      for(int i=0; i<markers.length; i++){
        Marker marker = markers[i];
        Offset o = myCalculateOffsetFromLatLng(marker.point, mc, context);

        // Won't work, this needs a PaintingContext...
        marker.builder(context).createElement().renderObject.paint(context, o); 
      }
    }
  }

  @override
  bool shouldRepaint(MarkerPainter oldDelegate) => oldDelegate.markers != …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout flutter-widget flutter-canvas fluttermap

7
推荐指数
1
解决办法
3280
查看次数

Flutter 中来自 Google 地图的意外响应代码 400

我正在做一个 Flutter 项目,必须在我的项目中集成谷歌地图。为此,我在 Gogle 控制台上创建了一个新项目,添加了适用于 android 的 Maps SDK 和我需要的其他 API,并将密钥复制粘贴到我的 AndroidManisfest.xml 文件中。

<meta-data 
    android:name="com.google.android.geo.API_KEY"
    android:value="my_key_here"    
></meta-data>
Run Code Online (Sandbox Code Playgroud)

现在,当我转到我的地图屏幕时,它只向我显示左下角带有小框和 Google 图标的空白页面,以及右下角的放大和缩小图标。在控制台中,它给出了错误

https://clients4.google.com/glm/mmap/api 的意外响应代码 400

这是我的 map.dart 屏幕的代码

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:location/location.dart';
import 'package:permission_handler/permission_handler.dart';

class ViewMapsScreen extends StatefulWidget {
  @override
  _ViewMapsScreenState createState() => _ViewMapsScreenState();
}

class _ViewMapsScreenState extends State<ViewMapsScreen> {

  Completer<GoogleMapController> _controller = Completer();

  static const LatLng _center = const LatLng(45.521563, -122.677433);

  void _onMapCreated(GoogleMapController controller) {
    _controller.complete(controller);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold( …
Run Code Online (Sandbox Code Playgroud)

google-maps-android-api-2 flutter fluttermap

5
推荐指数
1
解决办法
986
查看次数

参数类型“Iterable&lt;dynamic&gt;”无法分配给参数类型“List&lt;Widget&gt;”

大家好,我正在尝试在代码中映射字符串列表,但它给了我错误“参数类型‘Iterable’不能分配给参数类型‘List’。”。我正在尝试重现下图中的结果。这是下面的代码;

**quote.dart**

class Quote {

  String? text;
  String? author;

  
 

  
  Quote({ required this.text,required this.author });

}


**main.dart**

void main() {
  runApp(MaterialApp(home: QuoteList()));
}

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

  @override
  State<QuoteList> createState() => _QuoteListState();
}

class _QuoteListState extends State<QuoteList> {

  @override
  List<dynamic> quotes = [
    //"Quote" is the the name of the class of the second dart file.
    Quote(
        author: "Eminem",
        text:
            "You better lose yourself in music the moment you own it never let it …
Run Code Online (Sandbox Code Playgroud)

dart flutter fluttermap

5
推荐指数
1
解决办法
1万
查看次数

位置变化结束时的颤动地图

我正在使用 flutter_map 将地图添加到我的项目中。我能够使用它并使用它的选项。但我想要一些在 flutter_map 中找不到的东西。

我想听位置变化并获取用户停止触摸屏幕时的最后位置。就像 GestureDetector 小部件中的 onTapUp 或 onLongPressUp 一样。

flutter_map 中有 onPositionChanged 选项,但每次位置改变时都会调用它,这是很多。一旦用户触摸屏幕,onPositionChanged 就会被调用,直到用户停止触摸屏幕。我可以从中获取最后的位置,但我想在位置发生变化时调用 API 以获取附近汽车的列表。每次调用 onPositionChanged 时都调用 API 并不好。

所以我希望能够在用户完成位置更改时(当他/她停止触摸屏幕时)调用 API。

这是我的 flutter_map 代码:

     FlutterMap(
            key: Key('map'),
            mapController: main.mapController,

            options: MapOptions(
                center: LatLng(main.lat, main.long),
                zoom: 14,
                maxZoom: 18,
                minZoom: 10,
                onPositionChanged: (mapPosition, boolValue){
                  _lastposition = mapPosition.center;
                }),


            layers: [
              TileLayerOptions(
                errorImage: AssetImage('images/login_icon.png'),
                urlTemplate:
                    "https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png",
                // subdomains: ['a', 'b', 'c'],
                // subdomains: ['', '1', '2', '3', '4']
              ),
              MarkerLayerOptions(
                markers: main.markersStart +
                    main.markersDestination +
                    main.driverMarkers,
              ),
            ], …
Run Code Online (Sandbox Code Playgroud)

android location flutter fluttermap

3
推荐指数
1
解决办法
4439
查看次数

3
推荐指数
2
解决办法
714
查看次数

解析 LocalFile 时出错:'E:\android\app\src\main\AndroidManifest.xml' 请确保 android 清单是有效的 XML 文档,然后重试

我的应用程序工作得很好。但是当我添加一些互联网和地图的使用权限以及谷歌地图的 api 密钥时,它给了我错误。我尝试了 flutter clean、flutter run 但仍然遇到相同的错误。我不明白我在清单文件中做错了什么。请有人帮助我。

这是我的清单文件代码:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.food_order">

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<application
    android:label="food_order"
    android:icon="@mipmap/ic_launcher"
    
    <activity
        android:name=".MainActivity"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
       
        <meta-data
          android:name="io.flutter.embedding.android.NormalTheme"
          android:resource="@style/NormalTheme"
          />
       
        <meta-data
          android:name="io.flutter.embedding.android.SplashScreenDrawable"
          android:resource="@drawable/launch_background"
          />
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    
    <meta-data android:name="com.google.android.geo.API_KEY"
               android:value="AIzaSyCn************ratM"/>  
  
    <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

google-maps android-manifest dart flutter fluttermap

3
推荐指数
1
解决办法
2万
查看次数

Zoom 改变了监听器

我想知道,flutter_map包中是否存在v. 0.13.1一些缩放更改事件监听器?

我尝试根据缩放大小更改笔画宽度。我该如何处理这个问题?

flutter fluttermap

3
推荐指数
1
解决办法
2023
查看次数

任务“:location:compileDebugKotlin”执行失败

任务“:location:compileDebugKotlin”执行失败。

运行 Gradle 任务 'assembleDebug'... e: /Users/apple/.pub-cache/hosted/pub.dartlang.org/location-4.3.0/android/src/main/java/com/lyokone/location/FlutterLocationService .kt: (124, 1): 类 'FlutterLocationService' 不是抽象的,也没有实现抽象成员 public Abstract fun onRequestPermissionsResult(p0: Int, p1: Array<(out) String!>, p2: IntArray): Boolean 定义于io.flutter.plugin.common.PluginRegistry.RequestPermissionsResultListener e:/Users/apple/.pub-cache/hosted/pub.dartlang.org/location-4.3.0/android/src/main/java/com/lyokone/location /FlutterLocationService.kt: (258, 5): 'onRequestPermissionsResult' 不覆盖任何内容

失败:构建失败并出现异常。

  • 出了什么问题:任务“:location:compileDebugKotlin”执行失败。

编译错误。查看日志了解更多详情

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。

  • 在https://help.gradle.org获取更多帮助

4 秒内构建失败异常:Gradle 任务 assembleDebug 失败,退出代码为 1

flutter fluttermap flutter-android

3
推荐指数
2
解决办法
4776
查看次数

错误“_InternalLinkedHashMap&lt;String, dynamic&gt;”不是“Iterable&lt;dynamic&gt;”类型的子类型

显示从具有搜索功能的第三方 API 获取的 A-List 错误仅在我运行应用程序时显示,它说 _InternalLinkedHashMap<String, dynamic>' 不是'Iterable 类型的子类型

请Welp *** Edit A new Error Showed after play the code this error shows type 'String' is not a subtype of type Map-dynamic, dynamic-

        Future<Null> getStoreDetails() async {
                var basicAuth = 'Basic ' +
                    base64Encode(utf8.encode('api_token_key'));
                var result;
             
                var response = await http.get(url, headers: {'authorization': basicAuth});
                if (response.statusCode == 200) {
                  var responseJson = json.decode(response.body);
                  setState(() {
             /Where the error is 
                    for (Map storedetails in responseJson) {
                      _searchResult.add(StoreDetails.fromJson(storedetails));
                    }
                  });
                } else …
Run Code Online (Sandbox Code Playgroud)

dart flutter fluttermap

2
推荐指数
1
解决办法
9790
查看次数

flutter_map 缩放未更新

我正在使用 flutter_map 插件和 OpenStreetMap 作为提供者。我有两个用于更改缩放级别的按钮,用于增加/减少 currentZoom 变量(双倍)。

在我的小部件的构建覆盖中,我正在重建地图,如下所示:

  @override
  Widget build(BuildContext context) {
    FlutterMap currentmap = FlutterMap(
      options: MapOptions(
        center: LatLng(latitude, longitude),
        onTap: (pos) {
          print(pos);
        },
        zoom: currentZoom,
        // debug: true,
      ),
      layers: [
        TileLayerOptions(
          overrideTilesWhenUrlChanges: false,
          urlTemplate:
              "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png?source=${DateTime.now().millisecondsSinceEpoch}",
          subdomains: ['a', 'b', 'c'],
          additionalOptions: {},
        ),
Run Code Online (Sandbox Code Playgroud)

,然后将 currentMap 用作画布的子级,这确实可以完美地工作。

请注意,我在 URL 末尾添加了 ?source= 来强制更新缓存(但删除此参数也不能解决问题)。

但是,当我更改按钮 onPressed 回调中的 currentZoom 级别然后调用 SetState 时,页面会重建,但地图缩放级别根本不会改变。

这是回调:

IconButton(icon: Icon(Icons.remove_circle_outline_rounded),
                            onPressed: () => setState(() {
                              currentZoom =
                                  currentZoom < 1 ? 0 : currentZoom - …
Run Code Online (Sandbox Code Playgroud)

openstreetmap flutter fluttermap

2
推荐指数
1
解决办法
5742
查看次数

如何在 flutter_map 中添加实时位置跟踪?

如何将实时跟踪与flutter_map集成。有谁知道其中集成了哪个库?或如何实施?

flutter flutter-dependencies flutter-layout fluttermap

2
推荐指数
1
解决办法
1万
查看次数

如何将地图视图更改为 Flutter_map 中的新标记位置

我在我的应用程序中使用 Flutter_map 包和 MapBox API,我能够在地图中找到当前用户位置,但我想在地图上放置一个按钮,并在用户单击时将其视图更改为新位置就它而言(在我的代码中预定义为标记“secondPosition”的新位置),顺便说一句,我知道如何在 Google 地图包中执行此操作,但我不知道如何在 flutter_map 中执行此操作。

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:flutter_map_location_marker/flutter_map_location_marker.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:geolocator/geolocator.dart';
import 'package:latlong2/latlong.dart' as latLng;

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);


  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',

      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);


  final String title;

  @override
  State<MyHomePage> …
Run Code Online (Sandbox Code Playgroud)

location markers flutter fluttermap

2
推荐指数
1
解决办法
4846
查看次数