1. Go to this page and download the library: Download sibilino/yii2-openlayers library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use sibilino\yii2\openlayers\OpenLayers;
use sibilino\yii2\openlayers\OL;
use sibilino\yii2\openlayers\OpenLayers;
use sibilino\yii2\openlayers\OL;
use yii\web\JsExpression;
//...
echo OpenLayers::widget([
'id' => 'test',
'mapOptions' => [
'layers' => [
// Easily generate JavaScript "new ol.layer.Tile()" using the OL class
new OL('layer.Tile', [
'source' => new OL('source.MapQuest', [
'layer' => 'sat',
]),
]),
],
// Using a shortcut, we can skip the OL('View' ...)
'view' => [
// Of course, the generated JS can be customized with JsExpression, as usual
'center' => new JsExpression('ol.proj.transform([37.41, 8.82], "EPSG:4326", "EPSG:3857")'),
'zoom' => 4,
],
],
]);
$olObject = new OL('source.MapQuest', ['layer' => 'sat']);
'mapOptions' => [
'layers' => [
'Tile' => [ // The layer type as a string, no need for new OL('layer.Tile' ...)
'source' => new OL('source.MapQuest', [
'layer' => 'sat',
])
],
],
'view' => [ // The 'view' option does not
'mapOptions' => [
'layers' => [
// Again no need for OL('ol.source.OSM'), but no configuration can be passed to the OSM object in this case.
'Tile' => 'OSM',
],
],
echo OpenLayers::widget([
'id' => 'mainMap',
'mapOptionScript' => '@web/js/yourscript.js',
'mapOptions' => [
// Put your PHP-generated options here.
// These options will be merged with the ones in yourscript.js.
// For example:
'layers' => [
'Tile' => [
'source' => new OL('source.MapQuest', [
'layer' => $selectedLayer,
]),
],
'Vector' => [
'source' => new OL('source.Cluster', [
'distance' => 30,
'source' => new OL('source.Vector', [
'features' => $features,
]),
]),
],
],
// ...
],
//...
]);