GithubHelp home page GithubHelp logo

mapbox / flutter-mapbox-gl Goto Github PK

View Code? Open in Web Editor NEW
271.0 125.0 62.0 35.5 MB

Moved to https://github.com/tobrun/flutter-mapbox-gl

License: Other

Java 58.62% Ruby 7.51% Objective-C 4.06% Dart 29.81%

flutter-mapbox-gl's Introduction

Please note that this project has moved. Please head to https://github.com/tobrun/flutter-mapbox-gl for updates.


Flutter Mapbox GL Native

This Flutter plugin for mapbox-gl-native enables embedded interactive and customizable vector maps inside of a Flutter widget. This project plugin is in early development stage. Only Android is supported for now.

screenshot.png

Getting Started

Android

Following examples use Mapbox vector tiles, which require a Mapbox account and a Mapbox access token. Obtain a free access token on your Mapbox account page. After you get the key, place it in project's Android directory:

  • Create a local.properties file with the following path: $project_dir/android/local.properties
  • Add mapbox.accessToken="YOUR MAPBOX ACCESS TOKEN" token to the local.properties file.

Demo app

  • Install Flutter and validate its installation with flutter doctor
  • Clone this repository with git clone [email protected]:mapbox/flutter-mapbox-gl.git
  • Run the app with cd flutter_mapbox/example && flutter run

New project

  • Create new Flutter project in your IDE or via terminal
  • Add mapbox_gl: ^0.0.1 dependency to pubspec.yaml file and get the package
  • Add Mapbox read token value in the application manifest android/app/src/main/AndroidManifest.xml:
<manifest ...
  <application ...
    <meta-data android:name="com.mapbox.token" android:value="YOUR_TOKEN_HERE" />
  • Import Mapbox widgets and add them to your widget tree
import 'package:mapbox_gl/mapbox_gl.dart';

Documentation

This README file currently houses all of the documentation for this Flutter project. Please visit mapbox.com/android-docs if you'd like more information about the Mapbox Maps SDK for Android and mapbox.com/ios-sdk for more information about the Mapbox Maps SDK for iOS.

Getting Help

  • Need help with your code?: Look for previous questions on the #mapbox tag — or ask a new question.
  • Have a bug to report? Open an issue. If possible, include a full log and information which shows the issue.
  • Have a feature request? Open an issue. Tell us what the feature should do and why you want the feature.

Sample code

This repository's example library is currently the best place for you to find reference code for this project.

Contributing

We welcome contributions to this repository!

If you're interested in helping build this Mapbox/Flutter integration, please read the contribution guide to learn how to get started.

flutter-mapbox-gl's People

Contributors

christopher-dg avatar codex- avatar seddonm1 avatar tobrun avatar tomwyr avatar tribuipi avatar yoavrofe avatar zugaldia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutter-mapbox-gl's Issues

Mapbox not compile

Hello, I try to run this example, but not working and display this error:
I'm working this app in Mac whit flutter 1.0
Launching lib/main.dart on SM G925V in debug mode...
Note: /Users/myname/.development/flutter/.pub-cache/hosted/pub.dartlang.org/mapbox_gl-0.0.1/android/src/main/java/com/mapbox/flutter/MapboxPlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
D8: Static interface methods are only supported starting with Android N (--min-api 24): com.mapbox.geojson.Geometry com.mapbox.geojson.Geometry.fromJson(java.lang.String)
com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/myname/.gradle/caches/modules-2/files-2.1/com.mapbox.mapboxsdk/mapbox-sdk-geojson/3.0.1/a1dfeee709194910ed17d8d4ba45ea403719cd4e/mapbox-sdk-geojson-3.0.1.jar
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
at com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor.java:146)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.transform(DexArchiveBuilderTransform.java:405)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/myname/.gradle/caches/modules-2/files-2.1/com.mapbox.mapboxsdk/mapbox-sdk-geojson/3.0.1/a1dfeee709194910ed17d8d4ba45ea403719cd4e/mapbox-sdk-geojson-3.0.1.jar
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:900)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.lambda$convertToDexArchive$6(DexArchiveBuilderTransform.java:825)
at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
at com.android.builder.dexing.D8DexArchiveBuilder.getExceptionToRethrow(D8DexArchiveBuilder.java:124)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:101)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:895)
... 6 more
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:65)
at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:43)
at com.android.tools.r8.D8.run(D8.java:90)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:99)
... 7 more
Caused by: com.android.tools.r8.utils.AbortException: Error: Static interface methods are only supported starting with Android N (--min-api 24): com.mapbox.geojson.Geometry com.mapbox.geojson.Geometry.fromJson(java.lang.String)
at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:116)
at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:74)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:59)
... 10 more

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.

com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/myname/.gradle/caches/modules-2/files-2.1/com.mapbox.mapboxsdk/mapbox-sdk-geojson/3.0.1/a1dfeee709194910ed17d8d4ba45ea403719cd4e/mapbox-sdk-geojson-3.0.1.jar

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Add fling gesture

A fling gesture animates the camera position of the map using velocity and gesture direction.

Locations and Markers

Hi,
I love mapbox and I love flutter, but for now this binder is still insufficient for our needs.
Are you planning to add support for locationComponent and markers?

Add attribution

Conform to terms and conditions, we need to show attribution for used sources.

ios status

Hi,
I want use flutter for one project but i am waiting for ios support.

what is ios support status?

Comparison between the native mapbox and mapbox flutter

Hi. I'm about to decide whether to develop an app using flutter or native, but there are some doubts about mapbox. What mapis apis will be implemented in this plugin? would it be the same as the APIs implemented in react-native? I want to make an app but I would also like to have 90% of the apis provided by mapbox java, kotlin or swift.

Add marker api

@tobrun I have tried to add the addMarker capability (without custom icon to start) but seeing an Java exception:

E/MethodChannel#com.mapbox/flutter_mapbox(14564): Failed to handle method call
E/MethodChannel#com.mapbox/flutter_mapbox(14564): java.lang.NullPointerException
E/MethodChannel#com.mapbox/flutter_mapbox(14564): 	at com.mapbox.mapboxsdk.maps.NativeMapView.nativeAddMarkers(Native Method)
E/MethodChannel#com.mapbox/flutter_mapbox(14564): 	at com.mapbox.mapboxsdk.maps.NativeMapView.addMarker(NativeMapView.java:406)

This looks like an upstream problem as the Marker object is correct. can you have a look? https://github.com/seddonm1/flutter-mapbox-gl/tree/add-marker

Error when using in a new project

After adding the Mapbox imports on MainActivity.java that are missing in the Getting Started guide

import com.mapbox.mapboxsdk.*;
import com.mapbox.mapboxsdk.maps.*;
import com.mapbox.mapboxsdk.maps.*;
import com.mapbox.mapboxsdk.camera.*;
import com.mapbox.mapboxsdk.geometry.*;
import com.mapbox.mapboxsdk.constants.*;
import com.mapbox.mapboxsdk.annotations.*;

I still get the following error:

Execution failed for task ':app:transformNativeLibsWithStripDebugSymbolForDebug'.
A problem occurred starting process 'command '/Users/[username]/Library/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-strip''

TextureView vs. GLSurfaceView - orientation change

First of all I would like to say thanks to @yoavrofe for the last commit (#71). I am pretty sure using platformview is the correct way.

While testing I realized mapbox crashes after rotation change.

It can be prevented by using TextureView instead of GLSurfaceView:

MapboxMapOptions mbmo = new MapboxMapOptions();
mbmo.textureMode(true);
mapView = new MapView(context, mbmo);

Crash log:

D/EGL_emulation( 5197): eglCreateContext: 0xe0005360: maj 2 min 0 rcv 2 F/mapboxglexampl( 5197): java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: thread Thread[14,tid=5273,Native,Thread*=0xdfd46600,peer=0x1310a568,"GLThread 363"] using JNIEnv* from thread Thread[23,tid=5243,Runnable,Thread*=0xcb617800,peer=0x0," F/mapboxglexampl( 5197): java_vm_ext.cc:542] in call to DeleteGlobalRef F/mapboxglexampl( 5197): java_vm_ext.cc:542] from void com.mapbox.mapboxsdk.maps.renderer.MapRenderer.nativeOnSurfaceCreated() F/mapboxglexampl( 5197): java_vm_ext.cc:542] "GLThread 363" prio=5 tid=14 Runnable F/mapboxglexampl( 5197): java_vm_ext.cc:542] | group="main" sCount=0 dsCount=0 flags=0 obj=0x1310a568 self=0xdfd46600 F/mapboxglexampl( 5197): java_vm_ext.cc:542] | sysTid=5273 nice=0 cgrp=default sched=0/0 handle=0xc8e7f970 F/mapboxglexampl( 5197): java_vm_ext.cc:542] | state=R schedstat=( 6355962 778233 50 ) utm=0 stm=0 core=2 HZ=100 F/mapboxglexampl( 5197): java_vm_ext.cc:542] | stack=0xc8d7c000-0xc8d7e000 stackSize=1042KB F/mapboxglexampl( 5197): java_vm_ext.cc:542] | held mutexes= "mutator lock"(shared held) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #00 pc 004152f6 /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+198) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #01 pc 0051048e /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+382) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #02 pc 0050b743 /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char>>&, bool, BacktraceMap*, bool) const+83) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #03 pc 0031a8b0 /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1088) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #04 pc 0031ad21 /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, char*)+113) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #05 pc 000d60f7 /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+71) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #06 pc 000d46fc /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+364) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #07 pc 000d3bdb /system/lib/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+811) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #08 pc 000d7876 /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::DeleteRef(char const*, _JNIEnv*, _jobject*, art::IndirectRefKind)+918) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #09 pc 000c034b /system/lib/libart.so (art::(anonymous namespace)::CheckJNI::DeleteGlobalRef(_JNIEnv*, _jobject*)+43) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #10 pc 00024800 /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/lib/x86/libmapbox-gl.so (???) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #11 pc 00025f9b /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/lib/x86/libmapbox-gl.so (???) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #12 pc 00025fe3 /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/lib/x86/libmapbox-gl.so (???) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #13 pc 00113407 /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/lib/x86/libmapbox-gl.so (???) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #14 pc 0008a885 /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/lib/x86/libmapbox-gl.so (???) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #15 pc 0008a8cf /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/lib/x86/libmapbox-gl.so (???) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #16 pc 00086f82 /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/lib/x86/libmapbox-gl.so (???) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #17 pc 00065829 /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/lib/x86/libmapbox-gl.so (???) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #18 pc 005f6b97 /system/lib/libart.so (art_quick_generic_jni_trampoline+71) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #19 pc 005f0b82 /system/lib/libart.so (art_quick_invoke_stub+338) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #20 pc 000a30ce /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+222) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #21 pc 0029bca2 /system/lib/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+338) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #22 pc 00293e48 /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1048) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #23 pc 005bda66 /system/lib/libart.so (MterpInvokeDirect+342) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #24 pc 005e2e21 /system/lib/libart.so (ExecuteMterpImpl+14497) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #25 pc 00198dd0 /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/base.apk (deleted) (com.mapbox.mapboxsdk.maps.renderer.MapRenderer.onSurfaceCreated) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #26 pc 00266216 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+598) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #27 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #28 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #29 pc 005bcb1e /system/lib/libart.so (MterpInvokeSuper+1374) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #30 pc 005e2da1 /system/lib/libart.so (ExecuteMterpImpl+14369) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #31 pc 001999f8 /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/base.apk (deleted) (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer.onSurfaceCreated) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #32 pc 00266216 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+598) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #33 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #34 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #35 pc 005bcb1e /system/lib/libart.so (MterpInvokeSuper+1374) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #36 pc 005e2da1 /system/lib/libart.so (ExecuteMterpImpl+14369) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #37 pc 0018f2da /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.mapbox.mapboxglexample-ZWRbu4E5v47YrcHxFSnE2Q==/base.apk (deleted) (com.mapbox.mapboxsdk.maps.MapView$5.onSurfaceCreated+10) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #38 pc 00266216 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+598) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #39 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #40 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #41 pc 005bd574 /system/lib/libart.so (MterpInvokeInterface+1444) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #42 pc 005e2f21 /system/lib/libart.so (ExecuteMterpImpl+14753) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #43 pc 00ad5566 /system/framework/boot-framework.vdex (android.opengl.GLSurfaceView$GLThread.guardedRun+900) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #44 pc 00266216 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+598) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #45 pc 0026c79c /system/lib/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+220) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #46 pc 00293e2b /system/lib/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1019) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #47 pc 005bda66 /system/lib/libart.so (MterpInvokeDirect+342) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #48 pc 005e2e21 /system/lib/libart.so (ExecuteMterpImpl+14497) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #49 pc 00ad5b00 /system/framework/boot-framework.vdex (android.opengl.GLSurfaceView$GLThread.run+48) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #50 pc 00266216 /system/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2093054539+598) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #51 pc 0026c68e /system/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+126) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #52 pc 005a953d /system/lib/libart.so (artQuickToInterpreterBridge+1277) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #53 pc 005f6c6d /system/lib/libart.so (art_quick_to_interpreter_bridge+77) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #54 pc 005f0b82 /system/lib/libart.so (art_quick_invoke_stub+338) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #55 pc 000a30ce /system/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+222) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #56 pc 004d3349 /system/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+89) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #57 pc 004d45f7 /system/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+471) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #58 pc 0050958c /system/lib/libart.so (art::Thread::CreateCallback(void*)+1484) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #59 pc 0008f005 /system/lib/libc.so (__pthread_start(void*)+53) F/mapboxglexampl( 5197): java_vm_ext.cc:542] native: #60 pc 000247fb /system/lib/libc.so (__start_thread+75) F/mapboxglexampl( 5197): java_vm_ext.cc:542] at com.mapbox.mapboxsdk.maps.renderer.MapRenderer.nativeOnSurfaceCreated(Native method) F/mapboxglexampl( 5197): java_vm_ext.cc:542] at com.mapbox.mapboxsdk.maps.renderer.MapRenderer.onSurfaceCreated(MapRenderer.java:63) F/mapboxglexampl( 5197): java_vm_ext.cc:542] at com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer.onSurfaceCreated(GLSurfaceViewMapRenderer.java:48) F/mapboxglexampl( 5197): java_vm_ext.cc:542] at com.mapbox.mapboxsdk.maps.MapView$5.onSurfaceCreated(MapView.java:316) F/mapboxglexampl( 5197): java_vm_ext.cc:542] at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1539) F/mapboxglexampl( 5197): java_vm_ext.cc:542] at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1270) F/mapboxglexampl( 5197): java_vm_ext.cc:542]

java.util.zip.ZipException after run flutter

Hi...I'm receiving this error after run flutter run

Flutter crash report; please file at https://github.com/flutter/flutter/issues.

## command

flutter run

## exception

String: Exit code 1 from: /home/yo/AndroidStudioProjects/flutter-mapbox-gl/example/android/gradlew -v:
Unzipping /home/yo/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1/gradle-4.4-all.zip to /home/yo/.gradle/wrapper/dists/gradle-4.4-all/9br9xq1tocpiv8o6njlyu5op1

Exception in thread "main" java.util.zip.ZipException: error in opening zip file
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:219)
	at java.util.zip.ZipFile.<init>(ZipFile.java:149)
	at java.util.zip.ZipFile.<init>(ZipFile.java:163)
	at org.gradle.wrapper.Install.unzip(Install.java:215)
	at org.gradle.wrapper.Install.access$600(Install.java:27)
	at org.gradle.wrapper.Install$1.call(Install.java:75)
	at org.gradle.wrapper.Install$1.call(Install.java:48)
	at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
	at org.gradle.wrapper.Install.createDist(Install.java:48)
	at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
	at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)


#0      runCheckedAsync (package:flutter_tools/src/base/process.dart:249)
<asynchronous suspension>
#1      _initializeGradle (package:flutter_tools/src/android/gradle.dart:180)
<asynchronous suspension>
#2      _ensureGradle (package:flutter_tools/src/android/gradle.dart:162)
<asynchronous suspension>
#3      _readGradleProject (package:flutter_tools/src/android/gradle.dart:97)
<asynchronous suspension>
#4      _gradleProject (package:flutter_tools/src/android/gradle.dart:90)
<asynchronous suspension>
#5      getGradleAppOut (package:flutter_tools/src/android/gradle.dart:84)
<asynchronous suspension>
#6      AndroidApk.fromCurrentDirectory (package:flutter_tools/src/application_package.dart:88)
<asynchronous suspension>
#7      getApplicationPackageForPlatform (package:flutter_tools/src/application_package.dart:272)
<asynchronous suspension>
#8      FlutterDevice.runHot (package:flutter_tools/src/resident_runner.dart:269)
<asynchronous suspension>
#9      HotRunner.run (package:flutter_tools/src/run_hot.dart:216)
<asynchronous suspension>
#10     RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:401)
<asynchronous suspension>
#11     FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:333)
<asynchronous suspension>
#12     FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:270)
<asynchronous suspension>
#13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:142)
<asynchronous suspension>
#14     _rootRun (dart:async/zone.dart:1126)
#15     _CustomZone.run (dart:async/zone.dart:1023)
#16     runZoned (dart:async/zone.dart:1501)
#17     AppContext.run (package:flutter_tools/src/base/context.dart:141)
<asynchronous suspension>
#18     FlutterCommand.run (package:flutter_tools/src/runner/flutter_command.dart:261)
#19     CommandRunner.runCommand (package:args/command_runner.dart:194)
<asynchronous suspension>
#20     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:309)
<asynchronous suspension>
#21     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:142)
<asynchronous suspension>
#22     _rootRun (dart:async/zone.dart:1126)
#23     _CustomZone.run (dart:async/zone.dart:1023)
#24     runZoned (dart:async/zone.dart:1501)
#25     AppContext.run (package:flutter_tools/src/base/context.dart:141)
<asynchronous suspension>
#26     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:265)
<asynchronous suspension>
#27     CommandRunner.run.<anonymous closure> (package:args/command_runner.dart:109)
#28     new Future.sync (dart:async/future.dart:224)
#29     CommandRunner.run (package:args/command_runner.dart:109)
#30     FlutterCommandRunner.run (package:flutter_tools/src/runner/flutter_command_runner.dart:174)
#31     run.<anonymous closure> (package:flutter_tools/runner.dart:54)
<asynchronous suspension>
#32     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:142)
<asynchronous suspension>
#33     _rootRun (dart:async/zone.dart:1126)
#34     _CustomZone.run (dart:async/zone.dart:1023)
#35     runZoned (dart:async/zone.dart:1501)
#36     AppContext.run (package:flutter_tools/src/base/context.dart:141)
<asynchronous suspension>
#37     runInContext (package:flutter_tools/src/context_runner.dart:41)
<asynchronous suspension>
#38     run (package:flutter_tools/runner.dart:49)
#39     main (package:flutter_tools/executable.dart:48)
<asynchronous suspension>
#40     main (file:///b/build/slave/Linux_Flutter_Packaging/build/archive/flutter/packages/flutter_tools/bin/flutter_tools.dart:8)
#41     _startIsolate.<anonymous closure> (dart:isolate-patch/dart:isolate/isolate_patch.dart:277)
#42     _RawReceivePortImpl._handleMessage (dart:isolate-patch/dart:isolate/isolate_patch.dart:165)


## flutter doctor


[✓] Flutter (Channel beta, v0.3.1, on Linux, locale es_VE.UTF-8)
    • Flutter version 0.3.1 at /opt/flutter
    • Framework revision 12bbaba9ae (hace 5 semanas), 2018-04-19 23:36:15 -0700
    • Engine revision 09d05a3891
    • Dart version 2.0.0-dev.48.0.flutter-fe606f890b

[✓] Android toolchain - develop for Android devices (Android SDK 26.0.3)
    • Android SDK at /opt/android-sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 26.0.3
    • ANDROID_HOME = /opt/android-sdk
    • Java binary at: /opt/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] Android Studio (version 3.1)
    • Android Studio at /opt/android-studio
    • Flutter plugin version 24.2.1
    • Dart plugin version 173.4700
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] Connected devices (1 available)
    • Redmi 3 • c6f5c6d57cf3 • android-arm64 • Android 5.1.1 (API 22)

• No issues found!

do you know what could be the issue here???...thank you!!!

Reply already submitted

Seeing a couple of java.lang.IllegalStateException: Reply already submitted when interacting with the map. This indicates we aren't handling the results back to flutter from java correctly.

Clicking the info icon crashes app

Crashes with following stacktrace:

E/AndroidRuntime( 2088): Process: com.mapbox.mapboxglexample, PID: 2088
E/AndroidRuntime( 2088): java.lang.ClassCastException: $Proxy1 cannot be cast to android.view.WindowManagerImpl
E/AndroidRuntime( 2088): 	at android.view.Window.setWindowManager(Window.java:770)
E/AndroidRuntime( 2088): 	at android.view.Window.setWindowManager(Window.java:751)
E/AndroidRuntime( 2088): 	at android.app.Dialog.<init>(Dialog.java:220)
E/AndroidRuntime( 2088): 	at android.app.AlertDialog.<init>(AlertDialog.java:201)
E/AndroidRuntime( 2088): 	at android.app.AlertDialog$Builder.create(AlertDialog.java:1107)
E/AndroidRuntime( 2088): 	at android.app.AlertDialog$Builder.show(AlertDialog.java:1134)
E/AndroidRuntime( 2088): 	at com.mapbox.mapboxsdk.maps.AttributionDialogManager.showAttributionDialog(AttributionDialogManager.java:73)
E/AndroidRuntime( 2088): 	at com.mapbox.mapboxsdk.maps.AttributionDialogManager.onClick(AttributionDialogManager.java:65)
E/AndroidRuntime( 2088): 	at com.mapbox.mapboxsdk.maps.MapView$AttributionClickListener.onClick(MapView.java:1744)
E/AndroidRuntime( 2088): 	at android.view.View.performClick(View.java:6877)
E/AndroidRuntime( 2088): 	at android.view.View$PerformClick.run(View.java:26069)
E/AndroidRuntime( 2088): 	at android.os.Handler.handleCallback(Handler.java:789)
E/AndroidRuntime( 2088): 	at android.os.Handler.dispatchMessage(Handler.java:98)
E/AndroidRuntime( 2088): 	at android.os.Looper.loop(Looper.java:164)
E/AndroidRuntime( 2088): 	at android.app.ActivityThread.main(ActivityThread.java:6938)
E/AndroidRuntime( 2088): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 2088): 	at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
E/AndroidRuntime( 2088): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Development State

Hi,

I just found out about MapBox as an alternative to the 'established' maps and really want to integrate this into my company's flutter portation of our existing apps.

I noticed this repo is kind of inactive, so I wonder what the level of progress is right now. If you need some help or manpower,
I would be very happy to help in any kind of matter.

Flutter is really powerful and it's use will be growing exponentially. I believe your company would benefit of providing the first official package for seamless integration of a map in flutter!

Best Regards,
Daniel

Save state

When swiping between tabs or scrolling in a list, you can see that the state of the map isn't being saved:

ezgif com-video-to-gif 11

iOS integration

Atm this repository only supports running flutter-mapbox-gl on Android, to be able to publish this a flutter package we need to support both platforms.

Add rotate gesture

A rotate gesture changes the bearing of the camera position of the map.

Can't run

Note: ~/flutter/.pub-cache/hosted/pub.dartlang.org/mapbox_gl-0.0.1/android/src/main/java/com/mapbox/flutter/MapboxPlugin.java uses unchecked or unsafe operations.

Add gradle-wrapper.jar

When you clone the repo, cd into /example and run flutter run:

Nurbot:example Nurbot$ flutter run
Running "flutter packages get" in example...                10.5s
Launching lib/main.dart on Pixel in debug mode...
Initializing gradle...                                          |
Oops; flutter has exited unexpectedly: "Exit code 1 from: /Users/Nurbot/flutter_mapbox/example/android/gradlew -v:
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain".

Adding a gradle-wrapper.jar will resolve this issue (we are taking the same approach here.

Surface recreation when widget enters screen

Every occurrence where the widget leaves the screen and returns you can see the black flash. This is related to the surface being recreated. We need to verify if this is expected behavior for widget flutter integration and if yes we need to make the surface transparent.

ezgif com-video-to-gif 12

Add projection API

The projection API allows to convert device to map units.

For example:

LatLng getLatLngForOffset(Offset offset)

Will convert a point on screen (exposed as Offset in flutter) to the map LatLng.

API proposal:

  • Future getLatLngForOffset(Offset offset)
  • Future getLatLngForOffset(Offset offset)
  • Future getProjectedMetersForLatLng(LatLng latLng)
  • Future getLatLngForProjectedMeters(ProjectedMeters meters)
  • Future getMetersPerPixel(double latitude)

Markers and Animation in MapBox SDK

Hi,

I am creating an application in Flutter using dart languages, the new framework created by Google and I am using your MapsBox SDK.

So I got a problem in adding Markers and Animation, I will show you the code below:

  1. MapboxOverlayController
  2. MapboxOverlay
    in pubspec.yaml I am implementing this "mapbox_gl: ^0.0.1"

overlay_controller.flyTo(
new CameraPosition(
target: new LatLng(
lat:50.0,
lng:20.0,
),
zoom: 12.0),
5000,
);

The above code contains the map but the good thing in it is that the animations like in the MapboxOverlayController is very good to fly to any point using latitude and longitude but the problem is that, this Controller does not have any Options to add Marker in it.

and please see below as well :

  1. FlutterMap
  2. MapController
    in pubspec.yaml I am implementing this " flutter_map: ^0.0.10 "

controller.move(
new LatLng(50.0, 20.0),
5.0);

fMap.layers.add(
new MarkerLayerOptions(
markers: markerList,
),
);
In the above code, I can add the Marker just on tap on the Map but hte problem is that I can't add the controller to add annimation to move from one point to another point, it just move directly to that point without any animation.

So please help me how to overcome this kind of problem, as I require both Animation and Markers both.

  • version: Android Version is 16

ios support

is It also supported ios or not?

I read the below but not sure current status:
This Flutter plugin for mapbox-gl-native enables embedded interactive and customizable vector maps inside of a Flutter widget. This project plugin is in early development stage. Only Android is supported for now.

Map not loading

When I set the project up and "futter run" it there is no map - the screen stays white. My first thought was that the api-key is invalid but when I made it blank the app crashes with an exception.

Move accessToken configuration to flutter

Atm users need to configure their access-token inside a local.properties file inside an own android module. Ideally we expose a configuration that will be usable for both Android as iOS.

Add basic style API

Add getters/setters for the various style related functions:

  • Url
  • Constant
  • String JSON

Other style related items as source/layers will be ticketed seperatly

Is this repository maintained?

It looks like this repository is a proof-of-concept only, and not maintained at all. The last commit here have been on Jun 8 (about two months ago). There are 3 pending pull requests.

@tobrun , Is MapBox going to start maintaining this repository? It looks like Google is really investing time and money in this framework, and I think it's a great choice for developing new mobile apps.

Add map snapshotter API

The iOS & Android SDKs allow to generate static images from a map in two ways:

  • capturing an image from the currently shown map (eg. iOS)
  • render an image from a deifintion using the MapSnapshotter (eg. Android)

Add double tap gesture

Double tapping the map should increase the camera zoom level by 1. In the Android SDK in gl-native we round the zoom level in this scenario. For example, current zoom = 1.65 and we double tap will result in a zoom = 3. We should see what provides the best UX.

Markers not showing up.

I have tried to add markers using the default marker icon.
I don't get any errors, but the markers do not show up. Below is my code.

FlutterMap flutterMap = maps.get(textureId).map; IconFactory iconFactory = IconFactory.getInstance(activity); Icon markerIcon = iconFactory.iconFactory.defaultMarker(); Marker marker = new MarkerOptions() .position(new LatLng(lat, lng)) .title(title) .snippet(snippet) .icon(markerIcon) .getMarker(); long markerId = flutterMap.addMarker(marker);

Add Continuous Integration

Conform to other mapbox projects, this repo should be backed up by CI (preferable in the form of CircelCI). This integration will compile the project, perform static code analysis and executes unit as instrumentation tests to safeguard us from regressions.

Add content insets

NativeMapView#setContentPadding(int[]insets) allows to add padding to the map.

Is this project abandoned ?

One of the main functionalities of the app I'm developing is related to maps (directions sdk to be precise). I would very much like to use mapbox as the map provider. The only plugin coming close to this requirement is this one, but it seems it is not maintained anymore and the example is crashing when I try to run it with the latest flutter sdk. @tobrun Is there any hope that the work on this plugin will be resumed.

Add tilt/shove gesture

Scrolling vertically with two fingers should increase/decrease the tilt of the camera position.

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.