diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 3c741e444..bc65df522 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -133,6 +133,10 @@ updates: directory: "game_template/" schedule: interval: "daily" + - package-ecosystem: "pub" + directory: "google_maps/" + schedule: + interval: "daily" - package-ecosystem: "pub" directory: "infinite_list/" schedule: diff --git a/google_maps/analysis_options.yaml b/google_maps/analysis_options.yaml new file mode 100644 index 000000000..eb3cb890b --- /dev/null +++ b/google_maps/analysis_options.yaml @@ -0,0 +1,5 @@ +include: package:analysis_defaults/flutter.yaml + +analyzer: + exclude: + - lib/src/*.g.dart diff --git a/google_maps/android/.gitignore b/google_maps/android/.gitignore new file mode 100644 index 000000000..6f568019d --- /dev/null +++ b/google_maps/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/google_maps/android/app/build.gradle b/google_maps/android/app/build.gradle new file mode 100644 index 000000000..152d86056 --- /dev/null +++ b/google_maps/android/app/build.gradle @@ -0,0 +1,69 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion flutter.compileSdkVersion + ndkVersion flutter.ndkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.google_maps_in_flutter" + minSdkVersion 20 + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/google_maps/android/app/src/debug/AndroidManifest.xml b/google_maps/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 000000000..9ae2de283 --- /dev/null +++ b/google_maps/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + diff --git a/google_maps/android/app/src/main/AndroidManifest.xml b/google_maps/android/app/src/main/AndroidManifest.xml new file mode 100644 index 000000000..921734610 --- /dev/null +++ b/google_maps/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + diff --git a/google_maps/android/app/src/main/kotlin/com/example/google_maps_in_flutter/MainActivity.kt b/google_maps/android/app/src/main/kotlin/com/example/google_maps_in_flutter/MainActivity.kt new file mode 100644 index 000000000..883dae8a4 --- /dev/null +++ b/google_maps/android/app/src/main/kotlin/com/example/google_maps_in_flutter/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.google_maps_in_flutter + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/google_maps/android/app/src/main/res/drawable-v21/launch_background.xml b/google_maps/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 000000000..f74085f3f --- /dev/null +++ b/google_maps/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/google_maps/android/app/src/main/res/drawable/launch_background.xml b/google_maps/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 000000000..304732f88 --- /dev/null +++ b/google_maps/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/google_maps/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/google_maps/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..db77bb4b7 Binary files /dev/null and b/google_maps/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/google_maps/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/google_maps/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..17987b79b Binary files /dev/null and b/google_maps/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/google_maps/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/google_maps/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..09d439148 Binary files /dev/null and b/google_maps/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/google_maps/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/google_maps/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..d5f1c8d34 Binary files /dev/null and b/google_maps/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/google_maps/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/google_maps/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..4d6372eeb Binary files /dev/null and b/google_maps/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/google_maps/android/app/src/main/res/values-night/styles.xml b/google_maps/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 000000000..06952be74 --- /dev/null +++ b/google_maps/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/google_maps/android/app/src/main/res/values/styles.xml b/google_maps/android/app/src/main/res/values/styles.xml new file mode 100644 index 000000000..cb1ef8805 --- /dev/null +++ b/google_maps/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/google_maps/android/app/src/profile/AndroidManifest.xml b/google_maps/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 000000000..9ae2de283 --- /dev/null +++ b/google_maps/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + diff --git a/google_maps/android/build.gradle b/google_maps/android/build.gradle new file mode 100644 index 000000000..83ae22004 --- /dev/null +++ b/google_maps/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.1.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/google_maps/android/gradle.properties b/google_maps/android/gradle.properties new file mode 100644 index 000000000..94adc3a3f --- /dev/null +++ b/google_maps/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/google_maps/android/gradle/wrapper/gradle-wrapper.properties b/google_maps/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..cb24abda1 --- /dev/null +++ b/google_maps/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/google_maps/android/settings.gradle b/google_maps/android/settings.gradle new file mode 100644 index 000000000..44e62bcf0 --- /dev/null +++ b/google_maps/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/google_maps/assets/locations.json b/google_maps/assets/locations.json new file mode 100644 index 000000000..83aae6435 --- /dev/null +++ b/google_maps/assets/locations.json @@ -0,0 +1,901 @@ +{ + "offices": [ + { + "address": "Aabogade 15\n8200 Aarhus\nDenmark", + "id": "aarhus", + "image": "https://lh3.googleusercontent.com/tpBMFN5os8K-qXIHiAX5SZEmN5fCzIGrj9FdJtbZPUkC91ookSoY520NYn7fK5yqmh1L1m3F2SJA58v6Qps3JusdrxoFSwk6Ajv2K88", + "lat": 56.172249, + "lng": 10.187372, + "name": "Aarhus", + "phone": "", + "region": "europe" + }, + { + "address": "Claude Debussylaan 34\n1082 MD, Amsterdam\nNetherlands", + "id": "amsterdam", + "image": "https://lh3.googleusercontent.com/gG1zKXcSmRyYWHwUn2Z0MITpdqwb52RAEp3uthG2J5Xl-4_Wz7_WmoM6T_TBg6Ut3L1eF-8XENO10sxVIFdQHilj8iRG29wROpSoug", + "lat": 52.337801, + "lng": 4.872066, + "name": "Amsterdam", + "phone": "", + "region": "europe" + }, + { + "address": "2300 Traverwood Dr.\nAnn Arbor, MI 48105\nUnited States", + "id": "ann-arbor", + "image": "https://lh3.googleusercontent.com/Iim0OVcAgg9vmXc5ADn9KvOQFplrMZ8hBTg2biiTtuWPy_r56cy4Byx1ROk6coGt7knQdmx_jO45VX1kiCJZ0QzEtS97AP_BYG4F2w", + "lat": 42.3063848, + "lng": -83.7140833, + "name": "Ann Arbor", + "phone": "+1 734-332-6500", + "region": "north-america" + }, + { + "address": "Fragkokklisias 7\nAthens 151 25\nGreece", + "id": "athens", + "image": "https://lh3.googleusercontent.com/XroZnqewSrO6KuvXM5hDHtjUJzUcRQLZYfCKs4jP44dKezRvNx58uxaqUKS4fQ2eXzG2TpJNJ1X2xtfBe7Prl5hSG_xjPEF1xLtFodM", + "lat": 38.03902, + "lng": 23.804595, + "name": "Athens", + "phone": "", + "region": "europe" + }, + { + "address": "10 10th Street NE\nAtlanta, GA 30309\nUnited States", + "id": "atlanta", + "image": "https://lh3.googleusercontent.com/py7Qvqqoec1MB0dMKnGWn7ju9wET_dIneTb24U-ri8XAsECJnOaBoNmvfa51PIaC0rlsyQvQXvAK8RdLqpkhpkRSzmhNKqb-tY2_", + "lat": 33.781827, + "lng": -84.387301, + "name": "Atlanta", + "phone": "+1 404-487-9000", + "region": "north-america" + }, + { + "address": "500 W 2nd St\nSuite 2900\nAustin, TX 78701\nUnited States", + "id": "austin", + "image": "https://lh3.googleusercontent.com/WFaJgWPdd7xPL7CQHizlqEzLDjT_GUAiWHIWUM0PiVSsv8q3Rjt9QgbyQazuQwYfN5qLORajv8eKSHlKwZo-M89T2Y12zFSxSIme08c", + "lat": 30.266035, + "lng": -97.749237, + "name": "Austin", + "phone": "+1 512-343-5283", + "region": "north-america" + }, + { + "address": "No. 3, RMZ Infinity \u2013 Tower E\nOld Madras Road\n4th and 5th Floors\nBangalore, 560 016, India", + "id": "bangalore", + "image": "https://lh3.googleusercontent.com/YDyQevoY-D0eZQ9sYHp8dQjpFF5JpLfLK-0OM-uJK1oNK3_LRnGJAM0uXi9qb9UigKnVIIXlIgidxhRlnaB_FPtUOqPzrsCSiFZyoQ", + "lat": 12.99332, + "lng": 77.660176, + "name": "Bangalore", + "phone": "+91-80-67218000", + "region": "asia-pacific" + }, + { + "address": "57 Park Ventures Ecoplex\n14th Floor, Wireless Road\nBangkok, 10330, Thailand", + "id": "bangkok", + "image": "https://lh3.googleusercontent.com/nh9uOUPj6iWjKZSHIrnkfGhIWGBb8thguRM5_ehCOkyF-qfwzYciDJFVRSvQ6QxlSA6eZUMkzgdW9zR0Gab2ZZPg8NlB7V_V3wB5", + "lat": 13.742866, + "lng": 100.547983, + "name": "Bangkok", + "phone": "", + "region": "asia-pacific" + }, + { + "address": "6th Floor, Tower B, Raycom InfoTech Park\nNo. 2 Kexueyuan South Road\nZhongguancun Beijing 100190", + "id": "beijing", + "image": "https://lh3.googleusercontent.com/v_tD3VvC8-dnhqSF9xhj5Hx7F_bb3-wieM19i-Ho2C3by6mt7-JpPc7KsYVHUZFqQl5ON3adVEV1N4OlzSvHLrr3sr4GtXErDbGC", + "lat": 39.9848878, + "lng": 116.3265708, + "name": "Beijing", + "phone": "+86-10-62503000", + "region": "asia-pacific" + }, + { + "address": "Boulevard Corporate Tower\nAv. dos Andradas, 3000 - Andares 14-17\nSanta Efig\u00eania\nBelo Horizonte\n30260-070, Brazil", + "id": "belo-horizonte", + "image": "https://lh3.googleusercontent.com/f7F8gTi9GSgAZR3lv24I1yb-D0wRlDy0lQTcxCB4yJGtSgxrWdKoB3dX3J8SMrjYLwOSXquO3LuGFUE82QUjzVK9buHGNIRUPGpqM3E", + "lat": -19.920225, + "lng": -43.920845, + "name": "Belo Horizonte", + "phone": "+55-31-2128-6800", + "region": "latin-america" + }, + { + "address": "Tucholskystra\u00dfe 2\n10117 Berlin\nGermany", + "id": "berlin", + "image": "https://lh3.googleusercontent.com/XcPyEMiSlLdZJq7nh3orGy3UqjtUHdhxXiwn52ZY47wfEChfZNDO78zDy9H0tBeegogZBZpIE0Q9mdVBGN4aQ0M5vfgz8ZWMEe43Mg", + "lat": 52.5231079, + "lng": 13.39203120000002, + "name": "Berlin", + "phone": "+49 30 303986300", + "region": "europe" + }, + { + "address": "Carrera 11A 94 - 45\nCentro Empresarial Oxo Centre\nBogota, Colombia", + "id": "bogota", + "image": "https://lh3.googleusercontent.com/_APoV1zAR0g5_pXVDlT2ovgNQfr3zvjOuj4HFHViiy2ahyjapJMXlYRE48qYMyFTWXJybbK4psz-fQ82QhMhO0keYJ27I8tNTHe_ww", + "lat": 4.678267, + "lng": -74.046901, + "name": "Bogota", + "phone": "+57 (1) 5939400", + "region": "latin-america" + }, + { + "address": "2600 Pearl Street\nBoulder, CO 80302\nUnited States", + "id": "boulder", + "image": "https://lh3.googleusercontent.com/lF9KBhOolmb958FFmMdLwFcedQAn1wEsVleBRrJQmyfhvD3u4lwCneR09ADJ9sG4tMBP5LDSLkn9bkbavzyqqql_0X7hj39dzl-n1w", + "lat": 40.021693, + "lng": -105.260139, + "name": "Boulder", + "phone": "+1 303-245-0086", + "region": "north-america" + }, + { + "address": "2930 Pearl St\nBoulder, CO 80301\nUnited States", + "id": "boulder-pearl", + "image": "https://lh3.googleusercontent.com/_JvBccdhLZSIxenZEubM2Qu8Eky6udmnwekH7BhjI1EUo8mCDXDHa0Z7mfNzvZtlmiXI6b6w8U-PY47oUQhPtvYazGS4mG8S61Rr", + "lat": 40.021948, + "lng": -105.253978, + "name": "Boulder \u2013 Pearl Place", + "phone": "+1 303-245-0086", + "region": "north-america" + }, + { + "address": "3333 Walnut St\nBoulder CO, 80301\nUnited States", + "id": "boulder-walnut", + "image": "https://lh3.googleusercontent.com/nGvIFmh9d2J68l-U7gYdQAqLZkLNNS_pqhNMtGopMujEpZEneMSH75NFr1WmXJC0GafDLyTVSpnqbuj5Tfjjjk889Zk23dIggqNN", + "lat": 40.01993, + "lng": -105.24936, + "name": "Boulder \u2013 Walnut", + "phone": "+1 303-245-0086", + "region": "north-america" + }, + { + "address": "Chaussee d'Etterbeek 180\n1040 Brussels\nBelgium", + "id": "brussels", + "image": "https://lh3.googleusercontent.com/Vdcj2ozYBIOyJLAhRyQic7xjw-OfQ_F5b8M9Kaom_56M2zp8UW65Lm1bYJLLEc4_U4tXfAp-CA81U2O2tdHcXPdsCEUO0hyK_SFKF-Y", + "lat": 50.839315, + "lng": 4.380984, + "name": "Brussels", + "phone": "", + "region": "europe" + }, + { + "address": "Alicia M. De Justo 350, 2nd Floor\nBuenos Aires, C1107AAH\nArgentina", + "id": "buenos-aires", + "image": "https://lh3.googleusercontent.com/08n-ZBH23cWYWAbRo7_uZ6VObzDOLdfvxiAy4vZvX2I_FBn4vlUl_qiwALWBMUp7gQ4LEkj7aW6gB_jdJWNmnsmYEKbWzNsh0EaYpw", + "lat": -34.602734, + "lng": -58.366992, + "name": "Buenos Aires", + "phone": "+54-11-5530-3000", + "region": "latin-america" + }, + { + "address": "355 Main Street\nCambridge, MA 02142\nUnited States", + "id": "cambridge", + "image": "https://lh3.googleusercontent.com/OLL4nJ-esDQ3JFh2XpWSpX8WnO69yzFpYPWIy9yL_2WFapf74z_ZYvfqb4XkF0_hT2rCi3pzN2Y-yglQ-jWMw3u89YKwn4GfdT7FfQ", + "lat": 42.362757, + "lng": -71.087109, + "name": "Cambridge", + "phone": "+1 617-575-1300", + "region": "north-america" + }, + { + "address": "200 West Franklin Street\nChapel Hill, NC 27516\nUnited States", + "id": "chapel-hill", + "image": "https://lh3.googleusercontent.com/AHShjZrvscMoWixuAd0zIXqER2wKMXtoqX4edIzur3FRLJ3DBDIAQqD6PZqB4it_ApAVyitFkjsRPER38oX6XHYOl9mxKbLCXrAQKA", + "lat": 35.912445, + "lng": -79.058488, + "name": "Chapel Hill", + "phone": "", + "region": "north-america" + }, + { + "address": "210 Carpenter Ave\nChicago, IL 60607\nUnited States", + "id": "chicago-carpenter", + "image": "https://lh3.googleusercontent.com/pgZ_JGnbpqS4P8H29c6hOCQcLXiG1EZEw5W92FKddWuUTW8618AwIho27aAFPmniDUpH_jS3mCpAx3nY6WkT46oetsFMC__SrPCUmw", + "lat": 41.88609, + "lng": -87.65333, + "name": "Chicago \u2013 Carpenter", + "phone": "", + "region": "north-america" + }, + { + "address": "320 N. Morgan, Suite 600\nChicago, IL 60607\nUnited States", + "id": "chicago-fulton", + "image": "https://lh3.googleusercontent.com/ulGqMc02YGomqRC2EN0JP7jOL-6qaIvhCq225DwyeP7b8l-H7ZTWkYDwVKHc0Z4nXEq_TBRCqqPfcc3N8WHm54XpOh16Yx73F4ng", + "lat": 41.8873457, + "lng": -87.6526874, + "name": "Chicago \u2013 Fulton Market", + "phone": "+1 312-840-4100", + "region": "north-america" + }, + { + "address": "Skt. Petri Passage 5\n1165 Copenhagen\nDenmark", + "id": "copenhagen", + "image": "https://lh3.googleusercontent.com/SNSbrYGI_ZBuCl_S8aRh63IIta895tqIUUX3ZT0FWmK7ykhJRy_HNtzoud7XrohnjnSAkuXg9YykkFZqbvkRiZQC7osXrZzGerWdmG8", + "lat": 55.680452, + "lng": 12.570071, + "name": "Copenhagen", + "phone": "+45 3370 2600", + "region": "europe" + }, + { + "address": "52 Henry St.\n3rd Floor\nDetroit, MI 48201\nUnited States", + "id": "detroit", + "image": "https://lh3.googleusercontent.com/WEP2INGXZc9vRv1ii6KDZGoRFPyumV466B3RzUwyzf8W81a7du2KGXlDEqS5g0nbOHsYTAvagFGVJskSonpt6wJWN2mVq8ti7JYPtvs", + "lat": 42.340458, + "lng": -83.054494, + "name": "Detroit", + "phone": "+1 248-593-4003", + "region": "north-america" + }, + { + "address": "TECOM Zone, Dubai Internet City\nDubai, United Arab Emirates", + "id": "dubai", + "image": "https://lh3.googleusercontent.com/xw0iylnw3b3-qxwoNzLSLJlAAPtkF1KONnIoBTDHtURr04fzH9DeO08GYvEsKYQtE9GCdOMTk_s08H6-btSquKo3moeILfc3Kpu4MA", + "lat": 25.0929, + "lng": 55.1591, + "name": "Dubai", + "phone": "+971 4 4509500", + "region": "africa-middle-east" + }, + { + "address": "Gordon House\nBarrow St\nDublin 4\nIreland", + "id": "dublin", + "image": "https://lh3.googleusercontent.com/1z3Fhr6nKlCDeTwc1KoFAMSrnywR0lb8nNdwTI1YgoKSXKIDjQeVB_I3Q8oDZuqqHtlXiUbPmfoUYyAXMObjvMxDcMeTqSY21YvP_A", + "lat": 53.3399526, + "lng": -6.2360967, + "name": "Dublin", + "phone": "", + "region": "europe" + }, + { + "address": "Taikoo Hui Tower 1, No.383 Tianhe Road\nGuangzhou, 510620\nChina", + "id": "guangzhou", + "image": "https://lh3.googleusercontent.com/BjYQfVMor1QT5hAkc7DcN6_MJdwaySHY6VJ6IY7mQGJRdXjFZhiP-t4MV_QUbp0tBeuYvuMw3nUetTiI-vFl6-BcialJhhurhFrDVeY", + "lat": 23.1339728, + "lng": 113.3332488, + "name": "Guangzhou", + "phone": "", + "region": "asia-pacific" + }, + { + "address": "Sector 15, Part II Village Silokhera\nGurgaon 122001\nIndia", + "id": "gurgaon", + "image": "https://lh3.googleusercontent.com/8plKBiWKmwllCXePad0JJ22u1GG7Qe1hveXlx_xJ87XoiQpclQubwxyGxcDU6tkatpb3oi9MYXjm2XszFi5kGn1flfTtjv6MycBWrQ", + "lat": 28.460581, + "lng": 77.048194, + "name": "Gurgaon", + "phone": "+91-12-44512900", + "region": "asia-pacific" + }, + { + "address": "Building 30\nMATAM, Advanced Technology Centre\nHaifa, 3190500\nIsrael ", + "id": "haifa", + "image": "https://lh3.googleusercontent.com/syKfT9cVMzLi0d4_DSiJztWGwcmWct6IEbpAApEFk_G8ym0xyLLxMBT484zROIOZHMSe9N1o-QQrCAqVWfKRSY6EOeJY9Qa1ftwb", + "lat": 32.78897, + "lng": 34.958432, + "name": "Haifa", + "phone": "+972-74-746-6245", + "region": "africa-middle-east" + }, + { + "address": "ABC-Strasse 19\n20354 Hamburg\nGermany", + "id": "hamburg", + "image": "https://lh3.googleusercontent.com/66R0svr2--6zNOnrqf6JbeZ-bF39bRfHpExjcTlE_AIlPEPk8jO1LjF39FUbDnJB1gh_FiRFX6aCRg4ACjYRbDqb5lf9PdV6qY4S", + "lat": 53.553752, + "lng": 9.986229, + "name": "Hamburg", + "phone": "49 40-80-81-79-000", + "region": "europe" + }, + { + "address": "1 Matheson Street\nCauseway Bay, Hong Kong", + "id": "hong-kong", + "image": "https://lh3.googleusercontent.com/-Ult8_R6TfQAk16CfjSfl6PLypQBYohUjNjE6xeeektZsrP8XwTv7PnVVE-5Ueh3I-2hPnAdRGg6XrMn9IwI7W1h5LJKtlMVe93Wfw", + "lat": 22.278203, + "lng": 114.18176, + "name": "Hong Kong", + "phone": "+852-3923-5400", + "region": "asia-pacific" + }, + { + "address": "Survey No. 13, DivyaSree Omega\nKondapur Village\nHyderabad, Telangana 500084\nIndia", + "id": "hyderabad", + "image": "https://lh3.googleusercontent.com/LAEnc0tzA-JSb5XM5oct5paX98QK9zh_aqa_qKcjAoXo2MChgOjdj_EZpgIZsVAvEY-I0bmMmhCBb5gkoVN4ebqCG9ZfjCbo_stJaw", + "lat": 17.458461, + "lng": 78.372452, + "name": "Hyderabad", + "phone": "+91-40-6619-3000", + "region": "asia-pacific" + }, + { + "address": "19510 Jamboree Road\nIrvine, CA 92612\nUnited States", + "id": "irvine", + "image": "https://lh3.googleusercontent.com/LWGkhXkRRzWnMlNy_Ps74-VTxB2ISXK0Kkick1SujTLYvNAUqo9_HR7SILSZZsiaiGWsXtx7dR5Hz9Q5psu1MWP9BHtDuGYc_hz_eg", + "lat": 33.658792, + "lng": -117.859322, + "name": "Irvine", + "phone": "+1 949-794-1600", + "region": "north-america" + }, + { + "address": "Eski Buyukdere Caddesi No: 209\n34394\nIstanbul, Turkey", + "id": "istanbul", + "image": "https://lh3.googleusercontent.com/_mdN7z1Q-9fKgpHTb1rQJosllxqn7glRJ_G2enX4WPmImuJjLHKw-JBZ8z5B9vMSo12SexGBOD1i2NHXqEy4OaOJekn0g3Fp3bDk_Q", + "lat": 41.081697, + "lng": 29.00859, + "name": "Istanbul", + "phone": "", + "region": "africa-middle-east" + }, + { + "address": "Pacific Century Place Tower Level 45 SCBD Lot 10,\nJl. Jend. Sudirman No.53,\nRT.5/RW.3, Senayan, Kby. Baru,\nKota Jakarta Selatan,\nDaerah Khusus Ibukota Jakarta 12190, \nIndonesia", + "id": "jakarta", + "image": "https://lh3.googleusercontent.com/JEaMUfOUq6bxN7jeIN1z2me5-JvlLRkrFJgf_A0GvqtOquU6Tfjg0ecKeR_Ck27L0S1zC2t_4I6nVP6pBdBtSKst7tkJEoC7LyYq", + "lat": -6.227664, + "lng": 106.808471, + "name": "Jakarta", + "phone": "", + "region": "asia-pacific" + }, + { + "address": "35 Ballyclare Drive, Building E\nJohannesburg\n2191, South Africa", + "id": "johannesburg", + "image": "https://lh3.googleusercontent.com/EDxefwSgeKyh8zN9VUUGhu3hiBqH7Z3UEOXfZeij7YnUhZLqLElu8dhi4FziOepRun-fjfwIWdf5W8CTG5ZSYMu4k8z9QZjTgjQRuQ", + "lat": -26.0734457, + "lng": 28.032035, + "name": "Johannesburg", + "phone": "", + "region": "africa-middle-east" + }, + { + "address": "777 6th Street South\nKirkland, WA\nUnited States", + "id": "kirkland", + "image": "https://lh3.googleusercontent.com/Vgmu21GQbS0pga_tJaG0_35AYOzM64Uxp-zNYyMVnd3oXFHmHeMJpx8UjcsMYdnxbdlFZ4KGFowOtpHxsNlUw8qS21sYBy9jPbqkuA", + "lat": 47.669568, + "lng": -122.196912, + "name": "Kirkland", + "phone": "+1 425-739-5600", + "region": "north-america" + }, + { + "address": "51 Breithaupt Street\nKitchener, ON N2H 5G5\nCanada", + "id": "kitchener", + "image": "https://lh3.googleusercontent.com/jUCZzQYnJXCUZ3ZxAEB14qukCV6aGxfh84hExpcpye314DhOWB4jtpUoNDrCtA2laV7qDHBAYGtIuZan9Ir5Hp6_U0B2zTGgPqsb", + "lat": 43.4541137, + "lng": -80.4992423, + "name": "Kitchener", + "phone": "+1-519-880-2300", + "region": "north-america" + }, + { + "address": "Axiata Tower\nNo. 9, Jalan Stesen Sentral 5\n50470 Kuala Lumpur\nMalaysia", + "id": "kuala-lumpur", + "image": "https://lh3.googleusercontent.com/c5kAdRoyejY1Z5i9A3hYKfIG55GrKdAc0iJjH-gYo-tWd3JUksvsfZx7LU5yzay4HJmxCQEir2cejbZ2LurYfKL_emC9e9PCDVxd", + "lat": 3.133445, + "lng": 101.684609, + "name": "Kuala Lumpur", + "phone": "", + "region": "asia-pacific" + }, + { + "address": "Avenida da Liberdade, 110\nLisbon, 1269-046, Portugal", + "id": "lisbon", + "image": "https://lh3.googleusercontent.com/py3HZVLLpxjMhRL6fgUKmHqGODp6ZH-5abQBHGqyKrCyuoW0t-q0ypNVN_jOfD3ZEO08Y9Q0m-E4ZyuNrMgl-mlaECkCAEyc7Af1", + "lat": 38.718887, + "lng": -9.143781, + "name": "Lisbon", + "phone": "+351 21 122 1803", + "region": "europe" + }, + { + "address": "6 Pancras Square\nLondon N1C 4AG\nUnited Kingdom", + "id": "london-6ps", + "image": "https://lh3.googleusercontent.com/WTxWzt3AOcEMwoT2OonLTlc63pa4V-GsYbZg5Hu7rfe9ZioMaRurkxaQ5tOcuC9nZkCyh2IjQb-xMy4Tq8ISrHjfDHmzZXnExTjP", + "lat": 51.533311, + "lng": -0.126026, + "name": "London \u2013 6PS", + "phone": "+44-20-7031-3000", + "region": "europe" + }, + { + "address": "Belgrave House\n76 Buckingham Palace Road\nLondon SW1W 9TQ\nUnited Kingdom", + "id": "london-bel", + "image": "https://lh3.googleusercontent.com/bLxZNCaDE2Fdj7woV_9JUJEUfUvTrhI57jHNEeW-OenTspzM21miwz1gGydzZ2Ke_vfRdkqdo4dyN2mJCntC2p4qvRUyipPWppAC9g", + "lat": 51.494961, + "lng": -0.146652, + "name": "London \u2013 BEL", + "phone": "+44-20-7031-3001", + "region": "europe" + }, + { + "address": "1\u201313 St Giles High St\nLondon WC2H 8AG\nUnited Kingdom", + "id": "london-csg", + "image": "https://lh3.googleusercontent.com/32nlExbSrV5rJR9Qsqfkbckn6_yd-4QRaoSDmp9JLyaZxojfl9aH1LZSrSvcsT128AUzHqkEfMhTE2miDuOu7gj-7x3Ginqr4rgowg", + "lat": 51.516027, + "lng": -0.12755, + "name": "London \u2013 CSG", + "phone": "+44 (0)20-7031-3000", + "region": "europe" + }, + { + "address": "340 Main Street\nLos Angeles, CA 90291\nUnited States", + "id": "los-angeles", + "image": "https://lh3.googleusercontent.com/MWGnaY3t_1-j7YylPpq35rvBU9gIBJIsnrtW95THrBw9N0PWrAVtbHKUBH8OdxyWI9gYdymndmSgwS8tl23GylytyefNC74i4-pniQ", + "lat": 33.995939, + "lng": -118.4766773, + "name": "Los Angeles, US", + "phone": "+1 310-310-6000", + "region": "north-america" + }, + { + "address": "811 E Washington Ave\nSuite 700\nMadison, WI 53703\nUnited States", + "id": "madison", + "image": "https://lh3.googleusercontent.com/sQDFJpbQl4EVGfdpHsw_24mxsnUNAnDs6f-00QCj0g_Z38CEqjG4PuLPoS_T6eTOPV3QXX907Kap_TkaE3cEG4fhJWIoWsZELIGyvw", + "lat": 43.081091, + "lng": -89.374619, + "name": "Madison", + "phone": "+1 608-669-9841", + "region": "north-america" + }, + { + "address": "Plaza Pablo Ruiz Picasso, I\nMadrid 28020\nSpain", + "id": "madrid", + "image": "https://lh3.googleusercontent.com/x36CdPxkwxxctp0wvDYfTjgTzNgMiZV0xoKeLMwHzdccpJGYUA6a61fSeX1_Rt-lfofMjfUwAhFxd7DbjsE8_393plkTly-T5YkpCA", + "lat": 40.4505331, + "lng": -3.6931161, + "name": "Madrid", + "phone": "+34 91-748-6400", + "region": "europe" + }, + { + "address": "161 Collins Street,\nMelbourne VIC 3000,\nAustralia", + "id": "melbourne", + "image": "https://lh3.googleusercontent.com/U_5KiB8x7T-Rrdp90ygnO1kbZxiWJz4G6CbD6_51CjH5zaMP23upWELryFOe99k_AqlPZschCY7Nx--wYufcIV54HnjGcP3lf28X1A", + "lat": -37.815328, + "lng": 144.968737, + "name": "Melbourne", + "phone": "", + "region": "asia-pacific" + }, + { + "address": "Google Mexico, S. de R.L. de C.V.\nMontes Urales 445\nLomas de Chapultepec\nMexico City 11000, Mexico", + "id": "mexico-city", + "image": "https://lh3.googleusercontent.com/P_U5ECZJ--t8khoKFxoeeJwa7PZy-3TriZbit5sRJDUdupf3NZRJegsnB4ucLqdLEV3De41fmByckDDC6uHMI82cXIFp4C1WwI1a1g", + "lat": 19.4283793, + "lng": -99.2065518, + "name": "Mexico City", + "phone": "+52 55-5342-8400", + "region": "latin-america" + }, + { + "address": "1450 Brickell Ave Ste 900 \nMiami FL 33131\nUnited States", + "id": "miami", + "image": "https://lh3.googleusercontent.com/DTk99d9bCqiCN8sFj3FBr8BdGPYC97PCYbiLbdq6GZ-_Er268DSlvfRM_g8hwA5tOmw_6c3PBjpKpuRQTuXS8H8_hpIlCQKyobyYjQ", + "lat": 25.758473, + "lng": -80.1932144, + "name": "Miami", + "phone": "+1 305-985-7900", + "region": "north-america" + }, + { + "address": "Porta Nuova Isola, Building C, Via Federico Confalonieri 4\n20124 Milan\nItaly", + "id": "milan", + "image": "https://lh3.googleusercontent.com/nZ_KE1LqNmW5qb6i-czLlm_yqRJtLmvEmyLRI0BYjqMlOiC_5VmbEI3DeHQyPOHp6PzoN2gKJ0j73BALkddFmDFXOIe9Wwctmt73cqI", + "lat": 45.486147, + "lng": 9.189546, + "name": "Milan", + "phone": "", + "region": "europe" + }, + { + "address": "1253 McGill College Avenue\nMontreal, QC H3B 2Y5\nCanada", + "id": "montreal", + "image": "https://lh3.googleusercontent.com/S310Um4pKym8bvHQcQmJLc4ohURWEq3AQHjJ-b5aMY-TpA9P4LCKcxGEg4fik-zSL6MrtiEi8Qt3JbAZl8x-GiI31wfm_myGfb3manQ", + "lat": 45.50191, + "lng": -73.570365, + "name": "Montreal", + "phone": "514-670-8700", + "region": "north-america" + }, + { + "address": "7 Balchug St\nMoscow 115035\nRussia", + "id": "moscow", + "image": "https://lh3.googleusercontent.com/i6cwRxcix3LUdviTVKoLG2Ep6q9pjfPIX_nrge-YkgjIvTgCH5QQpSI6wCpKvg0HiH56lHu6K8eAkCrPZUCzspS6Y9K19U47xr4hww", + "lat": 55.746747, + "lng": 37.626435, + "name": "Moscow", + "phone": "+7-495-644-1400", + "region": "europe" + }, + { + "address": "1600 Amphitheatre Parkway\nMountain View, CA 94043\nUnited States", + "id": "mountain-view", + "image": "https://lh3.googleusercontent.com/Mh8P8gvVwO7NOXfg8anxwPXRy5oKZJ6Cz_LbFfOVdeIsdDfogmMcMsiW7HD7HD2NOINzAPH_v8dALWSuDiiTjCjRnenI7B3l6Pg4yw", + "lat": 37.421512, + "lng": -122.084101, + "name": "Mountain View", + "phone": "", + "region": "north-america" + }, + { + "address": "3 North Avenue\nMaker Maxity, Bandra Kurla Complex\nBandra East\nMumbai, Maharashtra 400051\nIndia", + "id": "mumbai", + "image": "https://lh3.googleusercontent.com/twldrlVORn84fYsOLwNLabfRPQYX-dJAzJtpam-Ea4D7QIY1pvMa9FCMbpjUFA8uniBg6XAh8pMijf9qnjmEm4d17UFkwRGToiv5Ug", + "lat": 19.054364, + "lng": 72.850591, + "name": "Mumbai", + "phone": "+91-22-6611-7150", + "region": "asia-pacific" + }, + { + "address": "Erika-Mann-Str. 33\n80636 Munich\nGermany", + "id": "munich", + "image": "https://lh3.googleusercontent.com/sVZqxencTTD84raIgMWd5SbmXZTvQmwUzxj6IakbIGuAua5JDu-Q64uJE-cm3TYeSjKVQo7VSwIODVpwswjtrpwBUvXTa5MDFXoNAw", + "lat": 48.14305556, + "lng": 11.54083333, + "name": "Munich", + "phone": "", + "region": "europe" + }, + { + "address": "111 8th Avenue\nNew York, NY 10011\nUnited States", + "id": "new-york", + "image": "https://lh3.googleusercontent.com/BWdXxSOqBpjGFzAJVVr02QQs5XSe33dEeNDG6lXhd-nuv32ruMjD01yBJX3Rk4_xP6glB1ycMvwypEPr6YO665grfWqEEI2LPYUaMg", + "lat": 40.741445, + "lng": -74.003102, + "name": "New York", + "phone": "+1 212-565-0000", + "region": "north-america" + }, + { + "address": "Aker Brygge\nBryggegata 6\n0250 Oslo\nNorway", + "id": "oslo", + "image": "https://lh3.googleusercontent.com/lc9jPxaz4CzdC3sD4wFlzml1Y221PvtsisYGenint536WNbyIMY2cp2qnQOmnT0IWPoOCjarwMgK6zddvTcOu6YcAuaVLfQAdqZ2UQg", + "lat": 59.90987, + "lng": 10.72598, + "name": "Oslo", + "phone": "", + "region": "europe" + }, + { + "address": "8 Rue de Londres\n75009 Paris\nFrance", + "id": "paris", + "image": "https://lh3.googleusercontent.com/GHZlAB7t3toRGww1NJ6ZC2IpvR0jkgqFkQ0ZvM02dmQWt6fiHIKJZ7Eova959UD0PAapPE2r2TYMe3-dE3jGDgEoqHch0qyjAKvPENc", + "lat": 48.8771, + "lng": 2.33, + "name": "Paris", + "phone": "", + "region": "europe" + }, + { + "address": "6425 Penn Avenue\nPittsburgh, PA 15206\nUnited States", + "id": "pittsburgh", + "image": "https://lh3.googleusercontent.com/47kJwc4CR6oGOI2l_su5CJHnEWkrUZlz7LZRGXHgF71xa-0gJc8qCBhnsNoigcNEGFfBpb3y5AxVXJP_TxvHtgUgTrU8zmBm3Two7w", + "lat": 40.45716, + "lng": -79.916596, + "name": "Pittsburgh", + "phone": "+1 412-345-6700", + "region": "north-america" + }, + { + "address": "12422 W. Bluff Creek Drive\nPlaya Vista, CA 90094\nUnited States", + "id": "playa-vista", + "image": "https://lh3.googleusercontent.com/xnHVNI6bCcQxJyLV6sG3op8PlJcT9XgMAGmHrXtj5axhCZPH7Tbc9Ppjb2gTCtGbKmilT17B0dKzczOJh9JANh8Wwz0SXH0pEqCOkQ", + "lat": 33.97684, + "lng": -118.407244, + "name": "Playa Vista", + "phone": "", + "region": "north-america" + }, + { + "address": "Wells Fargo Building, 309 SW 6th Ave\nPortland, OR 97204\nUnited States", + "id": "portland", + "image": "https://lh3.googleusercontent.com/FMeFmwWFZJD02kj0H73t5v8NPrVOecVxuCl9cA-vLiXgaXErYQxmMXJKvvROgwSNvgPdmRZ4-GQuub74p0dDwJgY37vBNN2vgx7Utw", + "lat": 45.521622, + "lng": -122.677458, + "name": "Portland", + "phone": "", + "region": "north-america" + }, + { + "address": "Stroupeznickeho str. 3191/17\nPrague, Czech Republic\n150 00", + "id": "prague", + "image": "https://lh3.googleusercontent.com/jVNKH2mzDQ4Zu1-1G80-nDvLHYE9dmeetv43WG3zo7-dQWJoX1ghtXvviZHDLRG-ScqA804I2guuExY-8pkzIdkYlU28QGOB8Jkkiw", + "lat": 50.070259, + "lng": 14.402642, + "name": "Prague", + "phone": "", + "region": "europe" + }, + { + "address": "1600 Seaport Boulevard\nRedwood City, CA 94063\nUnited States", + "id": "redwood-city", + "image": "https://lh3.googleusercontent.com/a7GCRT1go5jQzEQj--A-kq98pURYsO4cTCJPj6azEev7za4Y__Kd3E_khFyn5uxRtPC0Co_ZxzQtqrlXeOSNey8fOSV4pK0ffzSW5A", + "lat": 37.512171, + "lng": -122.201178, + "name": "Redwood City", + "phone": "", + "region": "north-america" + }, + { + "address": "1875 Explorer Street \n10th Floor\nReston, VA 20190\nUnited States", + "id": "reston", + "image": "https://lh3.googleusercontent.com/4WuJCZlLflcQjsyhsGX3VSGDEVmC0Ljq291ECgVk3nN89ppnhSbdQIRI1I1-qh5YEf0Yicdc6amuqKz7oAdgLvQoNBrM9Zh3BcUwSw", + "lat": 38.958309, + "lng": -77.359795, + "name": "Reston", + "phone": "+1 202-370-5600", + "region": "north-america" + }, + { + "address": "901 Cherry Avenue\nSan Bruno, CA 94066\nUnited States", + "id": "san-bruno", + "image": "https://lh3.googleusercontent.com/zcy-Un_QDZfx7nTlImk-jCocxSUjQAQ4SS0eVdBuNRZz3Nyb5WK_2oGwYpnBEdqjIcv_b-umq_akpWBEylaEp-wXk3pj9-gu6Ko9Igs", + "lat": 37.62816, + "lng": -122.426491, + "name": "San Bruno", + "phone": "", + "region": "north-america" + }, + { + "address": "6420 Sequence Dr \nSuite 400\nSan Diego, CA 92121\nUnited States", + "id": "san-diego", + "image": "https://lh3.googleusercontent.com/RgGUUE3ra1j-mQIH8vp6an37hlwduD8uVnaCv8ivo5mX6ekdnZYd0-hlQ1hpQzV0ZgPk7y8h60oWy5MK5VF48ozZMYRXnh1ddJjuVGo", + "lat": 32.90961, + "lng": -117.181899, + "name": "San Diego", + "phone": "+1 858-239-4000", + "region": "north-america" + }, + { + "address": "345 Spear Street\nSan Francisco, CA 94105\nUnited States", + "id": "san-francisco", + "image": "https://lh3.googleusercontent.com/OC_0_XdXLar-ytOETAv3uwRGfnLABSRu66hqLQpLrwIhqInPD6ccdZSEu_d5S8wmjc1knb9OM7yNh2K7hoGznvKZOgFlvrxJesd7mQ", + "lat": 37.789972, + "lng": -122.390013, + "name": "San Francisco", + "phone": "+1 415-736-0000", + "region": "north-america" + }, + { + "address": "Costanera Sur Rio 2730 \nLas Condes, Santiago\nChile", + "id": "santiago", + "image": "https://lh3.googleusercontent.com/KrMbZzxFsAcNmYg8BQL_qBAekN1bNNJGo1aar8nkFhYXYDYOBmwJc2x1XElkDdIqLdedU5V7QKTGxXne8-f-qAW_bOy1FUqmJ8JM", + "lat": -33.413383, + "lng": -70.605665, + "name": "Santiago", + "phone": "", + "region": "latin-america" + }, + { + "address": "Av. Brigadeiro Faria Lima, 3477 \nS\u00e3o Paulo\n04538-133, Brazil", + "id": "sao-paulo", + "image": "https://lh3.googleusercontent.com/MwcGyEZBKkmoycVLcpl_U3gdIJBoWDU8u2kUNq57DmZVkWDyraoaZyQC0HOiFQvNHjVugEiVTWsy-poAsNfDLoSkJ5RoTBi1Hpd4GcI", + "lat": -23.586479, + "lng": -46.682078, + "name": "Sao Paulo", + "phone": "", + "region": "latin-america" + }, + { + "address": "601 N. 34th Street\nSeattle, WA 98103\nUnited States", + "id": "seattle", + "image": "https://lh3.googleusercontent.com/pNaRyPV3SkqsVvmdmN0sC-viBupr-41tZM3_cpSNH_3Zdy826gIhM0zHfoowA6SCkcsOkUxDvJ8wG5CodorohisOgR9q_QE7wH1ua-M", + "lat": 47.649316, + "lng": -122.350629, + "name": "Seattle", + "phone": "+1 206-876-1800", + "region": "north-america" + }, + { + "address": "Google Korea LLC.\n22nd Floor, Gangnam Finance Centre\n152 Teheran-ro, Gangnam-gu\nSeoul 06236\nSouth Korea", + "id": "seoul", + "image": "https://lh3.googleusercontent.com/i8rfvJIUNpLBkmWWSoetUzFGHUd_RaulLh8F3EHme3FMTUtDs8EVWsrFLuaemh1Zd60p5ndCcKq8-ZQN8eibbua-YNzlzQ8AKtHFzrQ", + "lat": 37.500295, + "lng": 127.036843, + "name": "Seoul", + "phone": "+82-2-531-9000", + "region": "asia-pacific" + }, + { + "address": "100 Century Avenue, Pudong\nShanghai 200120\nChina", + "id": "shanghai", + "image": "https://lh3.googleusercontent.com/wFCKLAJvrAoE_GiXqRNa0w4Rsr0iY_SyMGbO2jnIhLXGanYs1c5_BPE8TxQJw-e14uaLDHjY772V-Vv-Kf3GmrIRSlHjoV9yD339wRQ", + "lat": 31.23464, + "lng": 121.507662, + "name": "Shanghai", + "phone": "+86-21-6133-7666", + "region": "asia-pacific" + }, + { + "address": "70 Pasir Panjang Road, #03-71, \nMapletree Business City \nSingapore 117371", + "id": "singapore", + "image": "https://lh3.googleusercontent.com/--5H57B8aG4-DX9s79Spo3ygrsI9NMFnZo1uTZzs5s5AeeOvmiy81k__tu9r7JbRTTLzryK-oUy0UREclmD_qfV81VvaT4K9jJa8gg", + "lat": 1.276466, + "lng": 103.798965, + "name": "Singapore", + "phone": "+65 6521-8000", + "region": "asia-pacific" + }, + { + "address": "Kungsbron 2 \n111 22 Stockholm\nSweden", + "id": "stockholm", + "image": "https://lh3.googleusercontent.com/Q2016qdodQKowCyzfN14RLYERc2IplyM2FzJvj0kzbW4eLXnIxoFF1eZMc_CwtodxbpyfhfebUrawHtIgFb2kh9-EQnhcaHXpV0Fnw", + "lat": 59.333432, + "lng": 18.054619, + "name": "Stockholm", + "phone": "", + "region": "europe" + }, + { + "address": "803 11th Avenue\nSunnyvale, CA 94089\nUnited States", + "id": "sunnyvale", + "image": "https://lh3.googleusercontent.com/xd1Z3wr4cee9gtKQSnrOd-NWjc6UTwpwngElt4pkqukzOf-l0hrgQuRRBzvSjqmF4w1ZAHR1I12grFa5Zhqd9-7dKUitPtpMg51Zrf8", + "lat": 37.403694, + "lng": -122.031583, + "name": "Sunnyvale", + "phone": "", + "region": "north-america" + }, + { + "address": "48 Pirrama Road\nSydney, NSW 2009\nAustralia ", + "id": "sydney", + "image": "https://lh3.googleusercontent.com/03Hp4ZwQHs_rWLEWQtrOc62hEHzffD_uoZFCbo56eoeLyZ3L89-Fy5Dd8WcmrGFGK31QC_hZqzuU7f9QhxqjckE7BSLo_arwWjCH1w", + "lat": -33.866638, + "lng": 151.195672, + "name": "Sydney", + "phone": "+61 2 9374 4000", + "region": "asia-pacific" + }, + { + "address": "No. 7 XinYi Road Section 5, Taipei\nTaiwan", + "id": "taipei", + "image": "https://lh3.googleusercontent.com/h19TQz36F4jY_ZfQxuP5F-THZbl4nAIGz473uFfLqzD_6kpw-r3b6M_Wbna5QvvymqZ-wdnhkLCRt63Pypnc9GyawNqMlQwM1_BYbg", + "lat": 25.033447, + "lng": 121.564901, + "name": "Taipei", + "phone": "+886 2 8729 6000", + "region": "asia-pacific" + }, + { + "address": "Yigal Alon 98\nTel Aviv, 6789141\nIsrael ", + "id": "tel-aviv", + "image": "https://lh3.googleusercontent.com/BZxU1dJCWFmtVeBqVYFC8SmSzX4CCzO5eedosW1s7sv2b2HoKwEno15vICfeQdsc_BGIaysKb8VyF64IB9hbFzMZ_MlQDJhP7kfF", + "lat": 32.070043, + "lng": 34.794087, + "name": "Tel Aviv", + "phone": "+972-74-746-6453", + "region": "africa-middle-east" + }, + { + "address": "Roppongi Hills Mori Tower\n6-10-1 Roppongi\nMinato-ku, Tokyo 106-6126\nJapan", + "id": "tokyo-rpg", + "image": "https://lh3.googleusercontent.com/i7PqriAmbeqB7KQ4h_8K0T60DD-oAoz7bvvjlB4vx2267l9QHfKBHb7WUMSutYd88Xu4TRwWqIquL05bYcpTyU_58gWp8Ja2Xo2zOfM", + "lat": 35.66047, + "lng": 139.729231, + "name": "Tokyo \u2013 RPG", + "phone": "+81-3-6384-9000", + "region": "asia-pacific" + }, + { + "address": "Shibuya Stream\n3-21-3 Shibuya\nShibuya-ku, Tokyo 150-0002\nJapan", + "id": "tokyo-strm", + "image": "https://lh3.googleusercontent.com/GzaUJcEqlixelFX8dg1qcLPwAb4RpEXr3JMxyxpgSTWL17Gso_aq3NeMtQPES7f_JdIrGr9YTBSt08XgNAeoLSkxr3Ue_J0cW3VMCw", + "lat": 35.6572564, + "lng": 139.7028246, + "name": "Tokyo \u2013 STRM", + "phone": "+81-3-6384-9000", + "region": "asia-pacific" + }, + { + "address": "111 Richmond Street West\nToronto, ON M5H 2G4\nCanada", + "id": "toronto", + "image": "https://lh3.googleusercontent.com/vZUQcWL3r_bsHBRP-Z0XfhMxjlSAAe9sZLlw5rbBzqsM6w-WVjnTZGaw3w-PkqkhHPy0x-2Xzg_gishFkVjn5r3epKifwhmRc741", + "lat": 43.650477, + "lng": -79.383858, + "name": "Toronto", + "phone": "416-915-8200", + "region": "north-america" + }, + { + "address": "Graben 19\n1010 Wien\nAustria", + "id": "vienna", + "image": "https://lh3.googleusercontent.com/roYQN_TnYd_fP0FCdZxA6lMLbp-h7PyPlDBKwVdfVWKkOCxmLjFHqm-n7hrcakcXHS1FzjXW5XWF_MApzuGIrvy2cewCYd7Z9q5MUw", + "lat": 48.209351, + "lng": 16.368419, + "name": "Vienna", + "phone": "", + "region": "europe" + }, + { + "address": "Emilii Plater 53\n00-113 Warsaw\nPoland ", + "id": "warsaw", + "image": "https://lh3.googleusercontent.com/jTf0m2s5A2qS25ArE3x6Tl1KXtpv3JmHIfcBuw7f-JHsTR0tMiyUVeHO1wBeJ2eEGcAWUbTe3b9B8iP8wyL-TROS5zxmMofMHsnf", + "lat": 52.233448, + "lng": 21.001668, + "name": "Warsaw", + "phone": "+48 22 207 19 00", + "region": "europe" + }, + { + "address": "25 Massachusetts Avenue\nWashington DC, 20001\nUnited States", + "id": "washington-dc", + "image": "https://lh3.googleusercontent.com/6rKu8CCH6nMVKjwpnxDlgf_Sdlc7jk83QBVhoLikzEyibYTZkvNPn-QPCJTv3AkjUYf2dHcE15UvPsrg18xNd4R8_eg3b-yn01yXgQ", + "lat": 38.898337, + "lng": -77.010286, + "name": "Washington DC", + "phone": " (202) 346-1100", + "region": "north-america" + }, + { + "address": "Gen. Jozefa Bema nr 2\n50-265 Wroclaw\nPoland", + "id": "wroclaw", + "image": "https://lh3.googleusercontent.com/Or6dY4MCUCbMnDv4kG8J7u-QTsWhvbqbAbMN9Vp38aJAS7ec7A39gYddcEGbrwd_veFeZo2phypqc1ABk20PZ9jCVxZfuNGYS7j3LDc", + "lat": 51.117687, + "lng": 17.041737, + "name": "Wroclaw", + "phone": "+48 (71) 73 41 000", + "region": "europe" + }, + { + "address": "Brandschenkestrasse 110\n8002 Z\u00fcrich\nSwitzerland", + "id": "zurich", + "image": "https://lh3.googleusercontent.com/kmEsDEYzbMlluwDPYkeEEBpAvL9MJbXZR3hD3uettOqE8T7lbXvV508j4d4QngB7iwYZa8YYlXiVnGWfZ4ZvTJbputGXsfxrLGhD3tI", + "lat": 47.365063, + "lng": 8.524425, + "name": "Zurich", + "phone": "+41 44 668 18 00", + "region": "europe" + } + ], + "regions": [ + { + "coords": { + "lat": 2.9660291, + "lng": 1.3271339 + }, + "id": "africa-middle-east", + "name": "Africa & Middle East", + "zoom": 3.0 + }, + { + "coords": { + "lat": 0.0524811, + "lng": 127.6560787 + }, + "id": "asia-pacific", + "name": "Asia Pacific", + "zoom": 3.0 + }, + { + "coords": { + "lat": 46.1352815, + "lng": 7.4033438 + }, + "id": "europe", + "name": "Europe", + "zoom": 4.0 + }, + { + "coords": { + "lat": -17.5554497, + "lng": -99.2316195 + }, + "id": "latin-america", + "name": "Latin America", + "zoom": 3.0 + }, + { + "coords": { + "lat": 45.7128252, + "lng": -97.1547448 + }, + "id": "north-america", + "name": "North America", + "zoom": 4.0 + } + ] +} diff --git a/google_maps/ios/.gitignore b/google_maps/ios/.gitignore new file mode 100644 index 000000000..7a7f9873a --- /dev/null +++ b/google_maps/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/google_maps/ios/Flutter/AppFrameworkInfo.plist b/google_maps/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 000000000..9625e105d --- /dev/null +++ b/google_maps/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/google_maps/ios/Flutter/Debug.xcconfig b/google_maps/ios/Flutter/Debug.xcconfig new file mode 100644 index 000000000..ec97fc6f3 --- /dev/null +++ b/google_maps/ios/Flutter/Debug.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" +#include "Generated.xcconfig" diff --git a/google_maps/ios/Flutter/Release.xcconfig b/google_maps/ios/Flutter/Release.xcconfig new file mode 100644 index 000000000..c4855bfe2 --- /dev/null +++ b/google_maps/ios/Flutter/Release.xcconfig @@ -0,0 +1,2 @@ +#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" +#include "Generated.xcconfig" diff --git a/google_maps/ios/Podfile b/google_maps/ios/Podfile new file mode 100644 index 000000000..86a8a4b9d --- /dev/null +++ b/google_maps/ios/Podfile @@ -0,0 +1,41 @@ +# Google Maps SDK requires platform version 13 +platform :ios, '13.0' + +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. +ENV['COCOAPODS_DISABLE_STATS'] = 'true' + +project 'Runner', { + 'Debug' => :debug, + 'Profile' => :release, + 'Release' => :release, +} + +def flutter_root + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) + unless File.exist?(generated_xcode_build_settings_path) + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" + end + + File.foreach(generated_xcode_build_settings_path) do |line| + matches = line.match(/FLUTTER_ROOT\=(.*)/) + return matches[1].strip if matches + end + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" +end + +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) + +flutter_ios_podfile_setup + +target 'Runner' do + use_frameworks! + use_modular_headers! + + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) +end + +post_install do |installer| + installer.pods_project.targets.each do |target| + flutter_additional_ios_build_settings(target) + end +end diff --git a/google_maps/ios/Runner.xcodeproj/project.pbxproj b/google_maps/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 000000000..b702779a0 --- /dev/null +++ b/google_maps/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,551 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 7616842171F8B2591E077EE5 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4ECEA7648C7D20094E023750 /* Pods_Runner.framework */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 0A226A01B64205FAEDE3FA05 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 20FA5C4C1A42FDD96EB0B855 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 4ECEA7648C7D20094E023750 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 624164245F0CCBBCE8156C38 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7616842171F8B2591E077EE5 /* Pods_Runner.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 44AAF079C3DB77FC1F61BC96 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 4ECEA7648C7D20094E023750 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 563ED8F6F3A15841B9974AFE /* Pods */ = { + isa = PBXGroup; + children = ( + 20FA5C4C1A42FDD96EB0B855 /* Pods-Runner.debug.xcconfig */, + 624164245F0CCBBCE8156C38 /* Pods-Runner.release.xcconfig */, + 0A226A01B64205FAEDE3FA05 /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 563ED8F6F3A15841B9974AFE /* Pods */, + 44AAF079C3DB77FC1F61BC96 /* Frameworks */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 78182010A5BB8ACDC157B661 /* [CP] Check Pods Manifest.lock */, + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 4F28FC32511692FB285FCC6B /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 4F28FC32511692FB285FCC6B /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 78182010A5BB8ACDC157B661 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.googleMapsInFlutter; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.googleMapsInFlutter; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.googleMapsInFlutter; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/google_maps/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/google_maps/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/google_maps/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/google_maps/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/google_maps/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/google_maps/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/google_maps/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/google_maps/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..f9b0d7c5e --- /dev/null +++ b/google_maps/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/google_maps/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/google_maps/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 000000000..c87d15a33 --- /dev/null +++ b/google_maps/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/google_maps/ios/Runner.xcworkspace/contents.xcworkspacedata b/google_maps/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..21a3cc14c --- /dev/null +++ b/google_maps/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/google_maps/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/google_maps/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/google_maps/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/google_maps/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/google_maps/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..f9b0d7c5e --- /dev/null +++ b/google_maps/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/google_maps/ios/Runner/AppDelegate.swift b/google_maps/ios/Runner/AppDelegate.swift new file mode 100644 index 000000000..fc796444c --- /dev/null +++ b/google_maps/ios/Runner/AppDelegate.swift @@ -0,0 +1,18 @@ +import UIKit +import Flutter +import GoogleMaps + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + + // TODO: Add your Google Maps API key + GMSServices.provideAPIKey("AIzaSyBFVI6nt-1Yn_lFYWMidyqUk8ca0eE1Sv8") + + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..d36b1fab2 --- /dev/null +++ b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 000000000..dc9ada472 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png new file mode 100644 index 000000000..28c6bf030 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png new file mode 100644 index 000000000..2ccbfd967 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 000000000..f091b6b0b Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 000000000..4cde12118 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 000000000..d0ef06e7e Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png new file mode 100644 index 000000000..dcdc2306c Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 000000000..2ccbfd967 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 000000000..c8f9ed8f5 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 000000000..a6d6b8609 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 000000000..a6d6b8609 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 000000000..75b2d164a Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 000000000..c4df70d39 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 000000000..6a84f41e1 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 000000000..d0e1f5853 Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 000000000..0bedcf2fd --- /dev/null +++ b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 000000000..9da19eaca Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 000000000..9da19eaca Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 000000000..9da19eaca Binary files /dev/null and b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png differ diff --git a/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 000000000..89c2725b7 --- /dev/null +++ b/google_maps/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +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. \ No newline at end of file diff --git a/google_maps/ios/Runner/Base.lproj/LaunchScreen.storyboard b/google_maps/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 000000000..f2e259c7c --- /dev/null +++ b/google_maps/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/google_maps/ios/Runner/Base.lproj/Main.storyboard b/google_maps/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 000000000..f3c28516f --- /dev/null +++ b/google_maps/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/google_maps/ios/Runner/Info.plist b/google_maps/ios/Runner/Info.plist new file mode 100644 index 000000000..3d7ffa12c --- /dev/null +++ b/google_maps/ios/Runner/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Google Maps In Flutter + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + google_maps_in_flutter + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/google_maps/ios/Runner/Runner-Bridging-Header.h b/google_maps/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 000000000..308a2a560 --- /dev/null +++ b/google_maps/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/google_maps/lib/main.dart b/google_maps/lib/main.dart new file mode 100644 index 000000000..2dd334417 --- /dev/null +++ b/google_maps/lib/main.dart @@ -0,0 +1,62 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import 'package:flutter/material.dart'; +import 'package:google_maps_flutter/google_maps_flutter.dart'; + +void main() => runApp(const MyApp()); + +class MyApp extends StatefulWidget { + const MyApp({super.key}); + + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + late GoogleMapController mapController; + + final LatLng _center = const LatLng(-33.86, 151.20); + + void _onMapCreated(GoogleMapController controller) { + mapController = controller; + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('Sydney'), + backgroundColor: Colors.green[700], + ), + body: GoogleMap( + onMapCreated: _onMapCreated, + initialCameraPosition: CameraPosition( + target: _center, + zoom: 11.0, + ), + markers: { + // ignore: prefer_const_constructors + Marker( + markerId: const MarkerId('Sydney'), + position: const LatLng(-33.86, 151.20), + ) + }), + ), + ); + } +} diff --git a/google_maps/lib/src/locations.dart b/google_maps/lib/src/locations.dart new file mode 100644 index 000000000..8b36f9344 --- /dev/null +++ b/google_maps/lib/src/locations.dart @@ -0,0 +1,121 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import 'dart:convert'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart' show rootBundle; +import 'package:http/http.dart' as http; +import 'package:json_annotation/json_annotation.dart'; + +part 'locations.g.dart'; + +@JsonSerializable() +class LatLng { + LatLng({ + required this.lat, + required this.lng, + }); + + factory LatLng.fromJson(Map json) => _$LatLngFromJson(json); + Map toJson() => _$LatLngToJson(this); + + final double lat; + final double lng; +} + +@JsonSerializable() +class Region { + Region({ + required this.coords, + required this.id, + required this.name, + required this.zoom, + }); + + factory Region.fromJson(Map json) => _$RegionFromJson(json); + Map toJson() => _$RegionToJson(this); + + final LatLng coords; + final String id; + final String name; + final double zoom; +} + +@JsonSerializable() +class Office { + Office({ + required this.address, + required this.id, + required this.image, + required this.lat, + required this.lng, + required this.name, + required this.phone, + required this.region, + }); + + factory Office.fromJson(Map json) => _$OfficeFromJson(json); + Map toJson() => _$OfficeToJson(this); + + final String address; + final String id; + final String image; + final double lat; + final double lng; + final String name; + final String phone; + final String region; +} + +@JsonSerializable() +class Locations { + Locations({ + required this.offices, + required this.regions, + }); + + factory Locations.fromJson(Map json) => + _$LocationsFromJson(json); + Map toJson() => _$LocationsToJson(this); + + final List offices; + final List regions; +} + +Future getGoogleOffices() async { + const googleLocationsURL = 'https://about.google/static/data/locations.json'; + + // Retrieve the locations of Google offices + try { + final response = await http.get(Uri.parse(googleLocationsURL)); + if (response.statusCode == 200) { + return Locations.fromJson( + json.decode(response.body) as Map); + } + } catch (e) { + if (kDebugMode) { + print(e); + } + } + + // Fallback for when the above HTTP request fails. + return Locations.fromJson( + json.decode( + await rootBundle.loadString('assets/locations.json'), + ) as Map, + ); +} diff --git a/google_maps/lib/src/locations.g.dart b/google_maps/lib/src/locations.g.dart new file mode 100644 index 000000000..64cd86d81 --- /dev/null +++ b/google_maps/lib/src/locations.g.dart @@ -0,0 +1,83 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'locations.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +LatLng _$LatLngFromJson(Map json) => LatLng( + lat: (json['lat'] as num).toDouble(), + lng: (json['lng'] as num).toDouble(), + ); + +Map _$LatLngToJson(LatLng instance) => { + 'lat': instance.lat, + 'lng': instance.lng, + }; + +Region _$RegionFromJson(Map json) => Region( + coords: LatLng.fromJson(json['coords'] as Map), + id: json['id'] as String, + name: json['name'] as String, + zoom: (json['zoom'] as num).toDouble(), + ); + +Map _$RegionToJson(Region instance) => { + 'coords': instance.coords, + 'id': instance.id, + 'name': instance.name, + 'zoom': instance.zoom, + }; + +Office _$OfficeFromJson(Map json) => Office( + address: json['address'] as String, + id: json['id'] as String, + image: json['image'] as String, + lat: (json['lat'] as num).toDouble(), + lng: (json['lng'] as num).toDouble(), + name: json['name'] as String, + phone: json['phone'] as String, + region: json['region'] as String, + ); + +Map _$OfficeToJson(Office instance) => { + 'address': instance.address, + 'id': instance.id, + 'image': instance.image, + 'lat': instance.lat, + 'lng': instance.lng, + 'name': instance.name, + 'phone': instance.phone, + 'region': instance.region, + }; + +Locations _$LocationsFromJson(Map json) => Locations( + offices: (json['offices'] as List) + .map((e) => Office.fromJson(e as Map)) + .toList(), + regions: (json['regions'] as List) + .map((e) => Region.fromJson(e as Map)) + .toList(), + ); + +Map _$LocationsToJson(Locations instance) => { + 'offices': instance.offices, + 'regions': instance.regions, + }; diff --git a/google_maps/pubspec.yaml b/google_maps/pubspec.yaml new file mode 100644 index 000000000..f464c0eb7 --- /dev/null +++ b/google_maps/pubspec.yaml @@ -0,0 +1,26 @@ +name: google_maps_in_flutter +description: A new Flutter project. +publish_to: 'none' +version: 1.0.0+1 +environment: + sdk: '>=2.19.0 <3.0.0' +dependencies: + flutter: + sdk: flutter + cupertino_icons: ^1.0.2 + google_maps_flutter: ^2.2.1 + google_maps_flutter_web: ^0.4.0+3 + http: ^0.13.5 + json_annotation: ^4.7.0 + json_serializable: ^6.5.4 +dev_dependencies: + analysis_defaults: + path: ../analysis_defaults + flutter_test: + sdk: flutter + flutter_lints: ^2.0.0 + build_runner: ^2.3.2 +flutter: + uses-material-design: true + assets: + - assets/locations.json diff --git a/google_maps/test/widget_test.dart b/google_maps/test/widget_test.dart new file mode 100644 index 000000000..f70631097 --- /dev/null +++ b/google_maps/test/widget_test.dart @@ -0,0 +1,26 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import 'package:flutter_test/flutter_test.dart'; + +import 'package:google_maps_in_flutter/main.dart'; + +void main() { + testWidgets('Do nothing test', (tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + }); +} diff --git a/google_maps/web/favicon.png b/google_maps/web/favicon.png new file mode 100644 index 000000000..8aaa46ac1 Binary files /dev/null and b/google_maps/web/favicon.png differ diff --git a/google_maps/web/icons/Icon-192.png b/google_maps/web/icons/Icon-192.png new file mode 100644 index 000000000..b749bfef0 Binary files /dev/null and b/google_maps/web/icons/Icon-192.png differ diff --git a/google_maps/web/icons/Icon-512.png b/google_maps/web/icons/Icon-512.png new file mode 100644 index 000000000..88cfd48df Binary files /dev/null and b/google_maps/web/icons/Icon-512.png differ diff --git a/google_maps/web/icons/Icon-maskable-192.png b/google_maps/web/icons/Icon-maskable-192.png new file mode 100644 index 000000000..eb9b4d76e Binary files /dev/null and b/google_maps/web/icons/Icon-maskable-192.png differ diff --git a/google_maps/web/icons/Icon-maskable-512.png b/google_maps/web/icons/Icon-maskable-512.png new file mode 100644 index 000000000..d69c56691 Binary files /dev/null and b/google_maps/web/icons/Icon-maskable-512.png differ diff --git a/google_maps/web/index.html b/google_maps/web/index.html new file mode 100644 index 000000000..a0acd9e6a --- /dev/null +++ b/google_maps/web/index.html @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + google_maps_in_flutter + + + + + + + + + + diff --git a/google_maps/web/manifest.json b/google_maps/web/manifest.json new file mode 100644 index 000000000..44ae8337f --- /dev/null +++ b/google_maps/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "google_maps_in_flutter", + "short_name": "google_maps_in_flutter", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/tool/flutter_ci_script_beta.sh b/tool/flutter_ci_script_beta.sh index a17deede5..413b6f231 100755 --- a/tool/flutter_ci_script_beta.sh +++ b/tool/flutter_ci_script_beta.sh @@ -41,6 +41,7 @@ declare -ar PROJECT_NAMES=( "flutter_maps_firestore" "form_app" "game_template" + "google_maps" "infinite_list" "ios_app_clip" "isolate_example" diff --git a/tool/flutter_ci_script_master.sh b/tool/flutter_ci_script_master.sh index 7a8cb7edf..5189530f0 100755 --- a/tool/flutter_ci_script_master.sh +++ b/tool/flutter_ci_script_master.sh @@ -41,6 +41,7 @@ declare -ar PROJECT_NAMES=( "flutter_maps_firestore" "form_app" "game_template" + "google_maps" "infinite_list" "ios_app_clip" "isolate_example" diff --git a/tool/flutter_ci_script_stable.sh b/tool/flutter_ci_script_stable.sh index b14f38927..9414afa4f 100755 --- a/tool/flutter_ci_script_stable.sh +++ b/tool/flutter_ci_script_stable.sh @@ -37,6 +37,7 @@ declare -ar PROJECT_NAMES=( "flutter_maps_firestore" "form_app" "game_template" + "google_maps" "infinite_list" "ios_app_clip" "isolate_example"