2015-12-21 43 views
-2

其实在我们的联系页面中,我们可能会显示特定地址的地图,但在我的网站中,我有不同的用户与不同的位置,所以,当我想点击该特定用户我需要用地图显示他们的地址。 yii 2将谷歌地图模板添加到YII2高级模板

+0

其实在我们的联系页面,我们可以为特定的地址显示的地图,但在我的网站,我有不同的用户提供不同的位置,所以,当我想点击该特定用户I需要用地图显示他们的地址。 – Baji

回答

0

试试这个: Yii 2.0:yii2-google-maps-library。

安装

安装此扩展的首选方法是通过作曲家。

无论是运行

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. 

即使将有大量的关于如何使用它的例子,这里是一个会为您提供其使用的一瞥:

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

这个扩展还有一个插件体系结构,可以让我们对其进行增强,所以期望在不久的将来开发插件。

欲了解更多信息enter link description here

+0

谢谢amitesh – Baji

+0

plz接受答案并投票给我 –