2amigos/yii2-google-maps-library

此包已被放弃,不再维护。没有建议的替代包。

Yii2 的 Google 地图 API 库。

安装次数: 338,878

依赖项: 14

建议者: 0

安全性: 0

星标: 106

关注者: 32

分支: 77

公开问题: 53

类型:yii-extension

1.1.9 2019-04-15 16:51 UTC

This package is auto-updated.

Last update: 2023-08-18 11:37:50 UTC


README

Yii2 的 Google 地图 API 库

Latest Stable Version Total Downloads Latest Unstable Version License

简介

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

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

github 仓库将不断更新,并会为其实用编写良好的文档。所以请不要急躁。如果您愿意,任何帮助都将非常感激。

安装

安装此扩展的最佳方式是通过 composer

运行以下命令之一:

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

或者

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

将此行添加到您应用程序的 composer.json 文件的 require 部分。

用法

尽管会有很多使用示例,但这里有一个将向您展示其用法的一个示例。

服务

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 地图密钥或其他选项(如语言、版本、库),请使用 Asset Bundle 自定义 功能。

'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