All Projects → 2amigos → Yii2 Google Maps Library

2amigos / Yii2 Google Maps Library

Licence: bsd-3-clause
Google Maps API library for Yii2

Projects that are alternatives of or similar to Yii2 Google Maps Library

Vehicle In Motion
This is a basic implementation of location listener using Google Maps Api
Stars: ✭ 339 (+225.96%)
Mutual labels:  google, maps
Mappa
A canvas wrapper for Maps 🗺 🌍
Stars: ✭ 290 (+178.85%)
Mutual labels:  google, maps
Placepicker
Free Android Map Place Picker alternative using Geocoder instead of Google APIs
Stars: ✭ 126 (+21.15%)
Mutual labels:  google, maps
Caranimation
A sample project about car animation in a route
Stars: ✭ 55 (-47.12%)
Mutual labels:  google, maps
Leku
🌍 Map location picker component for Android. Based on Google Maps. An alternative to Google Place Picker.
Stars: ✭ 612 (+488.46%)
Mutual labels:  google, maps
Gmscore
Free implementation of Play Services
Stars: ✭ 4,356 (+4088.46%)
Mutual labels:  google, maps
Google Maps Services Js
Node.js client library for Google Maps API Web Services
Stars: ✭ 2,432 (+2238.46%)
Mutual labels:  google, maps
Google Map React
Google map library for react that allows rendering components as markers 🎉
Stars: ✭ 5,529 (+5216.35%)
Mutual labels:  google, maps
Sketch Map Generator
Sketch plugin to fill a shape with a map generated from a given location using Google Maps and Mapbox
Stars: ✭ 824 (+692.31%)
Mutual labels:  google, maps
React Native Streetview
React Native Google's Panorama/StreetView component for iOS and Android.
Stars: ✭ 79 (-24.04%)
Mutual labels:  google, maps
Firebase
[DEPRECATED] Unofficial Carthage support for Firebase libraries
Stars: ✭ 99 (-4.81%)
Mutual labels:  google
Searchconsoler
R interface with Google Search Console API v3, including Search Analytics.
Stars: ✭ 99 (-4.81%)
Mutual labels:  google
Yiifeed
Pre-moderated news aggregator
Stars: ✭ 100 (-3.85%)
Mutual labels:  yii
Complete Google Map Api Tutorial
Learn How to use Google Map API for Android from Basic to Advance with complete examples.
Stars: ✭ 104 (+0%)
Mutual labels:  maps
Yii2 Openapi
REST API application generator for Yii2, openapi 3.0 YAML -> Yii2
Stars: ✭ 99 (-4.81%)
Mutual labels:  yii
Admin
Admin pack (actions, widgets, etc) for Yii2
Stars: ✭ 100 (-3.85%)
Mutual labels:  yii
Pixelslide
A up/down expand arrow anim sample likes Pixel Launcher.
Stars: ✭ 98 (-5.77%)
Mutual labels:  google
Php Google Contacts V3 Api
👥 PHP library for the Google Contacts API (v3)
Stars: ✭ 97 (-6.73%)
Mutual labels:  google
Yeeki
Yii 1.1-based wiki
Stars: ✭ 96 (-7.69%)
Mutual labels:  yii
Ampify
Convert your HTML to Google AMP (Accelerated Mobile Pages)
Stars: ✭ 104 (+0%)
Mutual labels:  google

yii2-google-maps-library

Google Maps API library for Yii2

Latest Stable Version Total Downloads Latest Unstable Version License

Introduction

Even though we already created an extension to display maps that are away from Google's policies and works with LeafLetJs library, we still received requests to have EGMap extension for Yii1 updated. So we thought that we should update this library and make it work with Yii2 if we were to update it. Thats the reason behind the creation of this extension.

Nevertheless, it is important to note that we didn't have time (yet) to write any good documentation about it. We wanted to publish it already, just in case somebody working with Yii2 was missing the EGMap library for its projects, and wishes to update us with its tests and bug findings.

The github repository will keep being updated, and documentation well written for its usage. So please, do not be impatient. If you do, any help will be highly appreciated.

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require "2amigos/yii2-google-maps-library" "*"

or add

"2amigos/yii2-google-maps-library" : "*"

to the require section of your application's composer.json file.

Usage

Even though there will be plenty of examples on how to use it, here is one that will provide you with a glimpse of its usage:

Service

use dosamigos\google\maps\LatLng;
use dosamigos\google\maps\services\DirectionsWayPoint;
use dosamigos\google\maps\services\TravelMode;
use dosamigos\google\maps\overlays\PolylineOptions;
use dosamigos\google\maps\services\DirectionsRenderer;
use dosamigos\google\maps\services\DirectionsService;
use dosamigos\google\maps\overlays\InfoWindow;
use dosamigos\google\maps\overlays\Marker;
use dosamigos\google\maps\Map;
use dosamigos\google\maps\services\DirectionsRequest;
use dosamigos\google\maps\overlays\Polygon;
use dosamigos\google\maps\layers\BicyclingLayer;

$coord = new LatLng(['lat' => 39.720089311812094, 'lng' => 2.91165944519042]);
$map = new Map([
    'center' => $coord,
    'zoom' => 14,
]);

// lets use the directions renderer
$home = new LatLng(['lat' => 39.720991014764536, 'lng' => 2.911801719665541]);
$school = new LatLng(['lat' => 39.719456079114956, 'lng' => 2.8979293346405166]);
$santo_domingo = new LatLng(['lat' => 39.72118906848983, 'lng' => 2.907628202438368]);

// setup just one waypoint (Google allows a max of 8)
$waypoints = [
    new DirectionsWayPoint(['location' => $santo_domingo])
];

$directionsRequest = new DirectionsRequest([
    'origin' => $home,
    'destination' => $school,
    'waypoints' => $waypoints,
    'travelMode' => TravelMode::DRIVING
]);

// Lets configure the polyline that renders the direction
$polylineOptions = new PolylineOptions([
    'strokeColor' => '#FFAA00',
    'draggable' => true
]);

// Now the renderer
$directionsRenderer = new DirectionsRenderer([
    'map' => $map->getName(),
    'polylineOptions' => $polylineOptions
]);

// Finally the directions service
$directionsService = new DirectionsService([
    'directionsRenderer' => $directionsRenderer,
    'directionsRequest' => $directionsRequest
]);

// Thats it, append the resulting script to the map
$map->appendScript($directionsService->getJs());

// Lets add a marker now
$marker = new Marker([
    'position' => $coord,
    'title' => 'My Home Town',
]);

// Provide a shared InfoWindow to the marker
$marker->attachInfoWindow(
    new InfoWindow([
        'content' => '<p>This is my super cool content</p>'
    ])
);

// Add marker to the map
$map->addOverlay($marker);

// Now lets write a polygon
$coords = [
    new LatLng(['lat' => 25.774252, 'lng' => -80.190262]),
    new LatLng(['lat' => 18.466465, 'lng' => -66.118292]),
    new LatLng(['lat' => 32.321384, 'lng' => -64.75737]),
    new LatLng(['lat' => 25.774252, 'lng' => -80.190262])
];

$polygon = new Polygon([
    'paths' => $coords
]);

// Add a shared info window
$polygon->attachInfoWindow(new InfoWindow([
        'content' => '<p>This is my super cool Polygon</p>'
    ]));

// Add it now to the map
$map->addOverlay($polygon);


// Lets show the BicyclingLayer :)
$bikeLayer = new BicyclingLayer(['map' => $map->getName()]);

// Append its resulting script
$map->appendScript($bikeLayer->getJs());

// Display the map -finally :)
echo $map->display();

Client

use dosamigos\google\maps\services\DirectionsClient;

$direction = new DirectionsClient([
    'params' => [
        'language' => Yii::$app->language,
        'origin' => 'street from',
        'destination' => 'street to'
    ]
]);

$data = $direction->lookup(); //get data from google.maps API

This extension has also a plugin architecture that allow us to enhance it, so expect plugins to be developed in near future too.

Configuration

To configure the Google Map key or other options like language, version, library, use the Asset Bundle customization feature.

'components' => [
    'assetManager' => [
        'bundles' => [
            'dosamigos\google\maps\MapAsset' => [
                'options' => [
                    'key' => 'this_is_my_key',
                    'language' => 'id',
                    'version' => '3.1.18'
                ]
            ]
        ]
    ],
],

To get key, please visit https://code.google.com/apis/console/

Using code sniffer

Once you do composer install -o, the php-cs-fixer tool will be added to your vendor file. To fix the formatting of your php files, simply do:

 ./vendor/bin/php-cs-fixer --config=.php_cs.dist fix

Resources

2amigOS!
beyond software
www.2amigos.us

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].