【发布时间】:2017-11-21 16:26:54
【问题描述】:
我正在尝试在 laravel.using google api 的视图上查看 google-map, 我使用了 ivory-google-map https://github.com/egeloen/ivory-google-map/blob/master/doc/map.md
我设法在控制器中渲染地图。 我需要的是将此与其他一些数据一起返回到视图中。 这是我的控制器。
公共函数 create() {
$map = new Map();
$map->setAutoZoom(false);
$map->setCenter(new Coordinate(7.322723, 79.988258));
$map->setMapOption('zoom', 10);
$map->setAutoZoom(false);
$map->setStylesheetOption('width', 600);
$map->setStylesheetOption('height', 600);
$map->setStylesheetOption('position', 'absolute');
$map->setBound(new Bound(new Coordinate(7, 70), new Coordinate(7.3235001, 79.988258)));
$map->getOverlayManager()->addMarker(new Marker(new Coordinate(7.322723, 79.988258)));
$scaleControl = new ScaleControl(
ControlPosition::BOTTOM_RIGHT,
ScaleControlStyle::DEFAULT_
);
$map->getControlManager()->setScaleControl($scaleControl);
$mapHelper = MapHelperBuilder::create()->build();
$apiHelper = ApiHelperBuilder::create()
->setKey('AIzaSyA7pPqtVUC-JWLM89E7Rko')
->build();
$map->setHtmlId('map_canvas2');
echo $apiHelper->render([$map]);
echo $apiHelper->render([$map]);
$materials = Material::pluck('mat_name','mat_price');
return view('order.create', compact('materials');
}
地图出现在视图中,连同数据 - 材料。但地图在页面顶部,我认为这是因为控制器中的回声。 我尝试使用
return view('order.create', compact('materials')->with('maps',$map);
但还是没有运气。
我需要将此地图显示在单独的 div 上,而不是浏览器顶部。这会影响我的其他样式。
无论如何我可以做到这一点。 这是我的看法,
<div class="row">
<div class="col-md-6 col-md-offset-1 margin-tb align-center">
<div class="pull-left">
<h2>Place New Oder</h2>
</div>
<div class="pull-right">
<a class="btn btn-primary" href="{{ route('order.index') }}"> Back</a>
</div>
</div>
<div class="col-md-5 margin-tb align-center">
<div id="map_canvas2">
</div>
</div>
</div>
我希望它出现在#map_canvas2 上。任何人都可以提出答案
【问题讨论】:
-
永远不要在控制器中使用
echo或print。 -
我想你把你的 maps 键放在你的问题中,你可能想重新生成它。
标签: javascript php laravel laravel-5.4