├── .fvm
├── flutter_sdk
└── fvm_config.json
├── .github
└── workflows
│ └── main.yml
├── .gitignore
├── .metadata
├── CHANGELOG.md
├── LICENSE
├── README.md
├── analysis_options.yaml
├── example
├── .fvm
│ ├── flutter_sdk
│ └── fvm_config.json
├── .gitignore
├── .metadata
├── README.md
├── android
│ ├── .gitignore
│ ├── app
│ │ ├── build.gradle
│ │ └── src
│ │ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── example
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── launch_background.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ │ └── values
│ │ │ │ └── styles.xml
│ │ │ └── profile
│ │ │ └── AndroidManifest.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── ios
│ ├── .gitignore
│ ├── Flutter
│ │ ├── AppFrameworkInfo.plist
│ │ ├── Debug.xcconfig
│ │ └── Release.xcconfig
│ ├── Runner.xcodeproj
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata
│ │ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ │ └── WorkspaceSettings.xcsettings
│ │ └── xcshareddata
│ │ │ └── xcschemes
│ │ │ └── Runner.xcscheme
│ ├── Runner.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── Runner
│ │ ├── AppDelegate.swift
│ │ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ └── README.md
│ │ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ │ ├── Info.plist
│ │ └── Runner-Bridging-Header.h
├── lib
│ ├── data.dart
│ └── main.dart
├── pubspec.lock
├── pubspec.yaml
└── test
│ └── widget_test.dart
├── lib
└── flutter_map_tappable_polyline.dart
├── pubspec.lock
└── pubspec.yaml
/.fvm/flutter_sdk:
--------------------------------------------------------------------------------
1 | /Users/hugo/fvm/versions/3.10.3
--------------------------------------------------------------------------------
/.fvm/fvm_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "flutterSdkVersion": "3.10.3",
3 | "flavors": {}
4 | }
--------------------------------------------------------------------------------
/.github/workflows/main.yml:
--------------------------------------------------------------------------------
1 | # This is a basic workflow to help you get started with Actions
2 |
3 | name: CI
4 |
5 | # Controls when the action will run. Triggers the workflow on push or pull request
6 | # events but only for the master branch
7 | on:
8 | push:
9 | branches: [ master ]
10 | pull_request:
11 | branches: [ master ]
12 |
13 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
14 | jobs:
15 | # This workflow contains a single job called "build"
16 | analysis:
17 | # The type of runner that the job will run on
18 | runs-on: ubuntu-latest
19 |
20 | # Steps represent a sequence of tasks that will be executed as part of the job
21 | steps:
22 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
23 | - uses: actions/checkout@v2
24 | - uses: axel-op/dart-package-analyzer@v3
25 | with:
26 | # Required:
27 | githubToken: ${{ secrets.GITHUB_TOKEN }}
28 | - name: Check scores
29 | env:
30 | # NB: "analysis" is the id set above. Replace it with the one you used if different.
31 | TOTAL: ${{ steps.analysis.outputs.total }}
32 | run: |
33 | if (( $TOTAL < 110 ))
34 | then
35 | echo Score too low!
36 | exit 1
37 | fi
38 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | .dart_tool/
26 | .flutter-plugins
27 | .flutter-plugins-dependencies
28 | .packages
29 | .pub-cache/
30 | .pub/
31 | build/
32 |
33 | # Android related
34 | **/android/**/gradle-wrapper.jar
35 | **/android/.gradle
36 | **/android/captures/
37 | **/android/gradlew
38 | **/android/gradlew.bat
39 | **/android/local.properties
40 | **/android/**/GeneratedPluginRegistrant.java
41 |
42 | # iOS/XCode related
43 | **/ios/**/*.mode1v3
44 | **/ios/**/*.mode2v3
45 | **/ios/**/*.moved-aside
46 | **/ios/**/*.pbxuser
47 | **/ios/**/*.perspectivev3
48 | **/ios/**/*sync/
49 | **/ios/**/.sconsign.dblite
50 | **/ios/**/.tags*
51 | **/ios/**/.vagrant/
52 | **/ios/**/DerivedData/
53 | **/ios/**/Icon?
54 | **/ios/**/Pods/
55 | **/ios/**/.symlinks/
56 | **/ios/**/profile
57 | **/ios/**/xcuserdata
58 | **/ios/.generated/
59 | **/ios/Flutter/App.framework
60 | **/ios/Flutter/Flutter.framework
61 | **/ios/Flutter/Flutter.podspec
62 | **/ios/Flutter/Generated.xcconfig
63 | **/ios/Flutter/app.flx
64 | **/ios/Flutter/app.zip
65 | **/ios/Flutter/flutter_assets/
66 | **/ios/Flutter/flutter_export_environment.sh
67 | **/ios/ServiceDefinitions.json
68 | **/ios/Runner/GeneratedPluginRegistrant.*
69 |
70 | # Exceptions to above rules.
71 | !**/ios/**/default.mode1v3
72 | !**/ios/**/default.mode2v3
73 | !**/ios/**/default.pbxuser
74 | !**/ios/**/default.perspectivev3
75 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
76 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 27321ebbad34b0a3fafe99fac037102196d655ff
8 | channel: stable
9 |
10 | project_type: package
11 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ## 6.0.0 - 2023-10-31 🎃
2 | - **[BREAKING]** Upgrade `flutter_map` to `^6.0.0`.
3 |
4 | ## 5.0.0 - 2023-06-05
5 | - **[BREAKING]** Upgrade `flutter_map` to `^5.0.0`. *Thanks [@azaderdogan](https://github.com/azaderdogan) and [@JaffaKetchup](https://github.com/JaffaKetchup) 👏*
6 |
7 | ## 4.0.0+1 - 2023-04-13
8 | - Fixed flutter_map version in README
9 |
10 | ## 4.0.0 - 2023-04-13
11 | - **[BREAKING]** Upgrade `flutter_map` to 3.1.0. *Thanks [@jtthrillson](https://github.com/jtthrillson) 👏*
12 | - Fixed example app android embedding. *Thanks [@k5924](https://github.com/k5924)*
13 |
14 | ## 3.2.0
15 | - Upgrade `flutter_map` to 1.0.0
16 |
17 | ## 3.1.0
18 | - Upgrade `flutter_map` to 0.14.0
19 |
20 | ## 3.0.0
21 | - [BREAKING] Add support for overlapping lines (see [#31](https://github.com/OwnWeb/flutter_map_tappable_polyline/pull/31)), thanks [@FaFre](https://github.com/FaFre)
22 | - The `onTap` callback is now called with a list of `TaggedPolyline` instead of one
23 | - [BREAKING] Add tap position to onTap and onMiss callbacks
24 | - The `onTap` and `onMiss` callbacks now receive the position of the tap that (`TapUpDetails`)
25 | - Add LayerWidget (see [#31](https://github.com/OwnWeb/flutter_map_tappable_polyline/pull/31)), [@S-Man42](https://github.com/S-Man42)
26 |
27 | ## 2.0.0
28 |
29 | - Null safety (see [#27](https://github.com/OwnWeb/flutter_map_tappable_polyline/pull/27/files), thanks [@sbu](https://github.com/sbu-WBT)!)
30 | - Upgrade `flutter_map` to 0.13.1
31 |
32 | ## 1.3.1
33 |
34 | - Upgrade flutter map
35 |
36 | ## 1.3.0+1
37 |
38 | - Fix changelog deprecation notice about `TappablePolylineLayer.distance`
39 |
40 | ## 1.3.0
41 |
42 | - Update `flutter_map` dependency to 1.11.0 (see issue [#23](https://github.com/OwnWeb/flutter_map_tappable_polyline/issues/23), thanks [@S-Man42](https://github.com/S-Man42))
43 | - Fix null pointer error when no onMiss callback was passed (see issue [#20](https://github.com/OwnWeb/flutter_map_tappable_polyline/issues/20))
44 |
45 | ## 1.2.0
46 |
47 | - Trigger only one `onTap` event when multiple polylines are close to each other (#14, #18) @MKohm
48 | - *Deprecated*: `TappablePolylineLayer.distance` should no longer be part of public API and is now deprecated
49 |
50 | ## 1.1.1
51 |
52 | - Add missing latlong dependency @tuarrep
53 |
54 | ## 1.1.0
55 |
56 | - Center the map on the tap location when zooming (#17) @Mkohm
57 |
58 | ## 1.0.0
59 |
60 | - Allow zooming underlying map with double tap (#12) @Mkohm
61 | - Add `onMiss` callback when tap missed polyline (#12) @Mkohm
62 |
63 | ## 0.5.0
64 |
65 | - Detect tapping between polyline points (#8) @Mkohm
66 |
67 | ## 0.4.0
68 |
69 | - Add support for Polyline culling (#5) @Mkohm
70 |
71 | ## 0.3.3
72 |
73 | - Upgrade flutter_map to ^0.10.1
74 |
75 | ## 0.3.2
76 |
77 | - Upgrade flutter_map to ^0.9.0
78 |
79 | ## 0.3.1
80 |
81 | - Add example
82 | - Format code
83 |
84 | ## 0.3.0
85 |
86 | - Fix onTap callback
87 |
88 | ## 0.2.0
89 |
90 | - Better gesture handling to allow double tap on underlying map
91 |
92 | ## 0.1.0
93 |
94 | - Initial release
95 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 OwnWeb
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Flutter Map Tappable Polyline
2 |
3 | [](https://pub.dartlang.org/packages/flutter_map_tappable_polyline)
4 |
5 | A Polyline with `onTap` event listener
6 | This is a plugin for [flutter_map](https://github.com/johnpryan/flutter_map) package
7 |
8 | ## Usage
9 |
10 | Add [`flutter_map`](https://github.com/johnpryan/flutter_map) and `flutter_map_tappable_polyline` to your pubspec:
11 |
12 | ```yaml
13 | dependencies:
14 | flutter_map: ^6.0.1
15 | flutter_map_tappable_polyline: any # take latest version on Pub
16 | ```
17 |
18 | Add it in you FlutterMap and configure it using `TappablePolylineLayerOptions`.
19 |
20 | ```dart
21 | Widget build(BuildContext context) {
22 | return FlutterMap(
23 | options: new MapOptions(
24 | plugins: [
25 | TappablePolylineMapPlugin(),
26 | ],
27 | ),
28 | layers: [
29 | TileLayerOptions(
30 | urlTemplate: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
31 | subdomains: ['a', 'b', 'c'],
32 | ),
33 | TappablePolylineLayerOptions(
34 | // Will only render visible polylines, increasing performance
35 | polylineCulling: true,
36 | polylines: [
37 | TaggedPolyline(
38 | tag: "My Polyline", // An optional tag to distinguish polylines in `onTap` callback
39 | // ...all other Polyline options
40 | ),
41 | ],
42 | onTap: (polylines, tapPosition) => print('Tapped: ' +
43 | polylines.map((polyline) => polyline.tag).join(',') +
44 | ' at ' +
45 | tapPosition.globalPosition.toString()),
46 | onMiss: (tapPosition) {
47 | print('No polyline was tapped at position ' +
48 | tapPosition.globalPosition.toString());
49 | }
50 | )
51 | ],
52 | );
53 | }
54 | ```
55 |
--------------------------------------------------------------------------------
/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | include: package:pedantic/analysis_options.yaml
2 |
3 | linter:
4 | rules:
5 | omit_local_variable_types: false
6 |
--------------------------------------------------------------------------------
/example/.fvm/flutter_sdk:
--------------------------------------------------------------------------------
1 | /Users/hugo/fvm/versions/3.10.3
--------------------------------------------------------------------------------
/example/.fvm/fvm_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "flutterSdkVersion": "3.10.3",
3 | "flavors": {}
4 | }
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | # Miscellaneous
2 | *.class
3 | *.log
4 | *.pyc
5 | *.swp
6 | .DS_Store
7 | .atom/
8 | .buildlog/
9 | .history
10 | .svn/
11 |
12 | # IntelliJ related
13 | *.iml
14 | *.ipr
15 | *.iws
16 | .idea/
17 |
18 | # The .vscode folder contains launch configuration and tasks you configure in
19 | # VS Code which you may wish to be included in version control, so this line
20 | # is commented out by default.
21 | #.vscode/
22 |
23 | # Flutter/Dart/Pub related
24 | **/doc/api/
25 | .dart_tool/
26 | .flutter-plugins
27 | .flutter-plugins-dependencies
28 | .packages
29 | .pub-cache/
30 | .pub/
31 | /build/
32 |
33 | # Web related
34 | lib/generated_plugin_registrant.dart
35 |
36 | # Symbolication related
37 | app.*.symbols
38 |
39 | # Obfuscation related
40 | app.*.map.json
41 |
42 | # Exceptions to above rules.
43 | !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
44 |
--------------------------------------------------------------------------------
/example/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 8857c4cec89164fdb6293bef69f9d62c62733efa
8 | channel: master
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/example/README.md:
--------------------------------------------------------------------------------
1 | # example
2 |
3 | A new Flutter project.
4 |
5 | ## Getting Started
6 |
7 | This project is a starting point for a Flutter application.
8 |
9 | A few resources to get you started if this is your first Flutter project:
10 |
11 | - [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12 | - [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13 |
14 | For help getting started with Flutter, view our
15 | [online documentation](https://flutter.dev/docs), which offers tutorials,
16 | samples, guidance on mobile development, and a full API reference.
17 |
--------------------------------------------------------------------------------
/example/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
--------------------------------------------------------------------------------
/example/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | def localProperties = new Properties()
2 | def localPropertiesFile = rootProject.file('local.properties')
3 | if (localPropertiesFile.exists()) {
4 | localPropertiesFile.withReader('UTF-8') { reader ->
5 | localProperties.load(reader)
6 | }
7 | }
8 |
9 | def flutterRoot = localProperties.getProperty('flutter.sdk')
10 | if (flutterRoot == null) {
11 | throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
12 | }
13 |
14 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
15 | if (flutterVersionCode == null) {
16 | flutterVersionCode = '1'
17 | }
18 |
19 | def flutterVersionName = localProperties.getProperty('flutter.versionName')
20 | if (flutterVersionName == null) {
21 | flutterVersionName = '1.0'
22 | }
23 |
24 | apply plugin: 'com.android.application'
25 | apply plugin: 'kotlin-android'
26 | apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
27 |
28 | android {
29 | compileSdkVersion 31
30 |
31 | sourceSets {
32 | main.java.srcDirs += 'src/main/kotlin'
33 | }
34 |
35 | lintOptions {
36 | disable 'InvalidPackage'
37 | }
38 |
39 | defaultConfig {
40 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
41 | applicationId "com.example.example"
42 | minSdkVersion 21
43 | targetSdkVersion 28
44 | versionCode flutterVersionCode.toInteger()
45 | versionName flutterVersionName
46 | }
47 |
48 | buildTypes {
49 | release {
50 | // TODO: Add your own signing config for the release build.
51 | // Signing with the debug keys for now, so `flutter run --release` works.
52 | signingConfig signingConfigs.debug
53 | }
54 | }
55 | }
56 |
57 | flutter {
58 | source '../..'
59 | }
60 |
61 | dependencies {
62 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
63 | }
64 |
--------------------------------------------------------------------------------
/example/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
8 |
12 |
19 |
20 |
21 |
22 |
23 |
28 |
31 |
35 |
38 |
39 |
41 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/example/android/app/src/main/kotlin/com/example/example/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.example.example
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
13 |
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
15 |
18 |
19 |
--------------------------------------------------------------------------------
/example/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.7.10'
3 | repositories {
4 | google()
5 | jcenter()
6 | }
7 |
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:7.1.3'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 | }
12 | }
13 |
14 | allprojects {
15 | repositories {
16 | google()
17 | jcenter()
18 | }
19 | }
20 |
21 | rootProject.buildDir = '../build'
22 | subprojects {
23 | project.buildDir = "${rootProject.buildDir}/${project.name}"
24 | }
25 | subprojects {
26 | project.evaluationDependsOn(':app')
27 | }
28 |
29 | tasks.register("clean", Delete) {
30 | delete rootProject.buildDir
31 | }
32 |
--------------------------------------------------------------------------------
/example/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/example/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
7 |
--------------------------------------------------------------------------------
/example/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/example/ios/.gitignore:
--------------------------------------------------------------------------------
1 | *.mode1v3
2 | *.mode2v3
3 | *.moved-aside
4 | *.pbxuser
5 | *.perspectivev3
6 | **/*sync/
7 | .sconsign.dblite
8 | .tags*
9 | **/.vagrant/
10 | **/DerivedData/
11 | Icon?
12 | **/Pods/
13 | **/.symlinks/
14 | profile
15 | xcuserdata
16 | **/.generated/
17 | Flutter/App.framework
18 | Flutter/Flutter.framework
19 | Flutter/Flutter.podspec
20 | Flutter/Generated.xcconfig
21 | Flutter/app.flx
22 | Flutter/app.zip
23 | Flutter/flutter_assets/
24 | Flutter/flutter_export_environment.sh
25 | ServiceDefinitions.json
26 | Runner/GeneratedPluginRegistrant.*
27 |
28 | # Exceptions to above rules.
29 | !default.mode1v3
30 | !default.mode2v3
31 | !default.pbxuser
32 | !default.perspectivev3
33 |
--------------------------------------------------------------------------------
/example/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 11.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/example/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/example/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Generated.xcconfig"
2 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 54;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
11 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
12 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
13 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
14 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
15 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
16 | /* End PBXBuildFile section */
17 |
18 | /* Begin PBXCopyFilesBuildPhase section */
19 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
20 | isa = PBXCopyFilesBuildPhase;
21 | buildActionMask = 2147483647;
22 | dstPath = "";
23 | dstSubfolderSpec = 10;
24 | files = (
25 | );
26 | name = "Embed Frameworks";
27 | runOnlyForDeploymentPostprocessing = 0;
28 | };
29 | /* End PBXCopyFilesBuildPhase section */
30 |
31 | /* Begin PBXFileReference section */
32 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
33 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
34 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
35 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
36 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
37 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
38 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
39 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
40 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
41 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
42 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
43 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
44 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
45 | /* End PBXFileReference section */
46 |
47 | /* Begin PBXFrameworksBuildPhase section */
48 | 97C146EB1CF9000F007C117D /* Frameworks */ = {
49 | isa = PBXFrameworksBuildPhase;
50 | buildActionMask = 2147483647;
51 | files = (
52 | );
53 | runOnlyForDeploymentPostprocessing = 0;
54 | };
55 | /* End PBXFrameworksBuildPhase section */
56 |
57 | /* Begin PBXGroup section */
58 | 9740EEB11CF90186004384FC /* Flutter */ = {
59 | isa = PBXGroup;
60 | children = (
61 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
62 | 9740EEB21CF90195004384FC /* Debug.xcconfig */,
63 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
64 | 9740EEB31CF90195004384FC /* Generated.xcconfig */,
65 | );
66 | name = Flutter;
67 | sourceTree = "";
68 | };
69 | 97C146E51CF9000F007C117D = {
70 | isa = PBXGroup;
71 | children = (
72 | 9740EEB11CF90186004384FC /* Flutter */,
73 | 97C146F01CF9000F007C117D /* Runner */,
74 | 97C146EF1CF9000F007C117D /* Products */,
75 | );
76 | sourceTree = "";
77 | };
78 | 97C146EF1CF9000F007C117D /* Products */ = {
79 | isa = PBXGroup;
80 | children = (
81 | 97C146EE1CF9000F007C117D /* Runner.app */,
82 | );
83 | name = Products;
84 | sourceTree = "";
85 | };
86 | 97C146F01CF9000F007C117D /* Runner */ = {
87 | isa = PBXGroup;
88 | children = (
89 | 97C146FA1CF9000F007C117D /* Main.storyboard */,
90 | 97C146FD1CF9000F007C117D /* Assets.xcassets */,
91 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
92 | 97C147021CF9000F007C117D /* Info.plist */,
93 | 97C146F11CF9000F007C117D /* Supporting Files */,
94 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
95 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
96 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
97 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
98 | );
99 | path = Runner;
100 | sourceTree = "";
101 | };
102 | 97C146F11CF9000F007C117D /* Supporting Files */ = {
103 | isa = PBXGroup;
104 | children = (
105 | );
106 | name = "Supporting Files";
107 | sourceTree = "";
108 | };
109 | /* End PBXGroup section */
110 |
111 | /* Begin PBXNativeTarget section */
112 | 97C146ED1CF9000F007C117D /* Runner */ = {
113 | isa = PBXNativeTarget;
114 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
115 | buildPhases = (
116 | 9740EEB61CF901F6004384FC /* Run Script */,
117 | 97C146EA1CF9000F007C117D /* Sources */,
118 | 97C146EB1CF9000F007C117D /* Frameworks */,
119 | 97C146EC1CF9000F007C117D /* Resources */,
120 | 9705A1C41CF9048500538489 /* Embed Frameworks */,
121 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
122 | );
123 | buildRules = (
124 | );
125 | dependencies = (
126 | );
127 | name = Runner;
128 | productName = Runner;
129 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
130 | productType = "com.apple.product-type.application";
131 | };
132 | /* End PBXNativeTarget section */
133 |
134 | /* Begin PBXProject section */
135 | 97C146E61CF9000F007C117D /* Project object */ = {
136 | isa = PBXProject;
137 | attributes = {
138 | LastUpgradeCheck = 1300;
139 | ORGANIZATIONNAME = "";
140 | TargetAttributes = {
141 | 97C146ED1CF9000F007C117D = {
142 | CreatedOnToolsVersion = 7.3.1;
143 | LastSwiftMigration = 1100;
144 | };
145 | };
146 | };
147 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
148 | compatibilityVersion = "Xcode 9.3";
149 | developmentRegion = en;
150 | hasScannedForEncodings = 0;
151 | knownRegions = (
152 | en,
153 | Base,
154 | );
155 | mainGroup = 97C146E51CF9000F007C117D;
156 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
157 | projectDirPath = "";
158 | projectRoot = "";
159 | targets = (
160 | 97C146ED1CF9000F007C117D /* Runner */,
161 | );
162 | };
163 | /* End PBXProject section */
164 |
165 | /* Begin PBXResourcesBuildPhase section */
166 | 97C146EC1CF9000F007C117D /* Resources */ = {
167 | isa = PBXResourcesBuildPhase;
168 | buildActionMask = 2147483647;
169 | files = (
170 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
171 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
172 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
173 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
174 | );
175 | runOnlyForDeploymentPostprocessing = 0;
176 | };
177 | /* End PBXResourcesBuildPhase section */
178 |
179 | /* Begin PBXShellScriptBuildPhase section */
180 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
181 | isa = PBXShellScriptBuildPhase;
182 | alwaysOutOfDate = 1;
183 | buildActionMask = 2147483647;
184 | files = (
185 | );
186 | inputPaths = (
187 | "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
188 | );
189 | name = "Thin Binary";
190 | outputPaths = (
191 | );
192 | runOnlyForDeploymentPostprocessing = 0;
193 | shellPath = /bin/sh;
194 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
195 | };
196 | 9740EEB61CF901F6004384FC /* Run Script */ = {
197 | isa = PBXShellScriptBuildPhase;
198 | alwaysOutOfDate = 1;
199 | buildActionMask = 2147483647;
200 | files = (
201 | );
202 | inputPaths = (
203 | );
204 | name = "Run Script";
205 | outputPaths = (
206 | );
207 | runOnlyForDeploymentPostprocessing = 0;
208 | shellPath = /bin/sh;
209 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
210 | };
211 | /* End PBXShellScriptBuildPhase section */
212 |
213 | /* Begin PBXSourcesBuildPhase section */
214 | 97C146EA1CF9000F007C117D /* Sources */ = {
215 | isa = PBXSourcesBuildPhase;
216 | buildActionMask = 2147483647;
217 | files = (
218 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
219 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
220 | );
221 | runOnlyForDeploymentPostprocessing = 0;
222 | };
223 | /* End PBXSourcesBuildPhase section */
224 |
225 | /* Begin PBXVariantGroup section */
226 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
227 | isa = PBXVariantGroup;
228 | children = (
229 | 97C146FB1CF9000F007C117D /* Base */,
230 | );
231 | name = Main.storyboard;
232 | sourceTree = "";
233 | };
234 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
235 | isa = PBXVariantGroup;
236 | children = (
237 | 97C147001CF9000F007C117D /* Base */,
238 | );
239 | name = LaunchScreen.storyboard;
240 | sourceTree = "";
241 | };
242 | /* End PBXVariantGroup section */
243 |
244 | /* Begin XCBuildConfiguration section */
245 | 249021D3217E4FDB00AE95B9 /* Profile */ = {
246 | isa = XCBuildConfiguration;
247 | buildSettings = {
248 | ALWAYS_SEARCH_USER_PATHS = NO;
249 | CLANG_ANALYZER_NONNULL = YES;
250 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
251 | CLANG_CXX_LIBRARY = "libc++";
252 | CLANG_ENABLE_MODULES = YES;
253 | CLANG_ENABLE_OBJC_ARC = YES;
254 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
255 | CLANG_WARN_BOOL_CONVERSION = YES;
256 | CLANG_WARN_COMMA = YES;
257 | CLANG_WARN_CONSTANT_CONVERSION = YES;
258 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
259 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
260 | CLANG_WARN_EMPTY_BODY = YES;
261 | CLANG_WARN_ENUM_CONVERSION = YES;
262 | CLANG_WARN_INFINITE_RECURSION = YES;
263 | CLANG_WARN_INT_CONVERSION = YES;
264 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
265 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
266 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
267 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
268 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
269 | CLANG_WARN_STRICT_PROTOTYPES = YES;
270 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
271 | CLANG_WARN_UNREACHABLE_CODE = YES;
272 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
273 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
274 | COPY_PHASE_STRIP = NO;
275 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
276 | ENABLE_NS_ASSERTIONS = NO;
277 | ENABLE_STRICT_OBJC_MSGSEND = YES;
278 | GCC_C_LANGUAGE_STANDARD = gnu99;
279 | GCC_NO_COMMON_BLOCKS = YES;
280 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
281 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
282 | GCC_WARN_UNDECLARED_SELECTOR = YES;
283 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
284 | GCC_WARN_UNUSED_FUNCTION = YES;
285 | GCC_WARN_UNUSED_VARIABLE = YES;
286 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
287 | MTL_ENABLE_DEBUG_INFO = NO;
288 | SDKROOT = iphoneos;
289 | SUPPORTED_PLATFORMS = iphoneos;
290 | TARGETED_DEVICE_FAMILY = "1,2";
291 | VALIDATE_PRODUCT = YES;
292 | };
293 | name = Profile;
294 | };
295 | 249021D4217E4FDB00AE95B9 /* Profile */ = {
296 | isa = XCBuildConfiguration;
297 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
298 | buildSettings = {
299 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
300 | CLANG_ENABLE_MODULES = YES;
301 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
302 | ENABLE_BITCODE = NO;
303 | FRAMEWORK_SEARCH_PATHS = (
304 | "$(inherited)",
305 | "$(PROJECT_DIR)/Flutter",
306 | );
307 | INFOPLIST_FILE = Runner/Info.plist;
308 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
309 | LIBRARY_SEARCH_PATHS = (
310 | "$(inherited)",
311 | "$(PROJECT_DIR)/Flutter",
312 | );
313 | PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
314 | PRODUCT_NAME = "$(TARGET_NAME)";
315 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
316 | SWIFT_VERSION = 5.0;
317 | VERSIONING_SYSTEM = "apple-generic";
318 | };
319 | name = Profile;
320 | };
321 | 97C147031CF9000F007C117D /* Debug */ = {
322 | isa = XCBuildConfiguration;
323 | buildSettings = {
324 | ALWAYS_SEARCH_USER_PATHS = NO;
325 | CLANG_ANALYZER_NONNULL = YES;
326 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
327 | CLANG_CXX_LIBRARY = "libc++";
328 | CLANG_ENABLE_MODULES = YES;
329 | CLANG_ENABLE_OBJC_ARC = YES;
330 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
331 | CLANG_WARN_BOOL_CONVERSION = YES;
332 | CLANG_WARN_COMMA = YES;
333 | CLANG_WARN_CONSTANT_CONVERSION = YES;
334 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
335 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
336 | CLANG_WARN_EMPTY_BODY = YES;
337 | CLANG_WARN_ENUM_CONVERSION = YES;
338 | CLANG_WARN_INFINITE_RECURSION = YES;
339 | CLANG_WARN_INT_CONVERSION = YES;
340 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
341 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
342 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
343 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
344 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
345 | CLANG_WARN_STRICT_PROTOTYPES = YES;
346 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
347 | CLANG_WARN_UNREACHABLE_CODE = YES;
348 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
349 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
350 | COPY_PHASE_STRIP = NO;
351 | DEBUG_INFORMATION_FORMAT = dwarf;
352 | ENABLE_STRICT_OBJC_MSGSEND = YES;
353 | ENABLE_TESTABILITY = YES;
354 | GCC_C_LANGUAGE_STANDARD = gnu99;
355 | GCC_DYNAMIC_NO_PIC = NO;
356 | GCC_NO_COMMON_BLOCKS = YES;
357 | GCC_OPTIMIZATION_LEVEL = 0;
358 | GCC_PREPROCESSOR_DEFINITIONS = (
359 | "DEBUG=1",
360 | "$(inherited)",
361 | );
362 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
363 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
364 | GCC_WARN_UNDECLARED_SELECTOR = YES;
365 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
366 | GCC_WARN_UNUSED_FUNCTION = YES;
367 | GCC_WARN_UNUSED_VARIABLE = YES;
368 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
369 | MTL_ENABLE_DEBUG_INFO = YES;
370 | ONLY_ACTIVE_ARCH = YES;
371 | SDKROOT = iphoneos;
372 | TARGETED_DEVICE_FAMILY = "1,2";
373 | };
374 | name = Debug;
375 | };
376 | 97C147041CF9000F007C117D /* Release */ = {
377 | isa = XCBuildConfiguration;
378 | buildSettings = {
379 | ALWAYS_SEARCH_USER_PATHS = NO;
380 | CLANG_ANALYZER_NONNULL = YES;
381 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
382 | CLANG_CXX_LIBRARY = "libc++";
383 | CLANG_ENABLE_MODULES = YES;
384 | CLANG_ENABLE_OBJC_ARC = YES;
385 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
386 | CLANG_WARN_BOOL_CONVERSION = YES;
387 | CLANG_WARN_COMMA = YES;
388 | CLANG_WARN_CONSTANT_CONVERSION = YES;
389 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
390 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
391 | CLANG_WARN_EMPTY_BODY = YES;
392 | CLANG_WARN_ENUM_CONVERSION = YES;
393 | CLANG_WARN_INFINITE_RECURSION = YES;
394 | CLANG_WARN_INT_CONVERSION = YES;
395 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
396 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
397 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
398 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
399 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
400 | CLANG_WARN_STRICT_PROTOTYPES = YES;
401 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
402 | CLANG_WARN_UNREACHABLE_CODE = YES;
403 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
404 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
405 | COPY_PHASE_STRIP = NO;
406 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
407 | ENABLE_NS_ASSERTIONS = NO;
408 | ENABLE_STRICT_OBJC_MSGSEND = YES;
409 | GCC_C_LANGUAGE_STANDARD = gnu99;
410 | GCC_NO_COMMON_BLOCKS = YES;
411 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
412 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
413 | GCC_WARN_UNDECLARED_SELECTOR = YES;
414 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
415 | GCC_WARN_UNUSED_FUNCTION = YES;
416 | GCC_WARN_UNUSED_VARIABLE = YES;
417 | IPHONEOS_DEPLOYMENT_TARGET = 11.0;
418 | MTL_ENABLE_DEBUG_INFO = NO;
419 | SDKROOT = iphoneos;
420 | SUPPORTED_PLATFORMS = iphoneos;
421 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
422 | TARGETED_DEVICE_FAMILY = "1,2";
423 | VALIDATE_PRODUCT = YES;
424 | };
425 | name = Release;
426 | };
427 | 97C147061CF9000F007C117D /* Debug */ = {
428 | isa = XCBuildConfiguration;
429 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
430 | buildSettings = {
431 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
432 | CLANG_ENABLE_MODULES = YES;
433 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
434 | ENABLE_BITCODE = NO;
435 | FRAMEWORK_SEARCH_PATHS = (
436 | "$(inherited)",
437 | "$(PROJECT_DIR)/Flutter",
438 | );
439 | INFOPLIST_FILE = Runner/Info.plist;
440 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
441 | LIBRARY_SEARCH_PATHS = (
442 | "$(inherited)",
443 | "$(PROJECT_DIR)/Flutter",
444 | );
445 | PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
446 | PRODUCT_NAME = "$(TARGET_NAME)";
447 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
448 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
449 | SWIFT_VERSION = 5.0;
450 | VERSIONING_SYSTEM = "apple-generic";
451 | };
452 | name = Debug;
453 | };
454 | 97C147071CF9000F007C117D /* Release */ = {
455 | isa = XCBuildConfiguration;
456 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
457 | buildSettings = {
458 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
459 | CLANG_ENABLE_MODULES = YES;
460 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
461 | ENABLE_BITCODE = NO;
462 | FRAMEWORK_SEARCH_PATHS = (
463 | "$(inherited)",
464 | "$(PROJECT_DIR)/Flutter",
465 | );
466 | INFOPLIST_FILE = Runner/Info.plist;
467 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
468 | LIBRARY_SEARCH_PATHS = (
469 | "$(inherited)",
470 | "$(PROJECT_DIR)/Flutter",
471 | );
472 | PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
473 | PRODUCT_NAME = "$(TARGET_NAME)";
474 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
475 | SWIFT_VERSION = 5.0;
476 | VERSIONING_SYSTEM = "apple-generic";
477 | };
478 | name = Release;
479 | };
480 | /* End XCBuildConfiguration section */
481 |
482 | /* Begin XCConfigurationList section */
483 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
484 | isa = XCConfigurationList;
485 | buildConfigurations = (
486 | 97C147031CF9000F007C117D /* Debug */,
487 | 97C147041CF9000F007C117D /* Release */,
488 | 249021D3217E4FDB00AE95B9 /* Profile */,
489 | );
490 | defaultConfigurationIsVisible = 0;
491 | defaultConfigurationName = Release;
492 | };
493 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
494 | isa = XCConfigurationList;
495 | buildConfigurations = (
496 | 97C147061CF9000F007C117D /* Debug */,
497 | 97C147071CF9000F007C117D /* Release */,
498 | 249021D4217E4FDB00AE95B9 /* Profile */,
499 | );
500 | defaultConfigurationIsVisible = 0;
501 | defaultConfigurationName = Release;
502 | };
503 | /* End XCConfigurationList section */
504 | };
505 | rootObject = 97C146E61CF9000F007C117D /* Project object */;
506 | }
507 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
39 |
40 |
41 |
42 |
43 |
44 |
54 |
56 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/example/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "Icon-App-20x20@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "Icon-App-20x20@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "Icon-App-29x29@1x.png",
19 | "scale" : "1x"
20 | },
21 | {
22 | "size" : "29x29",
23 | "idiom" : "iphone",
24 | "filename" : "Icon-App-29x29@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "29x29",
29 | "idiom" : "iphone",
30 | "filename" : "Icon-App-29x29@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "40x40",
35 | "idiom" : "iphone",
36 | "filename" : "Icon-App-40x40@2x.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "40x40",
41 | "idiom" : "iphone",
42 | "filename" : "Icon-App-40x40@3x.png",
43 | "scale" : "3x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "Icon-App-60x60@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "60x60",
53 | "idiom" : "iphone",
54 | "filename" : "Icon-App-60x60@3x.png",
55 | "scale" : "3x"
56 | },
57 | {
58 | "size" : "20x20",
59 | "idiom" : "ipad",
60 | "filename" : "Icon-App-20x20@1x.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "20x20",
65 | "idiom" : "ipad",
66 | "filename" : "Icon-App-20x20@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "29x29",
71 | "idiom" : "ipad",
72 | "filename" : "Icon-App-29x29@1x.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "29x29",
77 | "idiom" : "ipad",
78 | "filename" : "Icon-App-29x29@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "40x40",
83 | "idiom" : "ipad",
84 | "filename" : "Icon-App-40x40@1x.png",
85 | "scale" : "1x"
86 | },
87 | {
88 | "size" : "40x40",
89 | "idiom" : "ipad",
90 | "filename" : "Icon-App-40x40@2x.png",
91 | "scale" : "2x"
92 | },
93 | {
94 | "size" : "76x76",
95 | "idiom" : "ipad",
96 | "filename" : "Icon-App-76x76@1x.png",
97 | "scale" : "1x"
98 | },
99 | {
100 | "size" : "76x76",
101 | "idiom" : "ipad",
102 | "filename" : "Icon-App-76x76@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "83.5x83.5",
107 | "idiom" : "ipad",
108 | "filename" : "Icon-App-83.5x83.5@2x.png",
109 | "scale" : "2x"
110 | },
111 | {
112 | "size" : "1024x1024",
113 | "idiom" : "ios-marketing",
114 | "filename" : "Icon-App-1024x1024@1x.png",
115 | "scale" : "1x"
116 | }
117 | ],
118 | "info" : {
119 | "version" : 1,
120 | "author" : "xcode"
121 | }
122 | }
123 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchImage.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchImage@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "filename" : "LaunchImage@3x.png",
16 | "scale" : "3x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/OwnWeb/flutter_map_tappable_polyline/66bdee432bf1b418b024c6b9745eb0023c398308/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/example/ios/Runner/Base.lproj/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/example/ios/Runner/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/example/ios/Runner/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | example
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | $(FLUTTER_BUILD_NAME)
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(FLUTTER_BUILD_NUMBER)
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UISupportedInterfaceOrientations
30 |
31 | UIInterfaceOrientationPortrait
32 | UIInterfaceOrientationLandscapeLeft
33 | UIInterfaceOrientationLandscapeRight
34 |
35 | UISupportedInterfaceOrientations~ipad
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationPortraitUpsideDown
39 | UIInterfaceOrientationLandscapeLeft
40 | UIInterfaceOrientationLandscapeRight
41 |
42 | UIViewControllerBasedStatusBarAppearance
43 |
44 | CADisableMinimumFrameDurationOnPhone
45 |
46 | UIApplicationSupportsIndirectInputEvents
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/example/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/example/lib/data.dart:
--------------------------------------------------------------------------------
1 | import 'package:latlong2/latlong.dart';
2 |
3 | final lines = [
4 | [
5 | [5.58213, 45.13065, 1005],
6 | [5.58209, 45.13078, 1004],
7 | [5.58186, 45.13091, 1003],
8 | [5.58184, 45.13099, 1003],
9 | [5.58178, 45.13105, 1003],
10 | [5.5817, 45.13109, 1003],
11 | [5.58163, 45.1311, 1003],
12 | [5.58149, 45.13108, 1004],
13 | [5.58141, 45.13103, 1005],
14 | [5.58138, 45.13099, 1005],
15 | [5.58136, 45.13093, 1004],
16 | [5.58125, 45.13084, 1005],
17 | [5.5812, 45.1308, 1005],
18 | [5.58116, 45.13077, 1005],
19 | [5.58113, 45.13072, 1005],
20 | [5.581, 45.13062, 1006],
21 | [5.58081, 45.13058, 1006],
22 | [5.58072, 45.13058, 1007],
23 | [5.58082, 45.13044, 1006],
24 | [5.58077, 45.13033, 1006],
25 | [5.58068, 45.13019, 1007],
26 | [5.58064, 45.13006, 1006],
27 | [5.5806, 45.13001, 1006],
28 | [5.58025, 45.12956, 1007],
29 | [5.57994, 45.12918, 1007],
30 | [5.57987, 45.12909, 1007],
31 | [5.5787, 45.12762, 1005],
32 | [5.57772, 45.12636, 1002],
33 | [5.57736, 45.12593, 1003],
34 | [5.5773, 45.12584, 1003],
35 | [5.57676, 45.1251, 1002],
36 | [5.57673, 45.12506, 1002],
37 | [5.57667, 45.12499, 1002],
38 | [5.57652, 45.1248, 1002],
39 | [5.57641, 45.12466, 1002],
40 | [5.57606, 45.12424, 1002],
41 | [5.57604, 45.12422, 1002],
42 | [5.57581, 45.12392, 999],
43 | [5.57571, 45.12379, 999],
44 | [5.57416, 45.12181, 999],
45 | [5.57391, 45.1216, 1002],
46 | [5.57302, 45.12092, 1010],
47 | [5.57277, 45.12064, 1013],
48 | [5.57255, 45.12027, 1015],
49 | [5.57223, 45.11914, 1012],
50 | [5.57193, 45.11807, 1013],
51 | [5.57189, 45.11778, 1013],
52 | [5.57187, 45.11766, 1013],
53 | [5.57179, 45.11704, 1013],
54 | [5.57182, 45.11694, 1013],
55 | [5.57191, 45.11667, 1012],
56 | [5.57208, 45.11638, 1010],
57 | [5.5722, 45.11622, 1009],
58 | [5.57233, 45.116, 1008],
59 | [5.57246, 45.11574, 1007],
60 | [5.57277, 45.11439, 1003],
61 | [5.57277, 45.11419, 1003],
62 | [5.57273, 45.114, 1002],
63 | [5.57262, 45.1138, 1002],
64 | [5.57247, 45.11362, 1001],
65 | [5.57222, 45.11343, 1001],
66 | [5.57208, 45.11335, 1001],
67 | [5.57177, 45.11325, 1001],
68 | [5.57124, 45.11312, 1002],
69 | [5.57079, 45.11299, 1001],
70 | [5.57042, 45.11285, 999],
71 | [5.56923, 45.11222, 996],
72 | [5.56901, 45.11207, 996],
73 | [5.56877, 45.11193, 996],
74 | [5.56846, 45.11178, 995],
75 | [5.56757, 45.11126, 991],
76 | [5.56741, 45.11114, 992],
77 | [5.56716, 45.11095, 992],
78 | [5.56715, 45.11095, 993],
79 | [5.56648, 45.11026, 995],
80 | [5.56579, 45.10956, 994],
81 | [5.5652, 45.10886, 993],
82 | [5.5639, 45.10713, 989],
83 | [5.56303, 45.10581, 991],
84 | [5.5624, 45.10465, 988],
85 | [5.56162, 45.10301, 989],
86 | [5.56159, 45.10296, 989],
87 | [5.56141, 45.10264, 990],
88 | [5.56107, 45.10207, 991],
89 | [5.56094, 45.10191, 991],
90 | [5.56079, 45.10168, 992],
91 | [5.56014, 45.10073, 989],
92 | [5.55997, 45.10053, 988],
93 | [5.55984, 45.10041, 988],
94 | [5.55935, 45.10003, 986],
95 | [5.55908, 45.09982, 987],
96 | [5.55867, 45.09953, 987],
97 | [5.55838, 45.0992, 984],
98 | [5.55805, 45.09866, 986],
99 | [5.55783, 45.0983, 989],
100 | [5.55758, 45.09789, 989],
101 | [5.55747, 45.09762, 988],
102 | [5.55738, 45.09724, 987],
103 | [5.55722, 45.09673, 985],
104 | [5.55706, 45.09627, 986],
105 | [5.55697, 45.09595, 986],
106 | [5.55683, 45.09539, 984],
107 | [5.55681, 45.0953, 983],
108 | [5.55579, 45.09082, 976],
109 | [5.55556, 45.09035, 976],
110 | [5.55547, 45.09034, 976],
111 | [5.55538, 45.09029, 976],
112 | [5.55533, 45.09024, 976],
113 | [5.55529, 45.09015, 976],
114 | [5.55533, 45.09006, 976],
115 | [5.5554, 45.08999, 976],
116 | [5.55544, 45.08985, 977],
117 | [5.55537, 45.08942, 977],
118 | [5.55423, 45.08553, 977],
119 | [5.55379, 45.08386, 980],
120 | [5.55378, 45.08359, 981],
121 | [5.554, 45.08174, 985],
122 | [5.55399, 45.08162, 986],
123 | [5.55395, 45.08149, 986],
124 | [5.5537, 45.08111, 986],
125 | [5.55321, 45.08046, 986],
126 | [5.55311, 45.08025, 986],
127 | [5.55308, 45.08002, 987],
128 | [5.55313, 45.07973, 986],
129 | [5.55336, 45.07941, 985],
130 | [5.55326, 45.07935, 984],
131 | [5.55323, 45.07925, 983],
132 | [5.5533, 45.07917, 983],
133 | [5.55343, 45.07913, 983],
134 | [5.55339, 45.07886, 981],
135 | [5.55341, 45.07863, 979],
136 | [5.5534, 45.07842, 977],
137 | [5.55336, 45.07829, 977],
138 | [5.55323, 45.0781, 978],
139 | [5.5531, 45.078, 978],
140 | [5.55295, 45.07792, 978],
141 | [5.55237, 45.07765, 976],
142 | [5.55172, 45.0773, 979],
143 | [5.55141, 45.07711, 979],
144 | [5.55095, 45.07678, 977],
145 | [5.5508, 45.07665, 977],
146 | [5.5506, 45.07642, 976],
147 | [5.55051, 45.07624, 976],
148 | [5.55022, 45.0758, 975],
149 | [5.5499, 45.07535, 974],
150 | [5.54974, 45.07515, 974],
151 | [5.54948, 45.07487, 973],
152 | [5.54925, 45.07469, 972],
153 | [5.54853, 45.07403, 972],
154 | [5.54832, 45.07388, 971],
155 | [5.54803, 45.07376, 970],
156 | [5.54782, 45.07371, 968],
157 | [5.54725, 45.07367, 965],
158 | [5.54712, 45.07367, 965],
159 | [5.54704, 45.07373, 965],
160 | [5.54695, 45.07376, 965],
161 | [5.54684, 45.07374, 964],
162 | [5.54663, 45.07382, 965],
163 | [5.54645, 45.07384, 967],
164 | [5.54627, 45.07388, 970],
165 | [5.5461, 45.07391, 973],
166 | [5.54603, 45.07393, 974],
167 | [5.54589, 45.07392, 976],
168 | [5.54525, 45.07378, 985],
169 | [5.54502, 45.07369, 987],
170 | [5.54424, 45.07314, 983],
171 | [5.54406, 45.07308, 983],
172 | [5.54383, 45.0731, 978],
173 | [5.54369, 45.07316, 974],
174 | [5.54359, 45.07324, 970],
175 | [5.54337, 45.07346, 969],
176 | [5.54319, 45.07357, 973],
177 | [5.54296, 45.07366, 974],
178 | [5.54281, 45.07371, 973],
179 | [5.54274, 45.07374, 973],
180 | [5.54209, 45.07387, 967],
181 | [5.54167, 45.07401, 965],
182 | [5.54146, 45.07405, 966],
183 | [5.54128, 45.07405, 967],
184 | [5.54115, 45.07403, 968],
185 | [5.54093, 45.07393, 967],
186 | [5.54086, 45.07386, 965],
187 | [5.5408, 45.07376, 963],
188 | [5.54071, 45.0734, 955],
189 | [5.54066, 45.07331, 954],
190 | [5.54058, 45.07324, 956],
191 | [5.54047, 45.07322, 956],
192 | [5.54034, 45.07323, 955],
193 | [5.54022, 45.0733, 952],
194 | [5.53929, 45.07457, 952],
195 | [5.5383, 45.07587, 951],
196 | [5.53822, 45.07594, 953],
197 | [5.53806, 45.07601, 955],
198 | [5.5373, 45.07624, 960],
199 | [5.53712, 45.07635, 960],
200 | [5.53705, 45.07644, 960],
201 | [5.53697, 45.07663, 957],
202 | [5.5369, 45.07761, 963],
203 | [5.53688, 45.07771, 964],
204 | [5.5368, 45.07787, 965],
205 | [5.53673, 45.07795, 965],
206 | [5.53654, 45.07808, 964],
207 | [5.53591, 45.07839, 957],
208 | [5.53521, 45.07882, 959],
209 | [5.53464, 45.0792, 953],
210 | [5.53448, 45.07932, 953],
211 | [5.5342, 45.07959, 951],
212 | [5.5337, 45.08031, 953],
213 | [5.53318, 45.08113, 950],
214 | [5.53281, 45.08185, 951],
215 | [5.53254, 45.0822, 949],
216 | [5.53147, 45.0834, 959],
217 | [5.53085, 45.08397, 960],
218 | [5.53031, 45.08434, 962],
219 | [5.53016, 45.0844, 962],
220 | [5.52995, 45.08446, 961],
221 | [5.52944, 45.08455, 958],
222 | [5.52852, 45.08466, 952],
223 | [5.5273, 45.08492, 944],
224 | [5.52602, 45.08526, 940],
225 | [5.52525, 45.08544, 936],
226 | [5.52449, 45.08565, 934],
227 | [5.52422, 45.08576, 933],
228 | [5.52398, 45.08579, 933],
229 | [5.52372, 45.08584, 934],
230 | [5.52322, 45.08596, 934],
231 | [5.52297, 45.08601, 934],
232 | [5.52284, 45.08603, 934],
233 | [5.52272, 45.08602, 934],
234 | [5.52248, 45.08594, 934],
235 | [5.52236, 45.08588, 934],
236 | [5.52199, 45.08556, 937],
237 | [5.52183, 45.08544, 937],
238 | [5.52147, 45.08529, 939],
239 | [5.52116, 45.08512, 941],
240 | [5.52043, 45.08467, 953],
241 | [5.52032, 45.08459, 955],
242 | [5.52026, 45.08451, 956],
243 | [5.52024, 45.08439, 957],
244 | [5.52026, 45.08407, 956],
245 | [5.52001, 45.08342, 961],
246 | [5.52, 45.08329, 962],
247 | [5.52001, 45.08314, 965],
248 | [5.52018, 45.08266, 971],
249 | [5.52027, 45.0825, 971],
250 | [5.52036, 45.08243, 971],
251 | [5.52046, 45.08238, 969],
252 | [5.52075, 45.08231, 965],
253 | [5.52095, 45.08225, 964],
254 | [5.52108, 45.08217, 965],
255 | [5.52118, 45.08208, 965],
256 | [5.52125, 45.08193, 966],
257 | [5.52125, 45.08177, 967],
258 | [5.52112, 45.0815, 970],
259 | [5.52111, 45.08139, 970],
260 | [5.52114, 45.08128, 970],
261 | [5.5214, 45.08069, 968],
262 | [5.52174, 45.08013, 965],
263 | [5.52171, 45.08005, 965],
264 | [5.52134, 45.07962, 971],
265 | [5.52124, 45.07947, 973],
266 | [5.52115, 45.07885, 973],
267 | [5.5212, 45.07843, 973],
268 | [5.52117, 45.07826, 974],
269 | [5.5211, 45.07799, 976],
270 | [5.52099, 45.07779, 977],
271 | [5.52096, 45.07768, 978],
272 | [5.52096, 45.07757, 978],
273 | [5.52099, 45.07744, 978],
274 | [5.52114, 45.07715, 978],
275 | [5.52125, 45.07669, 979],
276 | [5.52134, 45.07645, 972],
277 | [5.52131, 45.07591, 960],
278 | [5.5212, 45.07559, 960],
279 | [5.52106, 45.07543, 958],
280 | [5.52059, 45.07518, 958],
281 | [5.52044, 45.07507, 962],
282 | [5.52039, 45.07494, 963],
283 | [5.52041, 45.0739, 960],
284 | [5.52037, 45.07353, 952],
285 | [5.5203, 45.0733, 949],
286 | [5.5202, 45.0729, 947],
287 | [5.52014, 45.07237, 946],
288 | [5.51993, 45.07199, 952],
289 | [5.51988, 45.07176, 956],
290 | [5.51976, 45.07155, 959],
291 | [5.51959, 45.07138, 962],
292 | [5.51959, 45.07113, 956],
293 | [5.51963, 45.0709, 948],
294 | [5.51961, 45.07068, 937],
295 | [5.51951, 45.07049, 926],
296 | [5.51922, 45.07021, 903],
297 | [5.51881, 45.06986, 913],
298 | [5.5182, 45.06947, 920],
299 | [5.51757, 45.06894, 947],
300 | [5.51746, 45.06883, 948],
301 | [5.51709, 45.06853, 938],
302 | [5.51673, 45.06807, 937],
303 | [5.51648, 45.06801, 934],
304 | [5.5162, 45.06805, 926],
305 | [5.5154, 45.06826, 903],
306 | [5.51509, 45.0683, 894],
307 | [5.51469, 45.06823, 900],
308 | [5.51435, 45.06823, 905],
309 | [5.5142, 45.06826, 904],
310 | [5.51382, 45.06838, 901],
311 | [5.51338, 45.06845, 902],
312 | [5.51309, 45.06854, 891],
313 | [5.51236, 45.06882, 867],
314 | [5.51166, 45.06896, 848],
315 | [5.51122, 45.06912, 842],
316 | [5.51067, 45.06928, 842],
317 | [5.51037, 45.06934, 840],
318 | [5.50949, 45.06934, 828],
319 | [5.50888, 45.06938, 824],
320 | [5.50839, 45.06948, 825],
321 | [5.5078, 45.06957, 822],
322 | [5.50736, 45.06965, 818],
323 | [5.50683, 45.06994, 810],
324 | [5.50646, 45.07007, 808],
325 | [5.50626, 45.07017, 811],
326 | [5.50612, 45.07029, 815],
327 | [5.50578, 45.07046, 819],
328 | [5.50552, 45.07053, 825],
329 | [5.50524, 45.07057, 831],
330 | [5.50498, 45.07056, 834],
331 | [5.50474, 45.0705, 835],
332 | [5.50395, 45.07027, 849],
333 | [5.5034, 45.07031, 858],
334 | [5.50281, 45.07032, 860],
335 | [5.50264, 45.07029, 863],
336 | [5.50249, 45.07023, 868],
337 | [5.50235, 45.0702, 868],
338 | [5.50222, 45.07021, 866],
339 | [5.50186, 45.07039, 849],
340 | [5.50144, 45.07042, 842],
341 | [5.5011, 45.07054, 832],
342 | [5.50079, 45.0706, 828],
343 | [5.50007, 45.0707, 831],
344 | [5.49986, 45.07067, 837],
345 | [5.49957, 45.07068, 844],
346 | [5.49918, 45.07076, 848],
347 | [5.49842, 45.07107, 849],
348 | [5.49773, 45.0714, 852],
349 | [5.49703, 45.07154, 857],
350 | [5.49653, 45.0715, 865],
351 | [5.49591, 45.07155, 864],
352 | [5.49557, 45.07153, 865],
353 | [5.49507, 45.07139, 878],
354 | [5.49477, 45.07139, 876],
355 | [5.49415, 45.07144, 864],
356 | [5.49382, 45.0715, 862],
357 | [5.49352, 45.07159, 856],
358 | [5.49316, 45.07185, 842],
359 | [5.49291, 45.07197, 837],
360 | [5.49273, 45.07245, 803],
361 | [5.49247, 45.07288, 793],
362 | [5.49228, 45.07309, 793],
363 | [5.49215, 45.07344, 777],
364 | [5.49211, 45.07364, 766],
365 | [5.49204, 45.07376, 757],
366 | [5.4921, 45.07382, 756],
367 | [5.49234, 45.07414, 751],
368 | [5.49239, 45.07421, 754],
369 | [5.49236, 45.0743, 754],
370 | [5.49221, 45.07446, 749],
371 | [5.49167, 45.07483, 727],
372 | [5.49153, 45.07499, 725],
373 | [5.49135, 45.07547, 732],
374 | [5.49118, 45.07573, 729],
375 | [5.49079, 45.07622, 720],
376 | [5.49049, 45.07651, 717],
377 | [5.49039, 45.07666, 715],
378 | [5.48999, 45.07782, 704],
379 | [5.48994, 45.07807, 705],
380 | [5.49004, 45.07847, 713],
381 | [5.49, 45.07867, 713],
382 | [5.48951, 45.07934, 704],
383 | [5.48935, 45.07962, 702],
384 | [5.4888, 45.08082, 699],
385 | [5.48864, 45.08108, 698],
386 | [5.48842, 45.08135, 695],
387 | [5.48813, 45.08167, 694],
388 | [5.4879, 45.08176, 693],
389 | [5.48732, 45.08183, 688],
390 | [5.48656, 45.0819, 683],
391 | [5.48617, 45.08189, 681],
392 | [5.48581, 45.08192, 680],
393 | [5.48563, 45.08198, 679],
394 | [5.48542, 45.08211, 679],
395 | [5.48511, 45.08235, 678],
396 | [5.48503, 45.08245, 677],
397 | [5.48492, 45.08266, 678],
398 | [5.48471, 45.08357, 682],
399 | [5.48457, 45.08385, 683],
400 | [5.48447, 45.08393, 682],
401 | [5.48433, 45.08399, 681],
402 | [5.48407, 45.08402, 681],
403 | [5.48392, 45.08401, 683],
404 | [5.48377, 45.08403, 685],
405 | [5.48333, 45.08417, 693],
406 | [5.48318, 45.08418, 693],
407 | [5.48283, 45.08413, 690],
408 | [5.48267, 45.08413, 689],
409 | [5.48189, 45.0843, 684],
410 | [5.48169, 45.0844, 685],
411 | [5.4815, 45.08451, 690],
412 | [5.48079, 45.08498, 686],
413 | [5.48058, 45.08508, 691],
414 | [5.47988, 45.08524, 687],
415 | [5.47964, 45.08532, 687],
416 | [5.47909, 45.08562, 685],
417 | [5.47887, 45.0857, 683],
418 | [5.47866, 45.08574, 680],
419 | [5.47823, 45.08576, 673],
420 | [5.47804, 45.08581, 671],
421 | [5.47788, 45.08588, 671],
422 | [5.47727, 45.08622, 675],
423 | [5.47651, 45.08649, 672],
424 | [5.47581, 45.08691, 674],
425 | [5.47469, 45.08743, 670],
426 | [5.47432, 45.08759, 667],
427 | [5.47415, 45.08765, 667],
428 | [5.47382, 45.08773, 665],
429 | [5.47369, 45.08779, 665],
430 | [5.47295, 45.08826, 665],
431 | [5.47225, 45.08867, 666],
432 | [5.47117, 45.08935, 662],
433 | [5.47091, 45.08953, 661],
434 | [5.47095, 45.0897, 664],
435 | [5.47095, 45.08982, 666],
436 | [5.47086, 45.08994, 666],
437 | [5.47072, 45.08999, 665],
438 | [5.47014, 45.09002, 661],
439 | [5.46987, 45.09, 663],
440 | [5.46939, 45.08994, 674],
441 | [5.4692, 45.08997, 679],
442 | [5.46914, 45.09005, 683],
443 | [5.46926, 45.09048, 689],
444 | [5.46958, 45.09122, 692],
445 | [5.46995, 45.09199, 691],
446 | [5.46996, 45.09254, 700],
447 | [5.47, 45.09263, 700],
448 | [5.47007, 45.09272, 701],
449 | [5.47038, 45.09301, 704],
450 | [5.47053, 45.09313, 704],
451 | [5.47071, 45.09323, 703],
452 | [5.47112, 45.09341, 705],
453 | [5.47158, 45.09353, 709],
454 | [5.47166, 45.09356, 709],
455 | [5.47175, 45.09365, 713],
456 | [5.47177, 45.09371, 714],
457 | [5.47174, 45.09384, 715],
458 | [5.47161, 45.09394, 715],
459 | [5.4714, 45.09397, 716],
460 | [5.47107, 45.09397, 716],
461 | [5.47078, 45.09394, 717],
462 | [5.4705, 45.09382, 717],
463 | [5.47033, 45.09372, 717],
464 | [5.47012, 45.09364, 718],
465 | [5.46946, 45.09347, 723],
466 | [5.46921, 45.09329, 724],
467 | [5.46913, 45.09319, 725],
468 | [5.46907, 45.09316, 725],
469 | [5.46894, 45.09314, 726],
470 | [5.4688, 45.09319, 726],
471 | [5.46872, 45.09329, 727],
472 | [5.4687, 45.09343, 728],
473 | [5.46873, 45.0936, 728],
474 | [5.46877, 45.09369, 729],
475 | [5.46925, 45.09428, 736],
476 | [5.46937, 45.09447, 738],
477 | [5.46961, 45.09531, 747],
478 | [5.46976, 45.09566, 751],
479 | [5.47005, 45.09605, 756],
480 | [5.47021, 45.09623, 757],
481 | [5.47038, 45.09635, 759],
482 | [5.4706, 45.09648, 760],
483 | [5.47182, 45.09698, 759],
484 | [5.47249, 45.09728, 763],
485 | [5.47271, 45.09732, 764],
486 | [5.47294, 45.09731, 767],
487 | [5.47321, 45.09733, 770],
488 | [5.47352, 45.09739, 772],
489 | [5.4737, 45.09749, 772],
490 | [5.47378, 45.09761, 772],
491 | [5.47385, 45.09781, 771],
492 | [5.47399, 45.09807, 772],
493 | [5.47437, 45.09856, 776],
494 | [5.47455, 45.09872, 779],
495 | [5.47475, 45.09885, 782],
496 | [5.4749, 45.09898, 784],
497 | [5.47517, 45.09906, 789],
498 | [5.47527, 45.0991, 790],
499 | [5.47525, 45.09919, 790],
500 | [5.47499, 45.09949, 787],
501 | [5.47483, 45.09971, 785],
502 | [5.47483, 45.09983, 785],
503 | [5.47487, 45.09991, 787],
504 | [5.47512, 45.10024, 792],
505 | [5.47534, 45.10042, 796],
506 | [5.47534, 45.10055, 795],
507 | [5.47524, 45.1007, 791],
508 | [5.475, 45.10095, 786],
509 | [5.47485, 45.10131, 793],
510 | [5.47471, 45.10145, 795],
511 | [5.47453, 45.10152, 795],
512 | [5.47426, 45.10154, 794],
513 | [5.47405, 45.10152, 793],
514 | [5.47382, 45.10148, 791],
515 | [5.47356, 45.10147, 791],
516 | [5.47275, 45.10152, 790],
517 | [5.47259, 45.10157, 790],
518 | [5.47238, 45.10171, 791],
519 | [5.47213, 45.10197, 791],
520 | [5.47205, 45.1021, 791],
521 | [5.47205, 45.10221, 792],
522 | [5.47232, 45.10266, 797],
523 | [5.47248, 45.10284, 798],
524 | [5.4728, 45.10314, 800],
525 | [5.47293, 45.10331, 801],
526 | [5.47306, 45.10355, 803],
527 | [5.47316, 45.10381, 805],
528 | [5.47319, 45.10398, 805],
529 | [5.47316, 45.10427, 806],
530 | [5.47305, 45.1044, 806],
531 | [5.47293, 45.10452, 806],
532 | [5.47271, 45.10467, 805],
533 | [5.47267, 45.10477, 806],
534 | [5.47253, 45.10495, 805],
535 | [5.47248, 45.10506, 805],
536 | [5.47248, 45.10515, 806],
537 | [5.47256, 45.10543, 811],
538 | [5.47257, 45.10562, 813],
539 | [5.47254, 45.10577, 814],
540 | [5.4724, 45.10598, 813],
541 | [5.47231, 45.10611, 812],
542 | [5.47215, 45.10626, 811],
543 | [5.47207, 45.10634, 810],
544 | [5.47204, 45.10636, 810],
545 | [5.47181, 45.10653, 807],
546 | [5.47175, 45.1066, 807],
547 | [5.47173, 45.1067, 807],
548 | [5.47177, 45.10677, 808],
549 | [5.47208, 45.10705, 813],
550 | [5.47234, 45.10724, 815],
551 | [5.47261, 45.10753, 817],
552 | [5.47272, 45.1077, 819],
553 | [5.47282, 45.10803, 822],
554 | [5.47279, 45.10851, 822],
555 | [5.47283, 45.10875, 823],
556 | [5.47292, 45.10898, 825],
557 | [5.47306, 45.10931, 828],
558 | [5.47346, 45.10969, 834],
559 | [5.47349, 45.10977, 834],
560 | [5.47341, 45.11011, 833],
561 | [5.47345, 45.11027, 834],
562 | [5.4736, 45.11037, 836],
563 | [5.47422, 45.1105, 847],
564 | [5.47455, 45.11091, 856],
565 | [5.47463, 45.11105, 858],
566 | [5.47462, 45.11118, 858],
567 | [5.47456, 45.11125, 857],
568 | [5.47443, 45.11129, 855],
569 | [5.47409, 45.11124, 850],
570 | [5.47393, 45.11126, 848],
571 | [5.47383, 45.11129, 847],
572 | [5.47373, 45.11134, 847],
573 | [5.47344, 45.11165, 850],
574 | [5.47333, 45.11171, 851],
575 | [5.47318, 45.11172, 851],
576 | [5.47258, 45.11164, 850],
577 | [5.47212, 45.11171, 854],
578 | [5.47191, 45.11176, 855],
579 | [5.47182, 45.11178, 856],
580 | [5.47165, 45.1118, 857],
581 | [5.47158, 45.11182, 859],
582 | [5.47156, 45.11191, 860],
583 | [5.47168, 45.11221, 863],
584 | [5.47195, 45.11309, 873],
585 | [5.47199, 45.11346, 876],
586 | [5.47207, 45.11382, 878],
587 | [5.4722, 45.11408, 878],
588 | [5.47236, 45.1142, 878],
589 | [5.47261, 45.11428, 879],
590 | [5.47296, 45.11449, 880],
591 | [5.47324, 45.11483, 879],
592 | [5.47331, 45.11529, 882],
593 | [5.47338, 45.11676, 897],
594 | [5.47348, 45.11735, 905],
595 | [5.47347, 45.11799, 912],
596 | [5.47357, 45.11861, 913],
597 | [5.47361, 45.11922, 916],
598 | [5.47356, 45.11968, 920],
599 | [5.47364, 45.11983, 919],
600 | [5.47375, 45.11994, 918],
601 | [5.47386, 45.12005, 917],
602 | [5.47409, 45.1204, 919],
603 | [5.475, 45.12119, 928],
604 | [5.47524, 45.12133, 933],
605 | [5.47547, 45.12142, 936],
606 | [5.47576, 45.12149, 938],
607 | [5.47606, 45.12153, 940],
608 | [5.47633, 45.12152, 942],
609 | [5.47651, 45.12154, 943],
610 | [5.4766, 45.12163, 945],
611 | [5.47657, 45.12171, 947],
612 | [5.47646, 45.12177, 948],
613 | [5.47624, 45.12178, 947],
614 | [5.47608, 45.12175, 945],
615 | [5.47576, 45.12174, 944],
616 | [5.47512, 45.12178, 944],
617 | [5.47481, 45.12172, 943],
618 | [5.4743, 45.12156, 943],
619 | [5.47415, 45.12156, 944],
620 | [5.47403, 45.12162, 945],
621 | [5.47397, 45.12176, 947],
622 | [5.47411, 45.1225, 956],
623 | [5.47421, 45.12262, 957],
624 | [5.47434, 45.12271, 958],
625 | [5.47453, 45.12279, 959],
626 | [5.47488, 45.12288, 961],
627 | [5.475, 45.12295, 962],
628 | [5.47507, 45.12304, 963],
629 | [5.47508, 45.12323, 964],
630 | [5.47497, 45.12344, 964],
631 | [5.47466, 45.12365, 963],
632 | [5.47446, 45.12389, 964],
633 | [5.47445, 45.12419, 967],
634 | [5.47451, 45.12433, 968],
635 | [5.47462, 45.12444, 969],
636 | [5.47486, 45.1246, 970],
637 | [5.47523, 45.12476, 973],
638 | [5.47554, 45.12487, 975],
639 | [5.47593, 45.12497, 979],
640 | [5.47621, 45.12507, 980],
641 | [5.47636, 45.12522, 982],
642 | [5.47646, 45.12536, 983],
643 | [5.47648, 45.12546, 984],
644 | [5.47638, 45.12557, 984],
645 | [5.47604, 45.12568, 981],
646 | [5.4759, 45.12575, 980],
647 | [5.47582, 45.12589, 979],
648 | [5.47589, 45.12611, 981],
649 | [5.47606, 45.12655, 985],
650 | [5.47607, 45.12671, 986],
651 | [5.47602, 45.12677, 986],
652 | [5.4759, 45.12683, 986],
653 | [5.47561, 45.12693, 986],
654 | [5.47552, 45.12699, 986],
655 | [5.47546, 45.1271, 987],
656 | [5.47528, 45.12781, 993],
657 | [5.47528, 45.12797, 994],
658 | [5.47533, 45.12816, 995],
659 | [5.47552, 45.12859, 998],
660 | [5.47556, 45.12911, 1002],
661 | [5.47561, 45.12917, 1002],
662 | [5.47566, 45.12933, 1002],
663 | [5.47562, 45.12947, 1004],
664 | [5.47555, 45.12955, 1005],
665 | [5.4755, 45.12976, 1008],
666 | [5.47575, 45.13089, 1016],
667 | [5.47588, 45.13116, 1017],
668 | [5.47605, 45.13137, 1018],
669 | [5.47636, 45.13226, 1022],
670 | [5.47657, 45.13293, 1022],
671 | [5.47664, 45.13307, 1021],
672 | [5.47675, 45.13316, 1021],
673 | [5.47684, 45.13335, 1022],
674 | [5.47788, 45.1367, 1040],
675 | [5.47842, 45.13825, 1041],
676 | [5.47861, 45.13912, 1050],
677 | [5.47876, 45.13986, 1055],
678 | [5.47872, 45.14013, 1058],
679 | [5.47885, 45.14112, 1061],
680 | [5.4789, 45.14134, 1062],
681 | [5.47941, 45.14238, 1064],
682 | [5.47972, 45.14277, 1067],
683 | [5.4798, 45.14298, 1068],
684 | [5.47979, 45.14317, 1070],
685 | [5.47965, 45.14386, 1071],
686 | [5.47969, 45.1443, 1071],
687 | [5.47968, 45.14482, 1070],
688 | [5.47973, 45.14522, 1070],
689 | [5.47989, 45.14599, 1067],
690 | [5.48001, 45.14688, 1064],
691 | [5.4801, 45.14722, 1065],
692 | [5.48019, 45.14747, 1064],
693 | [5.48063, 45.1484, 1059],
694 | [5.48085, 45.14896, 1056],
695 | [5.48203, 45.15112, 1047],
696 | [5.48238, 45.15192, 1048],
697 | [5.48245, 45.15217, 1049],
698 | [5.48274, 45.15284, 1046],
699 | [5.48316, 45.15367, 1040],
700 | [5.48362, 45.15447, 1034],
701 | [5.48391, 45.15512, 1032],
702 | [5.48423, 45.15603, 1029],
703 | [5.48461, 45.15729, 1024],
704 | [5.48491, 45.15802, 1025],
705 | [5.48546, 45.15925, 1023],
706 | [5.4857, 45.16003, 1023],
707 | [5.4859, 45.16082, 1026],
708 | [5.48616, 45.16123, 1021],
709 | [5.48646, 45.16178, 1017],
710 | [5.48676, 45.16227, 1014],
711 | [5.48717, 45.16316, 1007],
712 | [5.48826, 45.16567, 999],
713 | [5.48961, 45.16811, 997],
714 | [5.4897, 45.16822, 996],
715 | [5.49098, 45.16955, 983],
716 | [5.4924, 45.17093, 965],
717 | [5.49338, 45.17201, 957],
718 | [5.49445, 45.17308, 945],
719 | [5.496, 45.17483, 924],
720 | [5.49693, 45.17592, 917],
721 | [5.49795, 45.17707, 907],
722 | [5.49797, 45.17715, 908],
723 | [5.49793, 45.17739, 911],
724 | [5.49752, 45.17781, 925],
725 | [5.4973, 45.17815, 938],
726 | [5.49728, 45.17823, 940],
727 | [5.49731, 45.17863, 937],
728 | [5.49722, 45.17871, 940],
729 | [5.49702, 45.17881, 944],
730 | [5.49695, 45.17887, 945],
731 | [5.49686, 45.17902, 942],
732 | [5.49677, 45.17906, 942],
733 | [5.49633, 45.17905, 936],
734 | [5.49607, 45.17907, 929],
735 | [5.49417, 45.17653, 977],
736 | [5.49347, 45.17583, 899],
737 | [5.49275, 45.17545, 845],
738 | [5.49237, 45.17519, 829],
739 | [5.49156, 45.17435, 841],
740 | [5.49137, 45.17426, 842],
741 | [5.49107, 45.17422, 836],
742 | [5.49064, 45.17436, 823],
743 | [5.49005, 45.17453, 818],
744 | [5.48979, 45.17452, 824],
745 | [5.4893, 45.17456, 829],
746 | [5.48902, 45.17464, 824],
747 | [5.48803, 45.17503, 782],
748 | [5.48783, 45.17509, 779],
749 | [5.48767, 45.17512, 778],
750 | [5.48725, 45.17495, 797],
751 | [5.48715, 45.17499, 794],
752 | [5.48693, 45.17529, 776],
753 | [5.48682, 45.17536, 773],
754 | [5.48642, 45.17548, 768],
755 | [5.48438, 45.17589, 759],
756 | [5.48422, 45.17598, 757],
757 | [5.48407, 45.17622, 747],
758 | [5.48392, 45.17635, 740],
759 | [5.48339, 45.1766, 726],
760 | [5.48327, 45.17708, 713],
761 | [5.48362, 45.17785, 697],
762 | [5.48374, 45.17802, 692],
763 | [5.48431, 45.17801, 698],
764 | [5.48449, 45.17797, 696],
765 | [5.48455, 45.17783, 699],
766 | [5.48454, 45.17752, 709],
767 | [5.48455, 45.17723, 714],
768 | [5.48454, 45.17702, 718],
769 | [5.48469, 45.17677, 718],
770 | [5.48501, 45.17665, 715],
771 | [5.48529, 45.1766, 710],
772 | [5.48711, 45.17641, 697],
773 | [5.48735, 45.17622, 707],
774 | [5.48754, 45.17615, 710],
775 | [5.48769, 45.17617, 708],
776 | [5.48791, 45.17637, 693],
777 | [5.48969, 45.1764, 687],
778 | [5.49035, 45.17679, 678],
779 | [5.49086, 45.1774, 657],
780 | [5.49156, 45.17755, 662],
781 | [5.49173, 45.17761, 663],
782 | [5.49256, 45.17824, 647],
783 | [5.49273, 45.17831, 659],
784 | [5.49317, 45.1783, 704],
785 | [5.49342, 45.17832, 727],
786 | [5.49371, 45.17856, 747],
787 | [5.49384, 45.17873, 754],
788 | [5.49379, 45.17886, 743],
789 | [5.49357, 45.1791, 709],
790 | [5.49348, 45.17915, 698],
791 | [5.49311, 45.17917, 664],
792 | [5.4928, 45.17929, 645],
793 | [5.49226, 45.17959, 632],
794 | [5.49198, 45.17971, 629],
795 | [5.49179, 45.17975, 624],
796 | [5.49107, 45.18008, 626],
797 | [5.49081, 45.18017, 623],
798 | [5.49041, 45.1802, 612],
799 | [5.48987, 45.18032, 599],
800 | [5.48972, 45.18027, 594],
801 | [5.48957, 45.1801, 588],
802 | [5.48934, 45.17999, 582],
803 | [5.48895, 45.17995, 574],
804 | [5.48874, 45.18, 573],
805 | [5.48858, 45.1802, 570],
806 | [5.4886, 45.18027, 570],
807 | [5.48863, 45.18031, 571],
808 | [5.48867, 45.18037, 572],
809 | [5.48897, 45.18054, 578],
810 | [5.48928, 45.18084, 590],
811 | [5.48943, 45.18108, 597],
812 | [5.48945, 45.18132, 600],
813 | [5.48944, 45.1814, 600],
814 | [5.48943, 45.18156, 601],
815 | [5.48932, 45.18165, 596],
816 | [5.48912, 45.18173, 591],
817 | [5.48893, 45.18175, 582],
818 | [5.4886, 45.18189, 572],
819 | [5.48834, 45.18218, 566],
820 | [5.48819, 45.18238, 567],
821 | [5.48784, 45.18259, 563],
822 | [5.48763, 45.18278, 563],
823 | [5.48747, 45.18298, 564],
824 | [5.48683, 45.18331, 553],
825 | [5.48652, 45.18349, 551],
826 | [5.48649, 45.18349, 550],
827 | [5.48634, 45.18351, 547],
828 | [5.48611, 45.18351, 541],
829 | [5.48591, 45.1836, 539],
830 | [5.48573, 45.18383, 539],
831 | [5.48566, 45.18411, 543],
832 | [5.48565, 45.18434, 546],
833 | [5.48572, 45.18454, 552],
834 | [5.48565, 45.18463, 550],
835 | [5.48555, 45.18472, 547],
836 | [5.48543, 45.1848, 543],
837 | [5.48519, 45.18485, 533],
838 | [5.48498, 45.18496, 526],
839 | [5.48488, 45.18568, 529],
840 | [5.48469, 45.18599, 523],
841 | [5.48467, 45.18648, 521],
842 | [5.48468, 45.18729, 514],
843 | [5.48465, 45.1875, 511],
844 | [5.4844, 45.18796, 500],
845 | [5.48435, 45.18817, 498],
846 | [5.48435, 45.18844, 496],
847 | [5.48449, 45.18875, 495],
848 | [5.4849, 45.18951, 491],
849 | [5.48422, 45.18895, 480],
850 | [5.48398, 45.18866, 476],
851 | [5.48311, 45.18784, 458],
852 | [5.48293, 45.18746, 459],
853 | [5.48278, 45.18746, 457],
854 | [5.48269, 45.18747, 456],
855 | [5.48255, 45.18735, 452],
856 | [5.4823, 45.18719, 446],
857 | [5.48225, 45.18721, 445],
858 | [5.4822, 45.18729, 445],
859 | [5.48216, 45.18738, 445],
860 | [5.48221, 45.1876, 444],
861 | [5.48255, 45.18835, 434],
862 | [5.48272, 45.18856, 432],
863 | [5.48296, 45.1892, 419],
864 | [5.48313, 45.18928, 423],
865 | [5.48337, 45.18961, 421],
866 | [5.48374, 45.19023, 413],
867 | [5.48384, 45.19043, 409],
868 | [5.48415, 45.19141, 388],
869 | [5.48413, 45.19163, 380],
870 | [5.48422, 45.19201, 373],
871 | [5.48423, 45.19246, 361],
872 | [5.48409, 45.19267, 354],
873 | [5.48391, 45.19276, 349],
874 | [5.48387, 45.19283, 348],
875 | [5.48397, 45.19298, 348],
876 | [5.48397, 45.19311, 346],
877 | [5.48407, 45.19358, 340],
878 | [5.48419, 45.19381, 338],
879 | [5.4843, 45.19416, 334],
880 | [5.48424, 45.19438, 331],
881 | [5.48419, 45.19509, 322],
882 | [5.48429, 45.19548, 316],
883 | [5.4843, 45.19565, 313],
884 | [5.48425, 45.19583, 308],
885 | [5.48431, 45.19604, 306],
886 | [5.48431, 45.19624, 303],
887 | [5.48426, 45.19644, 299],
888 | [5.48424, 45.19655, 297],
889 | [5.48401, 45.19686, 290],
890 | [5.48404, 45.19709, 287],
891 | [5.4842, 45.19729, 287],
892 | [5.48467, 45.19774, 295],
893 | [5.48472, 45.19794, 294],
894 | [5.48455, 45.19812, 288],
895 | [5.48446, 45.19818, 286],
896 | [5.48429, 45.19834, 281],
897 | [5.48405, 45.19861, 278],
898 | [5.48402, 45.19877, 277],
899 | [5.4841, 45.19894, 277],
900 | [5.48443, 45.19941, 277],
901 | [5.48444, 45.19942, 277],
902 | [5.4846, 45.19965, 276],
903 | [5.48471, 45.19991, 273],
904 | [5.48463, 45.2, 272],
905 | [5.48428, 45.20029, 271],
906 | [5.48421, 45.20044, 271],
907 | [5.48425, 45.20057, 270],
908 | [5.48431, 45.20079, 269],
909 | [5.48432, 45.20082, 268],
910 | [5.48456, 45.20101, 265],
911 | [5.485, 45.20125, 261],
912 | [5.48525, 45.20143, 262],
913 | [5.48535, 45.20158, 262],
914 | [5.48541, 45.20185, 260],
915 | [5.48541, 45.20192, 260],
916 | [5.48483, 45.20216, 254],
917 | [5.4843, 45.20237, 249],
918 | [5.48407, 45.20227, 248],
919 | [5.48384, 45.20197, 249],
920 | [5.48365, 45.20192, 248],
921 | [5.48327, 45.20193, 242],
922 | [5.48312, 45.20199, 237],
923 | [5.48294, 45.20203, 231],
924 | [5.48267, 45.20204, 224],
925 | [5.48254, 45.20197, 222],
926 | [5.48145, 45.20153, 210],
927 | [5.48122, 45.20133, 211],
928 | [5.48093, 45.20118, 207],
929 | [5.4807, 45.20117, 204],
930 | [5.4791, 45.20141, 199],
931 | [5.47511, 45.20195, 197],
932 | [5.47383, 45.20247, 194],
933 | [5.47253, 45.20327, 192],
934 | [5.47206, 45.20362, 192],
935 | [5.47143, 45.20432, 191],
936 | [5.47099, 45.20423, 191],
937 | [5.46986, 45.20407, 188],
938 | [5.46911, 45.204, 187],
939 | [5.46835, 45.20396, 187],
940 | [5.46767, 45.20393, 185],
941 | [5.46748, 45.20393, 185],
942 | [5.46583, 45.20385, 189],
943 | [5.46551, 45.20385, 190],
944 | [5.46488, 45.20383, 193],
945 | [5.46459, 45.20382, 195],
946 | [5.46445, 45.20382, 196],
947 | [5.46314, 45.20377, 200],
948 | [5.46221, 45.20374, 203],
949 | [5.46186, 45.20373, 205],
950 | [5.46145, 45.20369, 205],
951 | [5.46104, 45.20362, 203],
952 | [5.4607, 45.20353, 202],
953 | [5.46038, 45.20341, 200],
954 | [5.46015, 45.20331, 198],
955 | [5.45994, 45.20318, 198],
956 | [5.45869, 45.20239, 198],
957 | [5.45672, 45.20138, 205],
958 | [5.45247, 45.1996, 207],
959 | [5.45198, 45.19941, 209],
960 | [5.4516, 45.1993, 210],
961 | [5.44997, 45.19891, 211],
962 | [5.44727, 45.19829, 210],
963 | [5.44662, 45.19819, 211],
964 | [5.44595, 45.19815, 211],
965 | [5.4372, 45.19817, 219],
966 | [5.43677, 45.19813, 219],
967 | [5.4321, 45.19728, 217],
968 | [5.43132, 45.19713, 218],
969 | [5.43109, 45.19706, 218],
970 | [5.43089, 45.19701, 218],
971 | [5.43062, 45.19691, 217],
972 | [5.43032, 45.19676, 216],
973 | [5.42998, 45.19655, 217],
974 | [5.4293, 45.19602, 218],
975 | [5.42836, 45.19514, 222],
976 | [5.42723, 45.19411, 225],
977 | [5.42694, 45.19425, 223],
978 | [5.42672, 45.19435, 222],
979 | [5.42661, 45.1944, 222],
980 | [5.426, 45.19463, 216],
981 | [5.42576, 45.19472, 213],
982 | [5.4242, 45.1952, 196],
983 | [5.42302, 45.19553, 218],
984 | [5.42293, 45.19552, 220],
985 | [5.42295, 45.19558, 221],
986 | [5.42308, 45.19579, 225],
987 | [5.42324, 45.19596, 226],
988 | [5.42329, 45.19599, 225],
989 | [5.42336, 45.19599, 224],
990 | [5.42337, 45.19596, 223],
991 | [5.42337, 45.19591, 222],
992 | [5.42332, 45.19583, 221],
993 | [5.42312, 45.19558, 217],
994 | [5.42285, 45.19529, 214],
995 | [5.42246, 45.19501, 215],
996 | [5.42238, 45.19491, 213],
997 | [5.42219, 45.19461, 208],
998 | [5.42203, 45.19421, 200],
999 | [5.42195, 45.19404, 198],
1000 | [5.4219, 45.19398, 198],
1001 | [5.42182, 45.19394, 198],
1002 | [5.42132, 45.19389, 202],
1003 | [5.42123, 45.19386, 202],
1004 | [5.4212, 45.19383, 202],
1005 | [5.42128, 45.19379, 201],
1006 | [5.42144, 45.19377, 199],
1007 | [5.42176, 45.1938, 197],
1008 | [5.42196, 45.19384, 195],
1009 | [5.42233, 45.19401, 193],
1010 | [5.42247, 45.19405, 192],
1011 | [5.42254, 45.19404, 191],
1012 | [5.4226, 45.194, 190],
1013 | [5.42259, 45.19393, 189],
1014 | [5.42246, 45.19386, 189],
1015 | [5.42213, 45.19361, 189],
1016 | [5.42173, 45.19342, 191],
1017 | [5.42163, 45.19336, 192],
1018 | [5.42162, 45.19329, 191],
1019 | [5.42147, 45.19322, 193],
1020 | [5.42136, 45.19316, 194],
1021 | [5.42131, 45.19312, 195],
1022 | [5.42132, 45.19307, 194],
1023 | [5.42146, 45.19288, 192],
1024 | [5.42144, 45.19284, 192],
1025 | [5.42132, 45.19277, 193],
1026 | [5.42105, 45.19252, 196],
1027 | [5.42091, 45.19243, 197],
1028 | [5.42069, 45.19239, 199],
1029 | [5.42042, 45.19216, 198],
1030 | [5.42012, 45.19207, 200],
1031 | [5.41991, 45.19191, 201],
1032 | [5.41985, 45.19188, 201],
1033 | [5.41973, 45.19187, 204],
1034 | [5.41948, 45.19192, 209],
1035 | [5.4193, 45.19191, 212],
1036 | [5.4188, 45.19181, 222],
1037 | [5.41848, 45.19166, 230],
1038 | [5.41841, 45.19161, 231],
1039 | [5.41834, 45.19145, 232],
1040 | [5.41835, 45.19137, 232],
1041 | [5.41841, 45.19121, 229],
1042 | [5.41841, 45.19108, 228],
1043 | [5.41834, 45.19105, 230],
1044 | [5.41825, 45.19106, 231],
1045 | [5.41801, 45.19122, 234],
1046 | [5.41722, 45.19076, 237],
1047 | [5.41661, 45.19007, 238],
1048 | [5.41604, 45.18914, 241],
1049 | [5.41524, 45.18842, 243],
1050 | [5.41447, 45.18799, 242],
1051 | [5.41386, 45.18738, 241],
1052 | [5.41356, 45.1865, 241],
1053 | [5.41373, 45.18599, 241],
1054 | [5.41348, 45.18574, 240],
1055 | [5.41255, 45.1856, 239],
1056 | [5.41206, 45.18521, 239],
1057 | [5.41169, 45.18489, 239],
1058 | [5.41122, 45.18467, 239],
1059 | [5.41039, 45.18425, 238],
1060 | [5.40953, 45.18371, 238],
1061 | [5.40863, 45.18341, 238],
1062 | [5.4083, 45.18325, 238],
1063 | [5.40721, 45.18228, 236],
1064 | [5.40697, 45.18204, 233],
1065 | [5.40649, 45.18185, 230],
1066 | [5.40545, 45.18151, 232],
1067 | [5.40239, 45.1799, 238],
1068 | [5.4016, 45.17968, 238],
1069 | [5.40089, 45.17942, 236],
1070 | [5.4002, 45.17892, 232],
1071 | [5.39997, 45.17883, 231],
1072 | [5.39972, 45.17877, 232],
1073 | [5.39934, 45.17878, 233],
1074 | [5.3985, 45.179, 236],
1075 | [5.39826, 45.17902, 237],
1076 | [5.39797, 45.17902, 237],
1077 | [5.39545, 45.17849, 239],
1078 | [5.395, 45.17853, 239],
1079 | [5.39498, 45.17853, 239],
1080 | [5.3943, 45.17833, 236],
1081 | [5.39314, 45.17783, 235],
1082 | [5.39183, 45.17744, 235],
1083 | [5.39116, 45.17719, 231],
1084 | [5.39055, 45.1769, 230],
1085 | [5.38995, 45.1767, 230],
1086 | [5.38947, 45.17638, 229],
1087 | [5.38922, 45.17631, 229],
1088 | [5.38844, 45.17598, 228],
1089 | [5.3882, 45.17602, 228],
1090 | [5.38786, 45.17587, 228],
1091 | [5.3874, 45.17551, 227],
1092 | [5.38723, 45.17542, 226],
1093 | [5.38701, 45.17532, 225],
1094 | [5.3868, 45.17536, 224],
1095 | [5.38668, 45.17529, 224],
1096 | [5.38651, 45.17523, 223],
1097 | [5.38629, 45.17518, 222],
1098 | [5.38604, 45.1751, 221],
1099 | [5.38573, 45.17469, 220],
1100 | [5.38563, 45.17449, 219],
1101 | [5.38551, 45.17429, 219],
1102 | [5.38535, 45.17416, 218],
1103 | [5.3852, 45.17408, 218],
1104 | [5.3848, 45.17398, 215],
1105 | [5.3847, 45.17393, 214],
1106 | [5.38464, 45.17386, 213],
1107 | [5.3846, 45.17364, 212],
1108 | [5.38459, 45.17269, 211],
1109 | [5.38454, 45.17259, 211],
1110 | [5.38417, 45.17235, 209],
1111 | [5.38412, 45.17229, 209],
1112 | [5.38411, 45.17223, 209],
1113 | [5.38413, 45.17216, 209],
1114 | [5.38432, 45.17198, 209],
1115 | [5.3845, 45.17192, 210],
1116 | [5.38481, 45.17191, 210],
1117 | [5.38505, 45.17195, 211],
1118 | [5.38558, 45.17217, 211],
1119 | [5.3861, 45.17245, 211],
1120 | [5.38636, 45.17262, 210],
1121 | [5.38649, 45.17279, 211],
1122 | [5.38672, 45.17299, 212],
1123 | [5.38694, 45.17313, 211],
1124 | [5.38744, 45.17326, 210],
1125 | [5.38808, 45.17349, 208],
1126 | [5.38825, 45.17357, 208]
1127 | ],
1128 | [
1129 | [5.47269, 45.19369, 218],
1130 | [5.4728, 45.19398, 217],
1131 | [5.47306, 45.19414, 216],
1132 | [5.47323, 45.19434, 215],
1133 | [5.47327, 45.19452, 215],
1134 | [5.47305, 45.19508, 214],
1135 | [5.47292, 45.19525, 213],
1136 | [5.47253, 45.19556, 212],
1137 | [5.47243, 45.19568, 211],
1138 | [5.47275, 45.19615, 209],
1139 | [5.47332, 45.19644, 205],
1140 | [5.47334, 45.19662, 203],
1141 | [5.47305, 45.19747, 200],
1142 | [5.47318, 45.19751, 199],
1143 | [5.47339, 45.19754, 199],
1144 | [5.47354, 45.19759, 199],
1145 | [5.47369, 45.1977, 199],
1146 | [5.47374, 45.19777, 199],
1147 | [5.47474, 45.19867, 199],
1148 | [5.47507, 45.19878, 200],
1149 | [5.47514, 45.19886, 200],
1150 | [5.47599, 45.19939, 202],
1151 | [5.47699, 45.19975, 203],
1152 | [5.47749, 45.19999, 203],
1153 | [5.47803, 45.20037, 202],
1154 | [5.47886, 45.2012, 199],
1155 | [5.4791, 45.20141, 199],
1156 | [5.4807, 45.20117, 204],
1157 | [5.48093, 45.20118, 207],
1158 | [5.48122, 45.20133, 211],
1159 | [5.48145, 45.20153, 210],
1160 | [5.48146, 45.20178, 206],
1161 | [5.48162, 45.20262, 203],
1162 | [5.4817, 45.20289, 202],
1163 | [5.48181, 45.20316, 201],
1164 | [5.48205, 45.20345, 201],
1165 | [5.48233, 45.20398, 200],
1166 | [5.48238, 45.2042, 200],
1167 | [5.48241, 45.20449, 201],
1168 | [5.48238, 45.20474, 201],
1169 | [5.4824, 45.20488, 201],
1170 | [5.48245, 45.20505, 201],
1171 | [5.48254, 45.20522, 200],
1172 | [5.48264, 45.20549, 199],
1173 | [5.48264, 45.20569, 197],
1174 | [5.48279, 45.20647, 196],
1175 | [5.48274, 45.2066, 195],
1176 | [5.48297, 45.20737, 193],
1177 | [5.48296, 45.20743, 193],
1178 | [5.48339, 45.20761, 193],
1179 | [5.48433, 45.20801, 193],
1180 | [5.48462, 45.20816, 195],
1181 | [5.48493, 45.20839, 195],
1182 | [5.48614, 45.20948, 206],
1183 | [5.48707, 45.2102, 206],
1184 | [5.4874, 45.21053, 202],
1185 | [5.48777, 45.21104, 195],
1186 | [5.48849, 45.21245, 186],
1187 | [5.48962, 45.21453, 184],
1188 | [5.48979, 45.21489, 184],
1189 | [5.48984, 45.21502, 184],
1190 | [5.49004, 45.21543, 183],
1191 | [5.49081, 45.21681, 183],
1192 | [5.49101, 45.21717, 183],
1193 | [5.49169, 45.21851, 183],
1194 | [5.49286, 45.22075, 184],
1195 | [5.4932, 45.22137, 184],
1196 | [5.49362, 45.2222, 184],
1197 | [5.49499, 45.22481, 182],
1198 | [5.49546, 45.2257, 182],
1199 | [5.49777, 45.23011, 181],
1200 | [5.49791, 45.23038, 181],
1201 | [5.49976, 45.23389, 183],
1202 | [5.50173, 45.2376, 183],
1203 | [5.50204, 45.23813, 185],
1204 | [5.5024, 45.23857, 184],
1205 | [5.50254, 45.23852, 185],
1206 | [5.5024, 45.23857, 184],
1207 | [5.50204, 45.23813, 185],
1208 | [5.50173, 45.2376, 183],
1209 | [5.49976, 45.23389, 183],
1210 | [5.49791, 45.23038, 181],
1211 | [5.49777, 45.23011, 181],
1212 | [5.49546, 45.2257, 182],
1213 | [5.49499, 45.22481, 182],
1214 | [5.49362, 45.2222, 184],
1215 | [5.4932, 45.22137, 184],
1216 | [5.49286, 45.22075, 184],
1217 | [5.49169, 45.21851, 183],
1218 | [5.49101, 45.21717, 183],
1219 | [5.49081, 45.21681, 183],
1220 | [5.49004, 45.21543, 183],
1221 | [5.48984, 45.21502, 184],
1222 | [5.48979, 45.21489, 184],
1223 | [5.48962, 45.21453, 184],
1224 | [5.48849, 45.21245, 186],
1225 | [5.48777, 45.21104, 195],
1226 | [5.4874, 45.21053, 202],
1227 | [5.48707, 45.2102, 206],
1228 | [5.48614, 45.20948, 206],
1229 | [5.48493, 45.20839, 195],
1230 | [5.48462, 45.20816, 195],
1231 | [5.48433, 45.20801, 193],
1232 | [5.48296, 45.20743, 193],
1233 | [5.48172, 45.20698, 189],
1234 | [5.47986, 45.20622, 193],
1235 | [5.47927, 45.20602, 193],
1236 | [5.47821, 45.20577, 195],
1237 | [5.47658, 45.20543, 193],
1238 | [5.47099, 45.20423, 191],
1239 | [5.46986, 45.20407, 188],
1240 | [5.46911, 45.204, 187],
1241 | [5.46767, 45.20393, 185],
1242 | [5.46748, 45.20393, 185],
1243 | [5.46583, 45.20385, 189],
1244 | [5.46551, 45.20385, 190],
1245 | [5.46488, 45.20383, 193],
1246 | [5.46459, 45.20382, 195],
1247 | [5.46445, 45.20382, 196],
1248 | [5.46314, 45.20377, 200],
1249 | [5.46221, 45.20374, 203],
1250 | [5.46186, 45.20373, 205],
1251 | [5.46145, 45.20369, 205],
1252 | [5.46104, 45.20362, 203],
1253 | [5.4607, 45.20353, 202],
1254 | [5.46038, 45.20341, 200],
1255 | [5.46015, 45.20331, 198],
1256 | [5.45994, 45.20318, 198],
1257 | [5.45869, 45.20239, 198],
1258 | [5.45672, 45.20138, 205],
1259 | [5.45247, 45.1996, 207],
1260 | [5.45198, 45.19941, 209],
1261 | [5.4516, 45.1993, 210],
1262 | [5.44997, 45.19891, 211],
1263 | [5.44727, 45.19829, 210],
1264 | [5.44662, 45.19819, 211],
1265 | [5.44595, 45.19815, 211],
1266 | [5.4372, 45.19817, 219],
1267 | [5.43677, 45.19813, 219],
1268 | [5.4321, 45.19728, 217],
1269 | [5.43132, 45.19713, 218],
1270 | [5.43109, 45.19706, 218],
1271 | [5.43089, 45.19701, 218],
1272 | [5.43062, 45.19691, 217],
1273 | [5.43032, 45.19676, 216],
1274 | [5.42998, 45.19655, 217],
1275 | [5.4293, 45.19602, 218],
1276 | [5.42836, 45.19514, 222],
1277 | [5.42723, 45.19411, 225],
1278 | [5.42694, 45.19425, 223],
1279 | [5.42672, 45.19435, 222],
1280 | [5.42661, 45.1944, 222],
1281 | [5.426, 45.19463, 216],
1282 | [5.42576, 45.19472, 213],
1283 | [5.4242, 45.1952, 196],
1284 | [5.42305, 45.19552, 217],
1285 | [5.42298, 45.19552, 218],
1286 | [5.42288, 45.19552, 221],
1287 | [5.42269, 45.19545, 222],
1288 | [5.42231, 45.1952, 221],
1289 | [5.42221, 45.19515, 221],
1290 | [5.42203, 45.19511, 222],
1291 | [5.42143, 45.19511, 226],
1292 | [5.42103, 45.19507, 225],
1293 | [5.42062, 45.19499, 223],
1294 | [5.42054, 45.19498, 222],
1295 | [5.42031, 45.19503, 222],
1296 | [5.42015, 45.19512, 224],
1297 | [5.4198, 45.19543, 231],
1298 | [5.4197, 45.19557, 233],
1299 | [5.41959, 45.19612, 237],
1300 | [5.4195, 45.19632, 237],
1301 | [5.41938, 45.19652, 237],
1302 | [5.41922, 45.19665, 235],
1303 | [5.41852, 45.1969, 228],
1304 | [5.41835, 45.19698, 227],
1305 | [5.41828, 45.19703, 228],
1306 | [5.41801, 45.1973, 231],
1307 | [5.41792, 45.19747, 233],
1308 | [5.41798, 45.19792, 239],
1309 | [5.41795, 45.19807, 240],
1310 | [5.41789, 45.19825, 241],
1311 | [5.41777, 45.19841, 242],
1312 | [5.41764, 45.19851, 241],
1313 | [5.41751, 45.19857, 241]
1314 | ]
1315 | ];
1316 |
1317 | List getPoints(int index) {
1318 | return lines[index]
1319 | .map((e) => LatLng(e[1] as double, e[0] as double))
1320 | .toList();
1321 | }
1322 |
--------------------------------------------------------------------------------
/example/lib/main.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_map/flutter_map.dart';
3 | import 'package:flutter_map_tappable_polyline/flutter_map_tappable_polyline.dart';
4 | import 'package:latlong2/latlong.dart';
5 |
6 | import 'data.dart';
7 |
8 | void main() {
9 | runApp(MyApp());
10 | }
11 |
12 | class MyApp extends StatelessWidget {
13 | // This widget is the root of your application.
14 | @override
15 | Widget build(BuildContext context) {
16 | return MaterialApp(
17 | title: 'Tappable Polyline Demo',
18 | theme: ThemeData(
19 | // This is the theme of your application.
20 | //
21 | // Try running your application with "flutter run". You'll see the
22 | // application has a blue toolbar. Then, without quitting the app, try
23 | // changing the primarySwatch below to Colors.green and then invoke
24 | // "hot reload" (press "r" in the console where you ran "flutter run",
25 | // or simply save your changes to "hot reload" in a Flutter IDE).
26 | // Notice that the counter didn't reset back to zero; the application
27 | // is not restarted.
28 | primarySwatch: Colors.blue,
29 | ),
30 | home: MyHomePage(title: 'Tappable Polyline Demo'),
31 | );
32 | }
33 | }
34 |
35 | class MyHomePage extends StatefulWidget {
36 | MyHomePage({Key? key, this.title}) : super(key: key);
37 |
38 | // This widget is the home page of your application. It is stateful, meaning
39 | // that it has a State object (defined below) that contains fields that affect
40 | // how it looks.
41 |
42 | // This class is the configuration for the state. It holds the values (in this
43 | // case the title) provided by the parent (in this case the App widget) and
44 | // used by the build method of the State. Fields in a Widget subclass are
45 | // always marked "final".
46 |
47 | final String? title;
48 |
49 | @override
50 | _MyHomePageState createState() => _MyHomePageState();
51 | }
52 |
53 | class _MyHomePageState extends State {
54 | @override
55 | Widget build(BuildContext context) {
56 | // This method is rerun every time setState is called, for instance as done
57 | // by the _incrementCounter method above.
58 | //
59 | // The Flutter framework has been optimized to make rerunning build methods
60 | // fast, so that you can just rebuild anything that needs updating rather
61 | // than having to individually change instances of widgets.
62 | return Scaffold(
63 | appBar: AppBar(
64 | // Here we take the value from the MyHomePage object that was created by
65 | // the App.build method, and use it to set our appbar title.
66 | title: Text(widget.title!),
67 | ),
68 | body: FlutterMap(
69 | options: MapOptions(
70 | initialCenter: LatLng(45.1313258, 5.5171205),
71 | initialZoom: 11.0,
72 | ),
73 | children: [
74 | TileLayer(
75 | urlTemplate: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
76 | subdomains: ['a', 'b', 'c'],
77 | ),
78 | TappablePolylineLayer(
79 | // Will only render visible polylines, increasing performance
80 | polylineCulling: true,
81 | pointerDistanceTolerance: 20,
82 | polylines: [
83 | TaggedPolyline(
84 | tag: 'My Polyline',
85 | // An optional tag to distinguish polylines in callback
86 | points: getPoints(0),
87 | color: Colors.red,
88 | strokeWidth: 9.0,
89 | ),
90 | TaggedPolyline(
91 | tag: 'My 2nd Polyline',
92 | // An optional tag to distinguish polylines in callback
93 | points: getPoints(1),
94 | color: Colors.black,
95 | strokeWidth: 3.0,
96 | ),
97 | TaggedPolyline(
98 | tag: 'My 3rd Polyline',
99 | // An optional tag to distinguish polylines in callback
100 | points: getPoints(0),
101 | color: Colors.blue,
102 | strokeWidth: 3.0,
103 | ),
104 | ],
105 | onTap: (polylines, tapPosition) => print('Tapped: ' +
106 | polylines.map((polyline) => polyline.tag).join(',') +
107 | ' at ' +
108 | tapPosition.globalPosition.toString()),
109 | onMiss: (tapPosition) {
110 | print('No polyline was tapped at position ' +
111 | tapPosition.globalPosition.toString());
112 | })
113 | ],
114 | ),
115 | );
116 | }
117 | }
118 |
--------------------------------------------------------------------------------
/example/pubspec.lock:
--------------------------------------------------------------------------------
1 | # Generated by pub
2 | # See https://dart.dev/tools/pub/glossary#lockfile
3 | packages:
4 | async:
5 | dependency: transitive
6 | description:
7 | name: async
8 | sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
9 | url: "https://pub.dev"
10 | source: hosted
11 | version: "2.11.0"
12 | boolean_selector:
13 | dependency: transitive
14 | description:
15 | name: boolean_selector
16 | sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
17 | url: "https://pub.dev"
18 | source: hosted
19 | version: "2.1.1"
20 | characters:
21 | dependency: transitive
22 | description:
23 | name: characters
24 | sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
25 | url: "https://pub.dev"
26 | source: hosted
27 | version: "1.3.0"
28 | charcode:
29 | dependency: transitive
30 | description:
31 | name: charcode
32 | sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306
33 | url: "https://pub.dev"
34 | source: hosted
35 | version: "1.3.1"
36 | clock:
37 | dependency: transitive
38 | description:
39 | name: clock
40 | sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
41 | url: "https://pub.dev"
42 | source: hosted
43 | version: "1.1.1"
44 | collection:
45 | dependency: transitive
46 | description:
47 | name: collection
48 | sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
49 | url: "https://pub.dev"
50 | source: hosted
51 | version: "1.17.1"
52 | fake_async:
53 | dependency: transitive
54 | description:
55 | name: fake_async
56 | sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
57 | url: "https://pub.dev"
58 | source: hosted
59 | version: "1.3.1"
60 | flutter:
61 | dependency: "direct main"
62 | description: flutter
63 | source: sdk
64 | version: "0.0.0"
65 | flutter_map:
66 | dependency: transitive
67 | description:
68 | name: flutter_map
69 | sha256: "2b925948b675ef74ca524179fb133dbe0a21741889ccf56ad08fc8dcc38ba94b"
70 | url: "https://pub.dev"
71 | source: hosted
72 | version: "6.0.1"
73 | flutter_map_tappable_polyline:
74 | dependency: "direct main"
75 | description:
76 | path: ".."
77 | relative: true
78 | source: path
79 | version: "5.0.0"
80 | flutter_test:
81 | dependency: "direct dev"
82 | description: flutter
83 | source: sdk
84 | version: "0.0.0"
85 | http:
86 | dependency: transitive
87 | description:
88 | name: http
89 | sha256: "4c3f04bfb64d3efd508d06b41b825542f08122d30bda4933fb95c069d22a4fa3"
90 | url: "https://pub.dev"
91 | source: hosted
92 | version: "1.0.0"
93 | http_parser:
94 | dependency: transitive
95 | description:
96 | name: http_parser
97 | sha256: e362d639ba3bc07d5a71faebb98cde68c05bfbcfbbb444b60b6f60bb67719185
98 | url: "https://pub.dev"
99 | source: hosted
100 | version: "4.0.0"
101 | intl:
102 | dependency: transitive
103 | description:
104 | name: intl
105 | sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
106 | url: "https://pub.dev"
107 | source: hosted
108 | version: "0.17.0"
109 | js:
110 | dependency: transitive
111 | description:
112 | name: js
113 | sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
114 | url: "https://pub.dev"
115 | source: hosted
116 | version: "0.6.7"
117 | latlong2:
118 | dependency: transitive
119 | description:
120 | name: latlong2
121 | sha256: "18712164760cee655bc790122b0fd8f3d5b3c36da2cb7bf94b68a197fbb0811b"
122 | url: "https://pub.dev"
123 | source: hosted
124 | version: "0.9.0"
125 | lists:
126 | dependency: transitive
127 | description:
128 | name: lists
129 | sha256: "15b788c949b642caf6ccc14ec07751318dc814fae802a7ca11e285a1920f4e10"
130 | url: "https://pub.dev"
131 | source: hosted
132 | version: "1.0.0"
133 | logger:
134 | dependency: transitive
135 | description:
136 | name: logger
137 | sha256: "6bbb9d6f7056729537a4309bda2e74e18e5d9f14302489cc1e93f33b3fe32cac"
138 | url: "https://pub.dev"
139 | source: hosted
140 | version: "2.0.2+1"
141 | matcher:
142 | dependency: transitive
143 | description:
144 | name: matcher
145 | sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
146 | url: "https://pub.dev"
147 | source: hosted
148 | version: "0.12.15"
149 | material_color_utilities:
150 | dependency: transitive
151 | description:
152 | name: material_color_utilities
153 | sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
154 | url: "https://pub.dev"
155 | source: hosted
156 | version: "0.2.0"
157 | meta:
158 | dependency: transitive
159 | description:
160 | name: meta
161 | sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
162 | url: "https://pub.dev"
163 | source: hosted
164 | version: "1.9.1"
165 | mgrs_dart:
166 | dependency: transitive
167 | description:
168 | name: mgrs_dart
169 | sha256: fb89ae62f05fa0bb90f70c31fc870bcbcfd516c843fb554452ab3396f78586f7
170 | url: "https://pub.dev"
171 | source: hosted
172 | version: "2.0.0"
173 | path:
174 | dependency: transitive
175 | description:
176 | name: path
177 | sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
178 | url: "https://pub.dev"
179 | source: hosted
180 | version: "1.8.3"
181 | polylabel:
182 | dependency: transitive
183 | description:
184 | name: polylabel
185 | sha256: "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b"
186 | url: "https://pub.dev"
187 | source: hosted
188 | version: "1.0.1"
189 | proj4dart:
190 | dependency: transitive
191 | description:
192 | name: proj4dart
193 | sha256: c8a659ac9b6864aa47c171e78d41bbe6f5e1d7bd790a5814249e6b68bc44324e
194 | url: "https://pub.dev"
195 | source: hosted
196 | version: "2.1.0"
197 | sky_engine:
198 | dependency: transitive
199 | description: flutter
200 | source: sdk
201 | version: "0.0.99"
202 | source_span:
203 | dependency: transitive
204 | description:
205 | name: source_span
206 | sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
207 | url: "https://pub.dev"
208 | source: hosted
209 | version: "1.9.1"
210 | stack_trace:
211 | dependency: transitive
212 | description:
213 | name: stack_trace
214 | sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5
215 | url: "https://pub.dev"
216 | source: hosted
217 | version: "1.11.0"
218 | stream_channel:
219 | dependency: transitive
220 | description:
221 | name: stream_channel
222 | sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8"
223 | url: "https://pub.dev"
224 | source: hosted
225 | version: "2.1.1"
226 | string_scanner:
227 | dependency: transitive
228 | description:
229 | name: string_scanner
230 | sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
231 | url: "https://pub.dev"
232 | source: hosted
233 | version: "1.2.0"
234 | term_glyph:
235 | dependency: transitive
236 | description:
237 | name: term_glyph
238 | sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
239 | url: "https://pub.dev"
240 | source: hosted
241 | version: "1.2.1"
242 | test_api:
243 | dependency: transitive
244 | description:
245 | name: test_api
246 | sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
247 | url: "https://pub.dev"
248 | source: hosted
249 | version: "0.5.1"
250 | typed_data:
251 | dependency: transitive
252 | description:
253 | name: typed_data
254 | sha256: "53bdf7e979cfbf3e28987552fd72f637e63f3c8724c9e56d9246942dc2fa36ee"
255 | url: "https://pub.dev"
256 | source: hosted
257 | version: "1.3.0"
258 | unicode:
259 | dependency: transitive
260 | description:
261 | name: unicode
262 | sha256: "0c90cf0f633aab2d2e3f53e2a61979abe667c30543aa7a9b9b09d4a52cc39fa7"
263 | url: "https://pub.dev"
264 | source: hosted
265 | version: "0.3.0"
266 | vector_math:
267 | dependency: transitive
268 | description:
269 | name: vector_math
270 | sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
271 | url: "https://pub.dev"
272 | source: hosted
273 | version: "2.1.4"
274 | wkt_parser:
275 | dependency: transitive
276 | description:
277 | name: wkt_parser
278 | sha256: "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13"
279 | url: "https://pub.dev"
280 | source: hosted
281 | version: "2.0.0"
282 | sdks:
283 | dart: ">=3.0.0 <4.0.0"
284 | flutter: ">=3.10.0"
285 |
--------------------------------------------------------------------------------
/example/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: example
2 | description: A new Flutter project.
3 | version: 6.0.0
4 | publish_to: "none"
5 |
6 | environment:
7 | sdk: ">=3.0.0 <4.0.0"
8 |
9 | dependencies:
10 | flutter:
11 | sdk: flutter
12 | flutter_map_tappable_polyline:
13 | path: ../
14 |
15 | dev_dependencies:
16 | flutter_test:
17 | sdk: flutter
18 |
19 | flutter:
20 | uses-material-design: true
21 |
--------------------------------------------------------------------------------
/example/test/widget_test.dart:
--------------------------------------------------------------------------------
1 | // This is a basic Flutter widget test.
2 | //
3 | // To perform an interaction with a widget in your test, use the WidgetTester
4 | // utility that Flutter provides. For example, you can send tap and scroll
5 | // gestures. You can also use WidgetTester to find child widgets in the widget
6 | // tree, read text, and verify that the values of widget properties are correct.
7 |
8 | import 'package:flutter/material.dart';
9 | import 'package:flutter_test/flutter_test.dart';
10 |
11 | import 'package:example/main.dart';
12 |
13 | void main() {
14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async {
15 | // Build our app and trigger a frame.
16 | await tester.pumpWidget(MyApp());
17 |
18 | // Verify that our counter starts at 0.
19 | expect(find.text('0'), findsOneWidget);
20 | expect(find.text('1'), findsNothing);
21 |
22 | // Tap the '+' icon and trigger a frame.
23 | await tester.tap(find.byIcon(Icons.add));
24 | await tester.pump();
25 |
26 | // Verify that our counter has incremented.
27 | expect(find.text('0'), findsNothing);
28 | expect(find.text('1'), findsOneWidget);
29 | });
30 | }
31 |
--------------------------------------------------------------------------------
/lib/flutter_map_tappable_polyline.dart:
--------------------------------------------------------------------------------
1 | library flutter_map_tappable_polyline;
2 |
3 | import 'dart:math';
4 |
5 | import 'package:flutter/widgets.dart';
6 | import 'package:flutter_map/flutter_map.dart';
7 | import 'package:latlong2/latlong.dart';
8 |
9 | /// A polyline with a tag
10 | class TaggedPolyline extends Polyline {
11 | /// The name of the polyline
12 | final String? tag;
13 |
14 | final List _offsets = [];
15 |
16 | TaggedPolyline({
17 | required super.points,
18 | super.strokeWidth = 1.0,
19 | super.color = const Color(0xFF00FF00),
20 | super.borderStrokeWidth = 0.0,
21 | super.borderColor = const Color(0xFFFFFF00),
22 | super.gradientColors,
23 | super.colorsStop,
24 | super.isDotted = false,
25 | this.tag,
26 | });
27 | }
28 |
29 | class TappablePolylineLayer extends PolylineLayer {
30 | /// The list of [TaggedPolyline] which could be tapped
31 | @override
32 | final List polylines;
33 |
34 | /// The tolerated distance between pointer and user tap to trigger the [onTap] callback
35 | final double pointerDistanceTolerance;
36 |
37 | /// The callback to call when a polyline was hit by the tap
38 | final void Function(List, TapUpDetails tapPosition)? onTap;
39 |
40 | /// The optional callback to call when no polyline was hit by the tap
41 | final void Function(TapUpDetails tapPosition)? onMiss;
42 |
43 | TappablePolylineLayer({
44 | this.polylines = const [],
45 | this.onTap,
46 | this.onMiss,
47 | this.pointerDistanceTolerance = 15,
48 | polylineCulling = false,
49 | key,
50 | }) : super(key: key, polylines: polylines, polylineCulling: polylineCulling);
51 |
52 | @override
53 | Widget build(BuildContext context) {
54 | final mapCamera = MapCamera.of(context);
55 |
56 | return _build(
57 | context,
58 | Size(mapCamera.size.x, mapCamera.size.y),
59 | polylineCulling
60 | ? polylines
61 | .where(
62 | (p) => p.boundingBox.isOverlapping(mapCamera.visibleBounds))
63 | .toList()
64 | : polylines,
65 | );
66 | }
67 |
68 | Widget _build(BuildContext context, Size size, List lines) {
69 | final mapState = MapCamera.of(context);
70 |
71 | for (TaggedPolyline polyline in lines) {
72 | polyline._offsets.clear();
73 | var i = 0;
74 | for (var point in polyline.points) {
75 | var pos = mapState.project(point);
76 | pos = (pos * mapState.getZoomScale(mapState.zoom, mapState.zoom)) -
77 | mapState.pixelOrigin.toDoublePoint();
78 | polyline._offsets.add(Offset(pos.x.toDouble(), pos.y.toDouble()));
79 | if (i > 0 && i < polyline.points.length) {
80 | polyline._offsets.add(Offset(pos.x.toDouble(), pos.y.toDouble()));
81 | }
82 | i++;
83 | }
84 | }
85 |
86 | return Container(
87 | child: GestureDetector(
88 | onDoubleTap: () {
89 | // For some strange reason i have to add this callback for the onDoubleTapDown callback to be called.
90 | },
91 | onDoubleTapDown: (TapDownDetails details) {
92 | _zoomMap(details, context);
93 | },
94 | onTapUp: (TapUpDetails details) {
95 | _forwardCallToMapOptions(details, context);
96 | _handlePolylineTap(details, onTap, onMiss);
97 | },
98 | child: Stack(
99 | children: [
100 | CustomPaint(
101 | painter: PolylinePainter(lines, mapState),
102 | size: size,
103 | ),
104 | ],
105 | ),
106 | ),
107 | );
108 | }
109 |
110 | void _handlePolylineTap(
111 | TapUpDetails details, Function? onTap, Function? onMiss) {
112 | // We might hit close to multiple polylines. We will therefore keep a reference to these in this map.
113 | Map> candidates = {};
114 |
115 | // Calculating taps in between points on the polyline. We
116 | // iterate over all the segments in the polyline to find any
117 | // matches with the tapped point within the
118 | // pointerDistanceTolerance.
119 | for (TaggedPolyline currentPolyline in polylines) {
120 | for (var j = 0; j < currentPolyline._offsets.length - 1; j++) {
121 | // We consider the points point1, point2 and tap points in a triangle
122 | var point1 = currentPolyline._offsets[j];
123 | var point2 = currentPolyline._offsets[j + 1];
124 | var tap = details.localPosition;
125 |
126 | // To determine if we have tapped in between two po ints, we
127 | // calculate the length from the tapped point to the line
128 | // created by point1, point2. If this distance is shorter
129 | // than the specified threshold, we have detected a tap
130 | // between two points.
131 | //
132 | // We start by calculating the length of all the sides using pythagoras.
133 | var a = _distance(point1, point2);
134 | var b = _distance(point1, tap);
135 | var c = _distance(point2, tap);
136 |
137 | // To find the height when we only know the lengths of the sides, we can use Herons formula to get the Area.
138 | var semiPerimeter = (a + b + c) / 2.0;
139 | var triangleArea = sqrt(semiPerimeter *
140 | (semiPerimeter - a) *
141 | (semiPerimeter - b) *
142 | (semiPerimeter - c));
143 |
144 | // We can then finally calculate the length from the tapped point onto the line created by point1, point2.
145 | // Area of triangles is half the area of a rectangle
146 | // area = 1/2 base * height -> height = (2 * area) / base
147 | var height = (2 * triangleArea) / a;
148 |
149 | // We're not there yet - We need to satisfy the edge case
150 | // where the perpendicular line from the tapped point onto
151 | // the line created by point1, point2 (called point D) is
152 | // outside of the segment point1, point2. We need
153 | // to check if the length from D to the original segment
154 | // (point1, point2) is less than the threshold.
155 |
156 | var hypotenus = max(b, c);
157 | var newTriangleBase = sqrt((hypotenus * hypotenus) - (height * height));
158 | var lengthDToOriginalSegment = newTriangleBase - a;
159 |
160 | if (height < pointerDistanceTolerance &&
161 | lengthDToOriginalSegment < pointerDistanceTolerance) {
162 | var minimum = min(height, lengthDToOriginalSegment);
163 |
164 | candidates[minimum] ??= [];
165 | candidates[minimum]!.add(currentPolyline);
166 | }
167 | }
168 | }
169 |
170 | if (candidates.isEmpty) return onMiss?.call(details);
171 |
172 | // We look up in the map of distances to the tap, and choose the shortest one.
173 | var closestToTapKey = candidates.keys.reduce(min);
174 | onTap!(candidates[closestToTapKey], details);
175 | }
176 |
177 | void _forwardCallToMapOptions(TapUpDetails details, BuildContext context) {
178 | final latlng = _offsetToLatLng(details.localPosition, context.size!.width,
179 | context.size!.height, context);
180 |
181 | final mapOptions = MapOptions.of(context);
182 |
183 | final tapPosition =
184 | TapPosition(details.globalPosition, details.localPosition);
185 |
186 | // Forward the onTap call to map.options so that we won't break onTap
187 | mapOptions.onTap?.call(tapPosition, latlng);
188 | }
189 |
190 | double _distance(Offset point1, Offset point2) {
191 | var distancex = (point1.dx - point2.dx).abs();
192 | var distancey = (point1.dy - point2.dy).abs();
193 |
194 | var distance = sqrt((distancex * distancex) + (distancey * distancey));
195 |
196 | return distance;
197 | }
198 |
199 | void _zoomMap(TapDownDetails details, BuildContext context) {
200 | final mapCamera = MapCamera.of(context);
201 | final mapController = MapController.of(context);
202 |
203 | var newCenter = _offsetToLatLng(details.localPosition, context.size!.width,
204 | context.size!.height, context);
205 | mapController.move(newCenter, mapCamera.zoom + 0.5);
206 | }
207 |
208 | LatLng _offsetToLatLng(
209 | Offset offset, double width, double height, BuildContext context) {
210 | final mapCamera = MapCamera.of(context);
211 |
212 | var localPoint = Point(offset.dx, offset.dy);
213 | var localPointCenterDistance =
214 | Point((width / 2) - localPoint.x, (height / 2) - localPoint.y);
215 | var mapCenter = mapCamera.project(mapCamera.center);
216 | var point = mapCenter - localPointCenterDistance;
217 | return mapCamera.unproject(point);
218 | }
219 | }
220 |
--------------------------------------------------------------------------------
/pubspec.lock:
--------------------------------------------------------------------------------
1 | # Generated by pub
2 | # See https://dart.dev/tools/pub/glossary#lockfile
3 | packages:
4 | async:
5 | dependency: transitive
6 | description:
7 | name: async
8 | sha256: "271b8899fc99f9df4f4ed419fa14e2fff392c7b2c162fbb87b222e2e963ddc73"
9 | url: "https://pub.dev"
10 | source: hosted
11 | version: "2.9.0"
12 | characters:
13 | dependency: transitive
14 | description:
15 | name: characters
16 | sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
17 | url: "https://pub.dev"
18 | source: hosted
19 | version: "1.3.0"
20 | charcode:
21 | dependency: transitive
22 | description:
23 | name: charcode
24 | sha256: "8e36feea6de5ea69f2199f29cf42a450a855738c498b57c0b980e2d3cca9c362"
25 | url: "https://pub.dev"
26 | source: hosted
27 | version: "1.2.0"
28 | clock:
29 | dependency: transitive
30 | description:
31 | name: clock
32 | sha256: "6021e0172ab6e6eaa1d391afed0a99353921f00c54385c574dc53e55d67c092c"
33 | url: "https://pub.dev"
34 | source: hosted
35 | version: "1.1.0"
36 | collection:
37 | dependency: transitive
38 | description:
39 | name: collection
40 | sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
41 | url: "https://pub.dev"
42 | source: hosted
43 | version: "1.17.1"
44 | flutter:
45 | dependency: "direct main"
46 | description: flutter
47 | source: sdk
48 | version: "0.0.0"
49 | flutter_map:
50 | dependency: "direct main"
51 | description:
52 | name: flutter_map
53 | sha256: "2b925948b675ef74ca524179fb133dbe0a21741889ccf56ad08fc8dcc38ba94b"
54 | url: "https://pub.dev"
55 | source: hosted
56 | version: "6.0.1"
57 | http:
58 | dependency: transitive
59 | description:
60 | name: http
61 | sha256: "4c3f04bfb64d3efd508d06b41b825542f08122d30bda4933fb95c069d22a4fa3"
62 | url: "https://pub.dev"
63 | source: hosted
64 | version: "1.0.0"
65 | http_parser:
66 | dependency: transitive
67 | description:
68 | name: http_parser
69 | sha256: e362d639ba3bc07d5a71faebb98cde68c05bfbcfbbb444b60b6f60bb67719185
70 | url: "https://pub.dev"
71 | source: hosted
72 | version: "4.0.0"
73 | intl:
74 | dependency: transitive
75 | description:
76 | name: intl
77 | sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
78 | url: "https://pub.dev"
79 | source: hosted
80 | version: "0.17.0"
81 | js:
82 | dependency: transitive
83 | description:
84 | name: js
85 | sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
86 | url: "https://pub.dev"
87 | source: hosted
88 | version: "0.6.7"
89 | latlong2:
90 | dependency: "direct main"
91 | description:
92 | name: latlong2
93 | sha256: "18712164760cee655bc790122b0fd8f3d5b3c36da2cb7bf94b68a197fbb0811b"
94 | url: "https://pub.dev"
95 | source: hosted
96 | version: "0.9.0"
97 | lists:
98 | dependency: transitive
99 | description:
100 | name: lists
101 | sha256: "15b788c949b642caf6ccc14ec07751318dc814fae802a7ca11e285a1920f4e10"
102 | url: "https://pub.dev"
103 | source: hosted
104 | version: "1.0.0"
105 | logger:
106 | dependency: transitive
107 | description:
108 | name: logger
109 | sha256: "6bbb9d6f7056729537a4309bda2e74e18e5d9f14302489cc1e93f33b3fe32cac"
110 | url: "https://pub.dev"
111 | source: hosted
112 | version: "2.0.2+1"
113 | material_color_utilities:
114 | dependency: transitive
115 | description:
116 | name: material_color_utilities
117 | sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
118 | url: "https://pub.dev"
119 | source: hosted
120 | version: "0.2.0"
121 | meta:
122 | dependency: transitive
123 | description:
124 | name: meta
125 | sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
126 | url: "https://pub.dev"
127 | source: hosted
128 | version: "1.9.1"
129 | mgrs_dart:
130 | dependency: transitive
131 | description:
132 | name: mgrs_dart
133 | sha256: fb89ae62f05fa0bb90f70c31fc870bcbcfd516c843fb554452ab3396f78586f7
134 | url: "https://pub.dev"
135 | source: hosted
136 | version: "2.0.0"
137 | path:
138 | dependency: transitive
139 | description:
140 | name: path
141 | sha256: "2ad4cddff7f5cc0e2d13069f2a3f7a73ca18f66abd6f5ecf215219cdb3638edb"
142 | url: "https://pub.dev"
143 | source: hosted
144 | version: "1.8.0"
145 | pedantic:
146 | dependency: "direct dev"
147 | description:
148 | name: pedantic
149 | sha256: "67fc27ed9639506c856c840ccce7594d0bdcd91bc8d53d6e52359449a1d50602"
150 | url: "https://pub.dev"
151 | source: hosted
152 | version: "1.11.1"
153 | polylabel:
154 | dependency: transitive
155 | description:
156 | name: polylabel
157 | sha256: "41b9099afb2aa6c1730bdd8a0fab1400d287694ec7615dd8516935fa3144214b"
158 | url: "https://pub.dev"
159 | source: hosted
160 | version: "1.0.1"
161 | proj4dart:
162 | dependency: transitive
163 | description:
164 | name: proj4dart
165 | sha256: c8a659ac9b6864aa47c171e78d41bbe6f5e1d7bd790a5814249e6b68bc44324e
166 | url: "https://pub.dev"
167 | source: hosted
168 | version: "2.1.0"
169 | sky_engine:
170 | dependency: transitive
171 | description: flutter
172 | source: sdk
173 | version: "0.0.99"
174 | source_span:
175 | dependency: transitive
176 | description:
177 | name: source_span
178 | sha256: d5f89a9e52b36240a80282b3dc0667dd36e53459717bb17b8fb102d30496606a
179 | url: "https://pub.dev"
180 | source: hosted
181 | version: "1.8.1"
182 | string_scanner:
183 | dependency: transitive
184 | description:
185 | name: string_scanner
186 | sha256: dd11571b8a03f7cadcf91ec26a77e02bfbd6bbba2a512924d3116646b4198fc4
187 | url: "https://pub.dev"
188 | source: hosted
189 | version: "1.1.0"
190 | term_glyph:
191 | dependency: transitive
192 | description:
193 | name: term_glyph
194 | sha256: a88162591b02c1f3a3db3af8ce1ea2b374bd75a7bb8d5e353bcfbdc79d719830
195 | url: "https://pub.dev"
196 | source: hosted
197 | version: "1.2.0"
198 | typed_data:
199 | dependency: transitive
200 | description:
201 | name: typed_data
202 | sha256: "53bdf7e979cfbf3e28987552fd72f637e63f3c8724c9e56d9246942dc2fa36ee"
203 | url: "https://pub.dev"
204 | source: hosted
205 | version: "1.3.0"
206 | unicode:
207 | dependency: transitive
208 | description:
209 | name: unicode
210 | sha256: "0c90cf0f633aab2d2e3f53e2a61979abe667c30543aa7a9b9b09d4a52cc39fa7"
211 | url: "https://pub.dev"
212 | source: hosted
213 | version: "0.3.0"
214 | vector_math:
215 | dependency: transitive
216 | description:
217 | name: vector_math
218 | sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
219 | url: "https://pub.dev"
220 | source: hosted
221 | version: "2.1.4"
222 | wkt_parser:
223 | dependency: transitive
224 | description:
225 | name: wkt_parser
226 | sha256: "8a555fc60de3116c00aad67891bcab20f81a958e4219cc106e3c037aa3937f13"
227 | url: "https://pub.dev"
228 | source: hosted
229 | version: "2.0.0"
230 | sdks:
231 | dart: ">=3.0.0 <4.0.0"
232 | flutter: ">=3.10.0"
233 |
--------------------------------------------------------------------------------
/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: flutter_map_tappable_polyline
2 | description: A flutter_map plugin that adds Polyline class with onTap event
3 | version: 6.0.0
4 | homepage: https://github.com/OwnWeb/flutter_map_tappable_polyline
5 |
6 | environment:
7 | sdk: ">=3.0.0 <4.0.0"
8 | flutter: ">=2.0.0"
9 |
10 | dependencies:
11 | flutter:
12 | sdk: flutter
13 | flutter_map: ^6.0.1
14 | latlong2: ^0.9.0
15 |
16 | dev_dependencies:
17 | pedantic: ^1.11.1
18 |
--------------------------------------------------------------------------------