я использую инструмент davidjeddy / yii2-leaflet-draw-plugin, для рисования на карте, его работоспособность я ищу и много раз пытался добавить эту опцию - 1) я добавляю packege amigose / GeoSearch (2 amigos/yii2-leaflet- геопоиск-плагин) его работа; но не с опцией рисования, означает рисование или GeoSearch в функции installPolugin
<?php
$center = new \dosamigos\leaflet\types\LatLng(['lat' => 36.72, 'lng' =>3.08]);
// now lets create a marker that we are going to place on our map
$marker = new \dosamigos\leaflet\layers\Marker(['latLng' => $center, 'popupContent' => 'champ X']);
$geoSearchPlugin = new GeoSearch([
'service' => GeoSearch::SERVICE_OPENSTREETMAP,
// uncomment following block to define custom labels
/*
'clientOptions' => [
'searchLabel' => 'enter address here',
'notFoundMessage' => 'no address found',
],
*/
]);
$tileLayer = new \dosamigos\leaflet\layers\TileLayer([
'urlTemplate' =>'https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoicmFjaGlkMTIzIiwiYSI6ImNrNHg4b3FxYTA0bWYzbnBjMWpwY3RpazEifQ.a7rfnrx5MS1wvnWA53fWGw',
'clientOptions' => [
'attribution' => 'Tiles Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png">, Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>',
'id' => 'mapbox.satellite' , // pass var js here
'subdomains' => [ '1' ,'2' ,'3' ,'4' ],
]
]);
// now our component and we are going to configure it
$leaflet = new \dosamigos\leaflet\LeafLet([
'name' => 'map' ,
'center' => $center, // set the center
'tileLayer'=>$tileLayer ,
'zoom' => 13 , // zoom my map
'clientEvents' => [
// setting up one of the geo search events for fun
/* 'geosearch_showlocation' => 'function(e){
console.log(e.target);
}'*/
]
]);
$drawFeature = new \davidjeddy\leaflet\plugins\draw\Draw();
// optional config array for leadlet.draw
$drawFeature->options = [
"position" => "topright",
"draw" => [
"polyline" => [
"shapeOptions" => [
"color" => "#ff0000",
"weight" => 10 ,
]
],
"polygon" => [
"allowIntersection" => false, // Restricts shapes to simple polygons
"drawError" => [
"color" => "#e1e100", // Color the shape will turn when intersects
"message" => "<b>Oh snap!</b> you can't draw that!" // Message that will show when intersect
],
"shapeOptions" => [
"color" => "#bada55"
]
],
"circle" => false, // Turns off this drawing tool
"marker" =>false , // off marker tool
"circlemarker" => false , //off circlemarker tool
"rectangle" => [
"shapeOptions" => [
"clickable" => false
]
]
]
];
$leaflet->addLayer($marker) // add the marker
->installPlugin($geoSearchPlugin ) ;
//->installPlugin( $drawFeature ) ;
echo $leaflet->widget(['options' => ['style' => 'min-height: 450px' ] ]);
?>
2) Я пытался использовать функцию листовки js напрямую, но я не могу добавить ее
// Control 2: This add a scale to the map
L.control.scale().addTo(map);
// Control 3: This add a Search bar
var searchControl = new L.esri.Controls.Geosearch().addTo(map);
var results = new L.LayerGroup().addTo(map);
searchControl.on('results', function(data){
results.clearLayers();
for (var i = data.results.length - 1; i >= 0; i--) {
results.addLayer(L.marker(data.results[i].latlng));
}
});
возможно ли добавить окно поиска (опция поиска) на мою карту? посмотрите это изображение это изображение о моей карте
, если вы хотите больше подробностей о моем коде
ссылка инструмента для получения дополнительной информации
пожалуйста, помогите, чтобы добавить окно поиска на мою карту
Спасибо, заранее! :)