Я использую Kartik tabs-x и yii2-google-maps-marker.GoogleMaps не отображается на неактивной вкладке (Yii2)
Если вкладка 2 установлена активна, отображается правильная версия googleMap.
Но, если я установить на вкладке 1 (не 2) к активным, Googlemap неправильно показывает.
Это Tab-й в поле зрения.
<?php
$datsan_tab_items = [
[
'label'=>'<i class="glyphicon glyphicon-calendar"></i>'.Yii::t('app', ' Tab 1'),
'content'=> $this->render('_calendar_dat_san',['ids_sanCon' => $ids_sanCon,
'modelSanCon' => $modelSanCon,
'modelSanChu' => $modelSanChu
]),
'active'=>false
],
[
'label'=>'<i class="glyphicon glyphicon-map-marker"></i>'.Yii::t('app', ' Tab 2'),
'content'=> $this->render('_map',['dc' => $dc, 'modelSanChu' => $modelSanChu]),
'active'=>true,
],
[
'label'=>'<i class="glyphicon glyphicon-usd"></i>'.Yii::t('app', ' Tab 3'),
'content'=> $this->render('_bang_gia',[
'modelSanCon' => $modelSanCon,
'modelSanChu' => $modelSanChu
]),
'active'=>false
],
];
// Tab Chuyen doi giua Login/Register
echo TabsX::widget([
'items'=>$datsan_tab_items,
'position'=>TabsX::POS_ABOVE,
'bordered'=>true,
'encodeLabels'=>false
]);
?>
Это вид карты.
<div class="datsan-index-thong-tin-ban-do" id="datsan-index-thong-tin-ban-do">
<div class="panel panel-info">
<div class="panel-heading"><?= Yii::t('app', ' Bản Đồ') ?></div> <?php
echo GoogleMaps::widget([
'userLocations' => [
[
'location' => [
'address' => $dc,
'country' => $modelSanChu->dc_quocGia,
],
'htmlContent' => $modelSanChu->ten
],
],
'wrapperHeight' => '350px',
'googleMapsUrlOptions' => [
'key' => Yii::$app->params['GOOGLE_API_KEY'],
]
]);
?>
</div>
</div>
Спасибо Матого P. Но это не сработало. Я попытался использовать google.maps.event.trigger (map, 'resize'); но это тоже не сработало. Я не знаю причины. Не могли бы вы дать какие-либо рекомендации по отладке? – Sam
Я добавляю кнопку на _map.php: = \ Yii \ helpers \ Html :: button ('Resize', ['onclick' => 'google.maps.event.trigger (map, "resize);'])?>, но это сработало. – Sam
Поскольку вы используете библиотеку 'yii2-google-maps-marker', переменная' map' не существует в вашем контексте. Вместо этого вы должны использовать 'yii.googleMapManager.map '. Попробуйте console.log() объект yii.googleMapManager, например, при нажатии кнопки изменения размера:' = \ Yii \ helpers \ Html :: button ('Resize', ['onclick' => 'console. log (yii.googleMapManager); google.maps.event.trigger (map, "resize"); '])?> 'и дайте мне знать, что он печатает в консоли браузера. Возможно, также попробуйте console.log (google); там, чтобы проверить, доступна ли библиотека. У вас есть проект, доступный на каком-то URL-адресе? Я могу попытаться помочь вам отладить. –