Coder Social home page Coder Social logo

flutter_street_view's People

Contributors

fvasquezc23 avatar hukusuke1007 avatar zyz-gt avatar zyzdev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

flutter_street_view's Issues

Why with my Gps Coordinate dont' work ?

Hi

i testing you lib with this data, initPos: LatLng(40.782475, 14.609774),
but i see only black screen :)

My data are correct i get it from my gps app for localize car and truck

Help me:)

Use `final` instead of `const Object()` as token for plugin_platform_interface

This plugin should not use a const Object() as the platform interface token. There was an error in the documentation for plugin_platform_interface; see flutter/flutter#96178.

The consequence, while unlikely in the short term, is that someone could develop an implementation using implements instead of extends, and everything would work initially but changes to the platform interface would break that implementation.

Recommended fix

Use a static final Object _token = Object(); instead of static const Object _token = Object(); in StreetViewFlutterPlatform.

Optional steps to prevent regressions.

  • Update street_view_platform_interface to depend on plugin_platform_interface: ^2.1.1
  • Call verify instead of verifyExtends in the instance setter of StreetViewFlutterPlatform.

This could break other implementations if there are any, so make sure to make it a major update to street_view_platform_interface. (Probably better to get it out of the way early while there aren't any other implementations.)

/cc @stuartmorgan

Street view from Android app - no longer working

A day or so ago I started to get the following errors whenever I try to show 'street view' content in my Android app. All I get is a blank dark display with no street view displayed.

W/DynamiteModule(22111): Local module descriptor class for com.google.android.gms.googlecertificates not found.
I/DynamiteModule(22111): Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:7
I/DynamiteModule(22111): Selected remote version of com.google.android.gms.googlecertificates, version >= 7
I/SnapshotHandler(22111): Unable to retrieve flag snapshot for com.google.android.libraries.consentverifier#com.eis.lejog.lejog, using defaults.
W/MobStoreFlagStore(22111): Unable to update local snapshot for com.google.android.libraries.consentverifier#com.eis.lejog.lejog, may result in stale flags.
W/MobStoreFlagStore(22111): java.util.concurrent.ExecutionException: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.eis.lejog.lejog, sha256=[], atk=false, ver=222658040.true (go/gsrlt)
W/MobStoreFlagStore(22111): 	at ahv.s(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):3)
W/MobStoreFlagStore(22111): 	at ahv.get(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):2)
W/MobStoreFlagStore(22111): 	at ajf.g(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):2)
W/MobStoreFlagStore(22111): 	at xx.d(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):1)
W/MobStoreFlagStore(22111): 	at xz.run(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):0)
W/MobStoreFlagStore(22111): 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
W/MobStoreFlagStore(22111): 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
W/MobStoreFlagStore(22111): 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
W/MobStoreFlagStore(22111): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
W/MobStoreFlagStore(22111): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
W/MobStoreFlagStore(22111): 	at java.lang.Thread.run(Thread.java:923)
W/MobStoreFlagStore(22111): Caused by: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.eis.lejog.lejog, sha256=[], atk=false, ver=222658040.true (go/gsrlt)
W/MobStoreFlagStore(22111): 	at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
W/MobStoreFlagStore(22111): 	at android.os.Parcel.createException(Parcel.java:2357)
W/MobStoreFlagStore(22111): 	at android.os.Parcel.readException(Parcel.java:2340)
W/MobStoreFlagStore(22111): 	at android.os.Parcel.readException(Parcel.java:2282)
W/MobStoreFlagStore(22111): 	at em.bc(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):2)
W/MobStoreFlagStore(22111): 	at rj.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):4)
W/MobStoreFlagStore(22111): 	at it.e(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):2)
W/MobStoreFlagStore(22111): 	at js.t(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):2)
W/MobStoreFlagStore(22111): 	at js.u(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):3)
W/MobStoreFlagStore(22111): 	at js.e(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):2)
W/MobStoreFlagStore(22111): 	at jw.handleMessage(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (150700-0):69)
W/MobStoreFlagStore(22111): 	at android.os.Handler.dispatchMessage(Handler.java:102)
W/MobStoreFlagStore(22111): 	at android.os.Looper.loop(Looper.java:223)
W/MobStoreFlagStore(22111): 	at android.os.HandlerThread.run(HandlerThread.java:67)

Throw Exception unknown in onPanoramaChangeListener

Hi

It happens that I am dealing with the errors in the onPanoramaChangeListener, but currently it is throwing an unknown error and I want to know why it occurs, since it is different from the most common one which is Exception: Oops ..., no valid panorama found with position: -45.1313, 151.214123

Message

Exception: setPosition, catch unknown error.

Screen Shot 2021-11-26 at 3 05 17 PM

Attached the location to replicate the error

:::LATITUDE:::

4.6544114

:::LONGITUDE:::

-74.1229244

[Android] java.lang.NullPointerException: Parameter specified as non-null is null: method zyz.flutter.plugin.flutter_google_street_view.FlutterGoogleStreetView.onStreetViewPanoramaChange, parameter location

The app crashes when setting a location where Street View does not exist.

flutter_google_street_view: ^3.1.4
D/AndroidRuntime(24825): Shutting down VM
E/AndroidRuntime(24825): FATAL EXCEPTION: main
E/AndroidRuntime(24825): Process: app.product.sekaiisanwalking.development, PID: 24825
E/AndroidRuntime(24825): com.google.maps.api.android.lib6.common.apiexception.f: java.lang.NullPointerException: Parameter specified as non-null is null: method zyz.flutter.plugin.flutter_google_street_view.FlutterGoogleStreetView.onStreetViewPanoramaChange, parameter location
E/AndroidRuntime(24825): 	at com.google.maps.api.android.lib6.streetview.camera.i.g(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):323)
E/AndroidRuntime(24825): 	at com.google.maps.api.android.lib6.streetview.camera.e.run(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):3)
E/AndroidRuntime(24825): 	at android.os.Handler.handleCallback(Handler.java:942)
E/AndroidRuntime(24825): 	at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(24825): 	at android.os.Looper.loopOnce(Looper.java:201)
E/AndroidRuntime(24825): 	at android.os.Looper.loop(Looper.java:288)
E/AndroidRuntime(24825): 	at android.app.ActivityThread.main(ActivityThread.java:7918)
E/AndroidRuntime(24825): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(24825): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E/AndroidRuntime(24825): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
E/AndroidRuntime(24825): Caused by: java.lang.NullPointerException: Parameter specified as non-null is null: method zyz.flutter.plugin.flutter_google_street_view.FlutterGoogleStreetView.onStreetViewPanoramaChange, parameter location
E/AndroidRuntime(24825): 	at zyz.flutter.plugin.flutter_google_street_view.FlutterGoogleStreetView.onStreetViewPanoramaChange(Unknown Source:2)
E/AndroidRuntime(24825): 	at com.google.android.gms.maps.zzai.zzb(com.google.android.gms:play-services-maps@@18.1.0:1)
E/AndroidRuntime(24825): 	at com.google.android.gms.maps.internal.zzbl.zza(com.google.android.gms:play-services-maps@@18.1.0:3)
E/AndroidRuntime(24825): 	at com.google.android.gms.internal.maps.zzb.onTransact(com.google.android.gms:play-services-maps@@18.1.0:3)
E/AndroidRuntime(24825): 	at android.os.Binder.transact(Binder.java:1164)
E/AndroidRuntime(24825): 	at m.fh.c(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):8)
E/AndroidRuntime(24825): 	at com.google.maps.api.android.lib6.streetview.camera.i.g(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):316)
E/AndroidRuntime(24825): 	... 9 more
W/ing.development(24825): Accessing hidden field Landroid/os/Message;->next:Landroid/os/Message; (unsupported, reflection, allowed)

Inside ListView Animating StreetView Camera Up & Down is hard

Hello ๐Ÿ‘‹,

First of all thanks for your package it's great,

I'm having issues when using FlutterGoogleStreetView() inside a ListView as the scrolling of the vertical ListView conflicts with the gesture to moveCamera Up & Down on touch devices - any ideas how to solve this ?

Also the Google Maps credits titles move up & down while scrolling

Street view keep loading ios

my streetView section keep loading
Screenshot 2022-01-04 at 12 22 17

FlutterGoogleStreetView( initSource: StreetViewSource.outdoor, initBearing: 30, initTilt: 30, initZoom: 1.5, initPos: LatLng(-45.125783, 151.276417), )

How to get camera to face targeted LatLng

Thank you for designing this plugin. Is there a way to set the bearing based off a LatLng location and a LatLng location where the car actually took the street view photo? I am struggling with how to get the camera to face a building based on the map location.

The screen goes black

Hello again ๐Ÿ‘‹

Summary
The screen goes black when it cannot find a view of a location.

flutter doctor

Doctor summary (to see all details, run flutter doctor -v):
[โœ“] Flutter (Channel unknown, 2.5.1, on macOS 11.2.3 20D91 darwin-x64, locale en-CO)
[โœ“] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[โœ“] Xcode - develop for iOS and macOS
[โœ“] Chrome - develop for the web
[โœ“] Android Studio (version 4.2)
[โœ“] IntelliJ IDEA Community Edition (version 2021.2.1)
[โœ“] VS Code (version 1.61.2)
[โœ“] VS Code (version 1.57.0)
[โœ“] VS Code (version 1.56.2)
[โœ“] Connected device (2 available)

pubspec

name: xxxxxx
description: xxxxx

environment:
 sdk: 2.14.2
 flutter: 2.5.1
 
 dependencies:
 flutter:
   sdk: flutter

  flutter_google_street_view: ^2.2.2

Steps to Reproduce Issue:

Screen Shot 2021-10-29 at 2 38 07 PM

๐Ÿค“ I have consulted this behavior and it is normal in street view when that location does not yet have mapped, the same thing happens in js SDK. ๐Ÿค“

The ideal point is to control this case, I would like to know if from the SDK it can be notified through a listener, to detect this behavior and show the user a corresponding message. โ“

Bug - Fuzzy rendering in physical devices

Hello ๐Ÿ‘‹ .

Description:*
I'm using your great library, but I'm having rendering problems.

Make two types of street view, one with your library and the other with an embedded html.

The result is super large rendering of the html is better, I want to report that behavior.

flutter doctor

Doctor summary (to see all details, run flutter doctor -v):
[โœ“] Flutter (Channel unknown, 2.5.1, on macOS 11.2.3 20D91 darwin-x64, locale en-CO)
[โœ“] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[โœ“] Xcode - develop for iOS and macOS
[โœ“] Chrome - develop for the web
[โœ“] Android Studio (version 4.2)
[โœ“] IntelliJ IDEA Community Edition (version 2021.2.1)
[โœ“] VS Code (version 1.61.2)
[โœ“] VS Code (version 1.57.0)
[โœ“] VS Code (version 1.56.2)
[โœ“] Connected device (2 available)

pubspec

name: xxxxxx
description: xxxxx

environment:
 sdk: 2.14.2
 flutter: 2.5.1
 
 dependencies:
 flutter:
   sdk: flutter

  flutter_google_street_view: ^2.2.2

Steps to Reproduce Issue:

This first image is with flutter_street_view

Screen Shot 2021-10-27 at 3 13 02 PM

And the second with the HTML embed

Screen Shot 2021-10-27 at 3 02 06 PM

Characteristics of the mobile

MOTO e(7) Pluss
Screen Shot 2021-10-27 at 3 43 33 PM

Street-view snapshots

Hey do you know if there's a way of pulling the image bytes from street view to save as a snapshot? Would be a similar ask to the method seen here

Problem using "onPanoramaChangeListener"

I have been trying to use "onPanoramaChangeListener" as a way of capturing whether a street exists for a given LatLng, but I'm finding that this causing an uncaptured exception inside your package.

Here's the code

  Widget _buildStreetView(MapInfo aDetailMapInfo) {
    try {
      return _streetViewAvailable ? gs.FlutterGoogleStreetView(
          initPos: gs.LatLng(aDetailMapInfo.position.latitude,aDetailMapInfo.position.longitude),
          initRadius: 250.0,
          initSource: gs.StreetViewSource.outdoor,
          // onPanoramaChangeListener: (location,e) {
          //   setState(() {
          //     _streetViewAvailable = (e == null);
          //   });
          // },
        ) : const Center(child: Text('Street view not available for this location'));
    } on Exception catch (e) {
      return Center(child: Text('Street view failed with error: ${e.toString()}'));
    }
  }

If I run it as shown above with 'onPanoramaChangeListener' commented out, then I get a black screen displayed for the screen view and the following log output

I/SurfaceView@5a86955(11721): updateSurface: mSurfaceCreated = false surfaceChanged = true visibleChanged = true
I/SurfaceView@5a86955(11721): surfaceCreated 1 #8 com.google.maps.api.android.lib6.streetview.d{5a86955 VFE...C.. ........ 0,0-985,1348}
I/SurfaceView@5a86955(11721): surfaceChanged (985,1348) 1 #8 com.google.maps.api.android.lib6.streetview.d{5a86955 VFE...C.. ........ 0,0-985,1348}
I/ViewRootImpl@4fb686[MainActivity](11721): [DP] dp(1) 1 android.view.SurfaceView.updateSurface:1375 android.view.SurfaceView.lambda$new$1$SurfaceView:254 android.view.SurfaceView$$ExternalSyntheticLambda2.onPreDraw:2 
I/SurfaceView@5a86955(11721): uSP: rtp = Rect(47, 771 - 1032, 2119) rtsw = 985 rtsh = 1348
I/SurfaceView@5a86955(11721): onSSPAndSRT: pl = 47 pt = 771 sx = 1.0 sy = 1.0
I/SurfaceView@5a86955(11721): aOrMT: uB = true t = android.view.SurfaceControl$Transaction@8e3da0a fN = 189 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1728 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:319 
I/SurfaceView@5a86955(11721): aOrMT: vR.mWNT, vR = ViewRootImpl@4fb686[MainActivity]
I/ViewRootImpl@4fb686[MainActivity](11721): mWNT: t = android.view.SurfaceControl$Transaction@8e3da0a fN = 189 android.view.SurfaceView.applyOrMergeTransaction:1628 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1728 
I/ViewRootImpl@4fb686[MainActivity](11721): mWNT: merge t to BBQ
I/ViewRootImpl@4fb686[MainActivity](11721): [DP] pdf(0) 1 android.view.SurfaceView.notifyDrawFinished:599 android.view.SurfaceView.performDrawFinished:586 android.view.SurfaceView.$r8$lambda$st27mCkd9jfJkTrN_P3qIGKX6NY:0 
I/ViewRootImpl@4fb686[MainActivity](11721): [DP] rdf()
D/ViewRootImpl@4fb686[MainActivity](11721): reportDrawFinished (fn: -1) 

If I activate the 'onPanoramaChangeListener' event handler as shown below...

try {
  return _streetViewAvailable ? gs.FlutterGoogleStreetView(
      initPos: gs.LatLng(aDetailMapInfo.position.latitude,aDetailMapInfo.position.longitude),
      initRadius: 250.0,
      initSource: gs.StreetViewSource.outdoor,
      onPanoramaChangeListener: (location,e) {
        setState(() {
          _streetViewAvailable = (e == null);
        });
      },
    ) : const Center(child: Text('Street view not available for this location'));
} on Exception catch (e) {
  return Center(child: Text('Street view failed with error: ${e.toString()}'));
}

... then this for the same location generates the following exception...

I/ViewRootImpl@3d72ee0[MainActivity](13397): ViewPostIme pointer 0
I/ViewRootImpl@3d72ee0[MainActivity](13397): ViewPostIme pointer 1
I/zzbz    (13397): Making Creator dynamically
I/DynamiteModule(13397): Considering local module com.google.android.gms.maps_dynamite:0 and remote module com.google.android.gms.maps_dynamite:203115000
I/DynamiteModule(13397): Selected remote version of com.google.android.gms.maps_dynamite, version >= 203115000
V/DynamiteModule(13397): Dynamite loader version >= 2, using loadModule2NoCrashUtils
W/eis.lejog.lejo(13397): ClassLoaderContext classpath element mismatch. expected=/data/app/~~eWQyNIV4t9iP1LVf-GxFgQ==/com.fitbit.FitbitMobile-ONVjv_mZvaX1TRcqrfZUjg==/base.apk, found=/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk (DLC[];PCL[/data/app/~~eWQyNIV4t9iP1LVf-GxFgQ==/com.fitbit.FitbitMobile-ONVjv_mZvaX1TRcqrfZUjg==/base.apk*2243878517:/data/app/~~eWQyNIV4t9iP1LVf-GxFgQ==/com.fitbit.FitbitMobile-ONVjv_mZvaX1TRcqrfZUjg==/base.apk!classes2.dex*2668200297:/data/app/~~eWQyNIV4t9iP1LVf-GxFgQ==/com.fitbit.FitbitMobile-ONVjv_mZvaX1TRcqrfZUjg==/base.apk!classes3.dex*334745928:/data/app/~~eWQyNIV4t9iP1LVf-GxFgQ==/com.fitbit.FitbitMobile-ONVjv_mZvaX1TRcqrfZUjg==/base.apk!classes4.dex*3476986656:/data/app/~~eWQyNIV4t9iP1LVf-GxFgQ==/com.fitbit.FitbitMobile-ONVjv_mZvaX1TRcqrfZUjg==/base.apk!classes5.dex*3073106838:/data/app/~~eWQyNIV4t9iP1LVf-GxFgQ==/com.fitbit.FitbitMobile-ONVjv_mZvaX1TRcqrfZUjg==/base.apk!classes6.dex*1474399738:/data/app/~~eWQyNIV4t9iP1LVf-GxFgQ==/com.fitbit.FitbitMobile-ONVjv_mZvaX1TRcqrfZUjg==/base.apk!classes7.dex*2719920584]{PCL[/system/framework/org.apache.http.legacy.jar*128607898]} | DLC[];PCL[/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk*1247502066:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes2.dex*3187687016:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes3.dex*1702229643:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes4.dex*437907607:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes5.dex*3765254733:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes6.dex*3225362172:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes7.dex*2301088448]{PCL[/system/framework/org.apache.http.legacy.jar*128607898]})
I/Google Maps Android API(13397): Google Play services client version: 12451000
I/Google Maps Android API(13397): Google Play services package version: 232414044
I/Google Maps Android API(13397): Google Play services maps renderer version(legacy): 203115000
I/PlatformViewsController(13397): Using hybrid composition for platform view: 0
I/bb      (13397): Successfully registered with Phenotype.
I/SurfaceView@9e09836(13397): onWindowVisibilityChanged(0) true com.google.maps.api.android.lib6.streetview.d{9e09836 VFE...C.. ......I. 0,0-0,0} of ViewRootImpl@3d72ee0[MainActivity]
I/SurfaceView@9e09836(13397): pST: sr = Rect(47, 771 - 1032, 2119) sw = 985 sh = 1348
I/SurfaceView@9e09836(13397): onSSPAndSRT: pl = 47 pt = 771 sx = 1.0 sy = 1.0
I/SurfaceView@9e09836(13397): pST: mTmpTransaction.apply, mTmpTransaction = android.view.SurfaceControl$Transaction@ca914e9
I/SurfaceView@9e09836(13397): updateSurface: mVisible = true mSurface.isValid() = true
I/SurfaceView@9e09836(13397): updateSurface: mSurfaceCreated = false surfaceChanged = true visibleChanged = true
I/SurfaceView@9e09836(13397): surfaceCreated 1 #8 com.google.maps.api.android.lib6.streetview.d{9e09836 VFE...C.. ......ID 0,0-985,1348}
I/SurfaceView@9e09836(13397): surfaceChanged (985,1348) 1 #8 com.google.maps.api.android.lib6.streetview.d{9e09836 VFE...C.. ......ID 0,0-985,1348}
I/ViewRootImpl@3d72ee0[MainActivity](13397): [DP] dp(1) 1 android.view.SurfaceView.updateSurface:1375 android.view.SurfaceView.lambda$new$1$SurfaceView:254 android.view.SurfaceView$$ExternalSyntheticLambda2.onPreDraw:2 
I/SurfaceView@9e09836(13397): uSP: rtp = Rect(47, 771 - 1032, 2119) rtsw = 985 rtsh = 1348
I/SurfaceView@9e09836(13397): onSSPAndSRT: pl = 47 pt = 771 sx = 1.0 sy = 1.0
I/SurfaceView@9e09836(13397): aOrMT: uB = true t = android.view.SurfaceControl$Transaction@d93156e fN = 2 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1728 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:319 
I/SurfaceView@9e09836(13397): aOrMT: vR.mWNT, vR = ViewRootImpl@3d72ee0[MainActivity]
I/ViewRootImpl@3d72ee0[MainActivity](13397): mWNT: t = android.view.SurfaceControl$Transaction@d93156e fN = 2 android.view.SurfaceView.applyOrMergeTransaction:1628 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1728 
I/ViewRootImpl@3d72ee0[MainActivity](13397): mWNT: merge t to BBQ
I/ViewRootImpl@3d72ee0[MainActivity](13397): [DP] pdf(0) 1 android.view.SurfaceView.notifyDrawFinished:599 android.view.SurfaceView.performDrawFinished:586 android.view.SurfaceView.$r8$lambda$st27mCkd9jfJkTrN_P3qIGKX6NY:0 
I/ViewRootImpl@3d72ee0[MainActivity](13397): [DP] rdf()
D/ViewRootImpl@3d72ee0[MainActivity](13397): reportDrawFinished (fn: -1) 
I/SurfaceView@9e09836(13397): onWindowVisibilityChanged(8) false com.google.maps.api.android.lib6.streetview.d{9e09836 VFE...C.. ........ 0,0-985,1348} of ViewRootImpl@3d72ee0[MainActivity]
I/SurfaceView@9e09836(13397): pST: mTmpTransaction.apply, mTmpTransaction = android.view.SurfaceControl$Transaction@ca914e9
I/SurfaceView@9e09836(13397): surfaceDestroyed callback.size 1 #2 com.google.maps.api.android.lib6.streetview.d{9e09836 VFE...C.. ........ 0,0-985,1348}
I/SurfaceView@9e09836(13397): updateSurface: mVisible = false mSurface.isValid() = true
I/SurfaceView@9e09836(13397): tryReleaseSurfaces: set mRtReleaseSurfaces = true
I/SurfaceView@9e09836(13397): onDetachedFromWindow: tryReleaseSurfaces()
I/SurfaceView@9e09836(13397): tryReleaseSurfaces: set mRtReleaseSurfaces = true
I/SurfaceView@9e09836(13397): 196086940 wPL, frameNr = 4
I/SurfaceView@9e09836(13397): remove() from RT android.view.SurfaceView$SurfaceViewPositionUpdateListener@bb00c9c Surface(name=SurfaceView - com.eis.lejog.lejog/com.eis.lejog.lejog.MainActivity@9e09836@0)/@0xa7516a5
I/SurfaceView@9e09836(13397): remove() com.google.maps.api.android.lib6.streetview.d{9e09836 VFE...C.. ........ 0,0-985,1348} Surface(name=SurfaceView - com.eis.lejog.lejog/com.eis.lejog.lejog.MainActivity@9e09836@0)/@0xa7516a5
I/SurfaceView@9e09836(13397): aOrMT: uB = false t = android.view.SurfaceControl$Transaction@6ff5688 fN = 4 android.view.SurfaceView.access$500:124 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionLost:1785 android.graphics.RenderNode$CompositePositionUpdateListener.positionLost:326 
I/SurfaceView@9e09836(13397): aOrMT: t.apply
W/DynamiteModule(13397): Local module descriptor class for com.google.android.gms.googlecertificates not found.
I/DynamiteModule(13397): Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:7
I/DynamiteModule(13397): Selected remote version of com.google.android.gms.googlecertificates, version >= 7
W/eis.lejog.lejo(13397): ClassLoaderContext type mismatch. expected=PCL, found=DLC (PCL[] | DLC[];PCL[/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk*1247502066:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes2.dex*3187687016:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes3.dex*1702229643:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes4.dex*437907607:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes5.dex*3765254733:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes6.dex*3225362172:/data/app/~~aKCLY37Fel0LYZ8WK9L5zg==/com.eis.lejog.lejog-XrtftY21Ru9zYmUR6iMngg==/base.apk!classes7.dex*2301088448]{PCL[/system/framework/org.apache.http.legacy.jar*128607898]})
I/SnapshotHandler(13397): Unable to retrieve flag snapshot for com.google.android.libraries.consentverifier#com.eis.lejog.lejog, using defaults.
W/MobStoreFlagStore(13397): Unable to update local snapshot for com.google.android.libraries.consentverifier#com.eis.lejog.lejog, may result in stale flags.
W/MobStoreFlagStore(13397): java.util.concurrent.ExecutionException: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.eis.lejog.lejog, sha256=[cf712b5da7a865ec27ce35698f601b49a5b0a8c7d1246750082d43b9916d2142], atk=false, ver=232414044.true (go/gsrlt)
W/MobStoreFlagStore(13397): 	at m.ajx.s(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):3)
W/MobStoreFlagStore(13397): 	at m.ajx.get(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):2)
W/MobStoreFlagStore(13397): 	at m.alh.g(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):2)
W/MobStoreFlagStore(13397): 	at m.yz.c(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):1)
W/MobStoreFlagStore(13397): 	at m.zb.run(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):0)
W/MobStoreFlagStore(13397): 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
W/MobStoreFlagStore(13397): 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
W/MobStoreFlagStore(13397): 	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
W/MobStoreFlagStore(13397): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
W/MobStoreFlagStore(13397): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
W/MobStoreFlagStore(13397): 	at java.lang.Thread.run(Thread.java:920)
W/MobStoreFlagStore(13397): Caused by: java.lang.SecurityException: GoogleCertificatesRslt: not allowed: pkg=com.eis.lejog.lejog, sha256=[cf712b5da7a865ec27ce35698f601b49a5b0a8c7d1246750082d43b9916d2142], atk=false, ver=232414044.true (go/gsrlt)
W/MobStoreFlagStore(13397): 	at android.os.Parcel.createExceptionOrNull(Parcel.java:2438)
W/MobStoreFlagStore(13397): 	at android.os.Parcel.createException(Parcel.java:2422)
W/MobStoreFlagStore(13397): 	at android.os.Parcel.readException(Parcel.java:2405)
W/MobStoreFlagStore(13397): 	at android.os.Parcel.readException(Parcel.java:2347)
W/MobStoreFlagStore(13397): 	at m.fe.c(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):2)
W/MobStoreFlagStore(13397): 	at m.ry.a(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):4)
W/MobStoreFlagStore(13397): 	at m.jl.e(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):2)
W/MobStoreFlagStore(13397): 	at m.kj.t(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):2)
W/MobStoreFlagStore(13397): 	at m.kj.u(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):3)
W/MobStoreFlagStore(13397): 	at m.kj.e(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):2)
W/MobStoreFlagStore(13397): 	at m.kn.handleMessage(:com.google.android.gms.dynamite_mapsdynamite@[email protected] (190400-0):78)
W/MobStoreFlagStore(13397): 	at android.os.Handler.dispatchMessage(Handler.java:102)
W/MobStoreFlagStore(13397): 	at android.os.Looper.loopOnce(Looper.java:226)
W/MobStoreFlagStore(13397): 	at android.os.Looper.loop(Looper.java:313)
W/MobStoreFlagStore(13397): 	at android.os.HandlerThread.run(HandlerThread.java:67)

Unregistered view type: 'my_street_view', null)

Any idea on what could be causing this exception? (Developing in Flutter)

All credentials installed correctly
Have added Google to the Podfile
App opens and loads, on clicking to open Street View this shows

Unhandled Exception: PlatformException(unregistered_view_type, trying to create a view with an unregistered type, unregistered view type: 'my_street_view', null)

Crash -> with IOS 15.0.2 -> when rendering panoramas

Hello ๐Ÿ‘‹ .

Description:*
In our Crash monitors we have had several reports with IOS 15 with the rendering of the street view.

pubspec

name: xxxxxx
description: xxxxx

environment:
 sdk: 2.14.2
 flutter: 2.5.1
 
 dependencies:
 flutter:
   sdk: flutter

  flutter_google_street_view: ^2.2.3

Characteristics of the IPAD

image (5)

With other models

Screen Shot 2021-12-10 at 11 28 23 AM

Error reported by App store

image (6)

Error reported

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GMSx_GPSPhotoMetadata photoAnnotationArray]: unrecognized selector sent to instance 0x282f53d50'
*** First throw call stack:
(0x18106b05c 0x199585f54 0x18114801c 0x181000484 0x180fff5c0 0x104525b84 0x1045246a4 0x1045380e8 0x10453774c 0x1042e67bc 0x10451ecc8 0x104514514 0x1042fbbe4 0x1042fb514 0x180cdbc04 0x180cdd950 0x180cebd30 0x181023ce4 0x180fddebc 0x180ff13c8 0x19c80238c 0x183997060 0x183714b8c 0x1041ef184 0x1056e9a24)
libc++abi: terminating with uncaught exception of type NSException
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00000001b79ec9c4 libsystem_kernel.dylib`__pthread_kill + 8
libsystem_kernel.dylib`__pthread_kill:
->  0x1b79ec9c4 <+8>:  b.lo   0x1b79ec9e4               ; <+40>
    0x1b79ec9c8 <+12>: pacibsp
    0x1b79ec9cc <+16>: stp    x29, x30, [sp, #-0x10]!
    0x1b79ec9d0 <+20>: mov    x29, sp
Target 0: (Runner) stopped.
Lost connection to device.

Error on location no available, throwed in web

Hi zyzdev, great package by the way, I've an issue throwing on web platform of flutter and its when location its not available. I saw the page where you show how to fix it but nothing, its keep crashing, I will attached images of that error. Thanks.
Screenshot 2022-10-19 171411
Screenshot 2022-10-19 171430

Does this package reuse panorama object to reduce instantiation count?

A dynamic Street View panorama is charged for each instantiation of a panorama object.
According to Google docs, an instantiation of a panorama object occurs:

On Android, with one of StreetViewPanoramaFragment, SupportStreetViewPanoramaFragment, or StreetViewPanoramaView classes. A panorama is counted each time the related onCreate() method is called.

On iOS, with the GMSPanoramaView object.

I wanted to ask if using FlutterGoogleStreetView widget creates a panoroma object every time or reuses the first one.

Component not loading in web release mode

Hello, I use the dependency only for the web and open the street view when I press the button, in debug mode it shows correctly and does not present any problems, but in release mode it does not load anything.

I check my google key, and it's ok. I try the dependency examples with my key and have the same issue on release.

Debug mode

Captura de Tela 2023-03-27 aฬ€s 11 10 41

Release mode

Captura de Tela 2023-03-27 aฬ€s 11 01 52

Street View Side-By-Side

Can i display the Street View panorama alongside a map with a marker that displays the current position of the panorama on the map ?

Screenshot 2022-02-23 at 05 05 36

Previous street view retained

Hi,
Thanks for this nice plugin.
I noticed when opening multiple street view using your plugin, the previous view is first displayed before jumping to new Lat/Lng.
I'm using your view with navigator.push
When clicking the top left back button, the widget is properly disposed, then the next call to your class shows the previous street view before jumping to the new Lat/Lng.
I'm using your plugin as follow :

@override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(S.current.decouvrirQuartier, style: TextStyle(fontSize: APP_BAR_FONT_SIZE, fontWeight: APP_BAR_FONT_WEIGHT),),
          leading: IconButton(
            icon: const Icon(Icons.arrow_back),
            onPressed: () => Navigator.pop(context),
          ),
        ),
        body: SafeArea(
          child: 
              FlutterGoogleStreetView(
                **initPos: LatLng(widget.thePoi.latitude, widget.thePoi.longitude),**
                markers: markers,
                //motionTracking: true,
                streetNamesEnabled: true,
                userNavigationEnabled: true,
                onStreetViewCreated: (controller) {
                  setState(() {
                    _controller = controller;
                  });
                },
                onPanoramaChangeListener: (location, e) {
                  if(e != null) {
                    Utils.showMyDialogAlert(
                        context,
                        "assets/images/logoH256.png",
                        S.current.Erreur,
                        S.current.StreetViewNotAvailable,
                        null,
                        "OK", () {
                      Navigator.pop(context);
                    });
                  }
                },
              ),
        ),
    );
  }

Any idea why the previous view is retained ?
Thanks

Simulator.Screen.Recording.-.iPhone.14.Pro.-.2023-05-24.at.13.55.47.mov

Bump kotlin version to 1.5.20 or higher

The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher.
The following dependencies do not satisfy the required version:
project ':flutter_google_street_view' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61

Track Maps SDK calls?

Is it possible to track the number of Maps SDK calls made by this package? Is there an event I can use to handle this?

Build error for Android

Flutter 3.0.0
Dart 2.17.0
flutter_google_street_view: ^2.2.7

Error Log

e: /flutter/.pub-cache/hosted/pub.dartlang.org/flutter_google_street_view-2.2.7/android/src/main/kotlin/zyz/flutter/plugin/flutter_google_street_view/FlutterGoogleStreetViewFactory.kt: (11, 1): Class 'FlutterGoogleStreetViewFactory' is not abstract and does not implement abstract base class member public abstract fun create(p0: Context?, p1: Int, p2: Any?): PlatformView defined in io.flutter.plugin.platform.PlatformViewFactory
e: /flutter/.pub-cache/hosted/pub.dartlang.org/flutter_google_street_view-2.2.7/android/src/main/kotlin/zyz/flutter/plugin/flutter_google_street_view/FlutterGoogleStreetViewFactory.kt: (14, 5): 'create' overrides nothing

New feature request: attribute to display info when no street view is available

Business problem:
Not all LatLng locations can be translated into a street view. Currently, if a LatLng has no street view then the widget returns a blank black image.
In this case, the user does not know why the the black screen is being displayed (e.g. software bug or something wrong with Google or no street view available)

New feature proposal:
Add a new attribute to the Street view widget that allow the developer to set a presentation value that would be displayed if no street view were available for a given LatLng.
This could either be:

  • a). a 'String? noViewAvailable' String attribute; or
  • b). a 'Widget? noViewAvailable' child widget attribute

For option 'a' this could be a string value like...

noViewAvailable: 'No view available for this location'
For option (b) this could be

noViewAvailable: Row(children: [Icon(Icons.block), Text('No view available for this location)]);

Markers

Hi author, Thanks for the package, Can i put markers in street view with this package? If yes, please let me know the steps.
Thanks in advance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.