折线颤振工作不正确

Posted

技术标签:

【中文标题】折线颤振工作不正确【英文标题】:Polyline flutter works incorrectly 【发布时间】:2021-12-11 18:35:55 【问题描述】:

我正在使用 Flutter,我想在我的谷歌地图中绘制折线。我的代码在 android 版本中运行良好,但在 Chrome 中却不行。这是我的代码和结果:

使用 Chrome:

Version web image 1

Version web image 2

安卓系统:

Version Android

我使用Google Map:时的代码

    Stack(
           children: [
               Container(
                     height:
                        500,
                     width:
                        380,
                     color:
                       Colors.red,
                     child:
                        GoogleMap(
                          polylines:                                                     
                          _polylines,                                    
                          myLocationButtonEnabled:
                            true,                                        
                          zoomControlsEnabled:
                              true,                                     
                         initialCameraPosition:                                                  
                           _initialCameraPosition,
                         markers:
                           _markers,
                         onMapCreated:
                         (GoogleMapController controller) 
                  _googleMapController = controller;
      ,
     ),
    )
  ]),

我这样使用折线:

 PolylineResult result = await polylinePoints.getRouteBetweenCoordinates(
  googleAPIKey,
   PointLatLng(44.85552543453359,-0.5484378447808893),
   PointLatLng(listlatitudeLocation[0],  listlongitudeLocation[0])
// PointLatLng(44.86301953775456, -0.550416465058058)
  );
print(
   'Result Status  $result.status');
  if (result.status == 'OK') 
 result.points.forEach((PointLatLng point) 
                           polylineCoordinates.add(LatLng(
                                            point.latitude,
                                             point.longitude));
                                             );
 _polylines.add(Polyline(
   polylineId:                                                            
 PolylineId('Polyline_Etape_1'),
  width: 5,
color: Colors.blue,
 points:polylineCoordinates,
    ));
 

颤振医生-v:

[✓] Flutter (Channel master, 2.6.0-12.0.pre.381, on Ubuntu 20.04.2 LTS 5.11.0-38-generic, locale en_US.UTF-8)
   • Flutter version 2.6.0-12.0.pre.381 at /home/hoxuanvinh1999/snap/flutter/common/flutter
   • Upstream repository https://github.com/flutter/flutter.git
   • Framework revision ef634b39a5 (8 days ago), 2021-10-18 15:10:33 -0700
   • Engine revision faa45f497f
   • Dart version 2.15.0 (build 2.15.0-226.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
   • Android SDK at /home/hoxuanvinh1999/Android/Sdk
   • Platform android-31, build-tools 31.0.0
   • Java binary at: /opt/android-studio-2020.3.1/android-studio/jre/bin/java
   • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
   • All Android licenses accepted.

[✓] Chrome - develop for the web
   • CHROME_EXECUTABLE = /home/hoxuanvinh1999/unsafe_chrome/google-chrome-unsafe.sh

[✓] Linux toolchain - develop for Linux desktop
   • clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
   • cmake version 3.10.2
   • ninja version 1.8.2
   • pkg-config version 0.29.1

[✓] Android Studio (version 2020.3)
   • Android Studio at /opt/android-studio-2020.3.1/android-studio
   • Flutter plugin version 60.1.2
   • Dart plugin version 203.8292
   • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] Android Studio
   • Android Studio at /opt/android-studio
   • Flutter plugin can be installed from:
     ???? https://plugins.jetbrains.com/plugin/9212-flutter
   • Dart plugin can be installed from:
     ???? https://plugins.jetbrains.com/plugin/6351-dart
   • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.61.2)
   • VS Code at /usr/share/code
   • Flutter extension version 3.27.0

[✓] Connected device (2 available)
   • Linux (desktop) • linux  • linux-x64      • Ubuntu 20.04.2 LTS 5.11.0-38-generic
   • Chrome (web)    • chrome • web-javascript • Google Chrome 93.0.4577.63

非常感谢!

【问题讨论】:

【参考方案1】:

不要使用外部包,对我来说,我使用带有以下代码的默认谷歌地图包

import 'package:google_maps_flutter/google_maps_flutter.dart';

static const LatLng _center = const LatLng(33.738045, 73.084488);
final Set<Marker> _markers = ;
final Set<Polyline>_polyline=;

//add your lat and lng where you wants to draw polyline
LatLng _lastMapPosition = _center;
List<LatLng> latlng = List();
LatLng _new = LatLng(33.738045, 73.084488);
LatLng _news = LatLng(33.567997728, 72.635997456);

latlng.add(_new);
latlng.add(_news);

//call this method on button click that will draw a polyline and markers

void _onAddMarkerButtonPressed() 
    getDistanceTime();
    setState(() 
        _markers.add(Marker(
            // This marker id can be anything that uniquely identifies each marker.
            markerId: MarkerId(_lastMapPosition.toString()),
            //_lastMapPosition is any coordinate which should be your default 
            //position when map opens up
            position: _lastMapPosition,
            infoWindow: InfoWindow(
                title: 'Really cool place',
                snippet: '5 Star Rating',
            ),
            icon: BitmapDescriptor.defaultMarker,

        ));
        _polyline.add(Polyline(
            polylineId: PolylineId(_lastMapPosition.toString()),
            visible: true,
            //latlng is List<LatLng>
            points: latlng,
            color: Colors.blue,
        ));
    );

    //in your build widget method
    GoogleMap(
    //that needs a list<Polyline>
        polylines:_polyline,
        markers: _markers,
        onMapCreated: _onMapCreated,
        myLocationEnabled:true,
        onCameraMove: _onCameraMove,
        initialCameraPosition: CameraPosition(
            target: _center,
            zoom: 11.0,
        ),

        mapType: MapType.normal,

    );

【讨论】:

非常感谢,我稍后再试一次,很快就会告诉你我的结果。 我试过你的方法。事实上,它确实按照我的意愿从 A 点到 B 点画了一条折线,但它只是一条直线,不是谷歌地图上的真实路线。

以上是关于折线颤振工作不正确的主要内容,如果未能解决你的问题,请参考以下文章

颤振医生致命,未知修订或路径不在工作树错误中

居中所有标记和折线谷歌地图插件颤振适合屏幕

从终端运行的颤振工作,而手动不工作

颤振动画不起作用

将 Firebase 与颤振集成 - 不工作

在颤振构建网站后没有显示构建文件不工作显示空白