andrecode/yii2-google-maps-library

Yii2 的 Google Maps API 库。

安装: 33

依赖者: 0

建议者: 0

安全: 0

星级: 0

关注者: 1

分支: 78

类型:yii-extension

1.1.3 2018-01-15 23:01 UTC

This package is auto-updated.

Last update: 2024-09-23 03:50:23 UTC


README

Yii2 的 Google Maps API 库

Latest Stable Version Total Downloads Latest Unstable Version License

简介

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

然而,需要注意的是,我们还没有时间(还没有)编写任何好的文档。我们本想早点发布,以防任何使用 Yii2 的人缺少 EGMap 库,并希望将其测试和错误发现告诉我们。

github 仓库将保持更新,并将为使用编写详细的文档。所以请不要着急。如果您愿意,任何帮助都将非常受欢迎。

安装

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

运行以下命令之一:

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

或者

"andrecode/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 Map 密钥或其他选项,如语言、版本、库,请使用 资产包自定义 功能。

'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/

资源

2amigOS! web 开发从未如此有趣 www.2amigos.us