Yii2 / возможно ли добавить окно поиска на инструмент 2 amigos/leaflet/draw/ - PullRequest
0 голосов
/ 17 февраля 2020

я использую инструмент 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 &copy; <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));
        }
      });

возможно ли добавить окно поиска (опция поиска) на мою карту? посмотрите это изображение это изображение о моей карте

, если вы хотите больше подробностей о моем коде

ссылка инструмента для получения дополнительной информации

пожалуйста, помогите, чтобы добавить окно поиска на мою карту

Спасибо, заранее! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...