a1inani/yii2-google-maps-library

Yii2 的 Google 地图 API 库。

安装: 942

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 78

类型:yii-extension

1.1.10 2021-03-22 19:43 UTC

This package is auto-updated.

Last update: 2024-09-23 03:55:24 UTC


README

Yii2 的 Google 地图 API 库

Latest Stable Version Total Downloads Latest Unstable Version License

简介

尽管我们已经创建了一个扩展来显示不受谷歌政策限制的地图,并且与 LeafLetJs 库兼容,但我们仍然收到了更新 EGMap 扩展(适用于 Yii1) 的请求。因此,我们认为如果我们要更新它,我们应该更新这个库并使其与 Yii2 兼容。这就是创建这个扩展的原因。

不过,重要的是要注意,我们还没有时间(目前)编写任何好的文档。我们想尽早发布它,以防某个使用 Yii2 的人缺少 EGMap 库用于其项目,并希望将测试和错误发现反馈给我们。

GitHub 仓库将持续更新,并为其使用编写良好的文档。所以请不要着急。如果您愿意,任何帮助都将非常感激。

安装

安装此扩展的首选方式是通过 composer

运行

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

或在您的应用程序的 composer.json 文件的 require 部分添加

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

用法

尽管会有很多关于如何使用它的示例,但这里有一个将向您展示其使用方式的示例

服务

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();

客户端

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

此扩展还有一个插件架构,允许我们增强它,因此预计未来也将开发插件。

配置

要配置 Google 地图密钥或其他选项,如语言、版本、库,请使用 资产包自定义 功能。

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

获取密钥,请访问 https://code.google.com/apis/console/

使用代码规范器

一旦您运行 composer install -ophp-cs-fixer 工具将被添加到您的 vendor 文件中。要修复您的 PHP 文件格式,只需做

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

资源

2amigOS!
beyond software
www.2amigos.us