【发布时间】:2020-06-08 20:59:46
【问题描述】:
我正在尝试在 larvel 项目中的 Google Map 中的多个位置显示标记。我在控制器中添加了代码并将locations 传递给查看页面。
以下是我的刀片中的代码
@extends('user.layout.app')
@section('content')
<script src="{{ url('js/user/location.js') }}"></script>
<div class="container-fluid add-location">
<div class="row">
<div class="col-md-12">
<div class="card">
<form method="post" action="" name="clinicssview" id="clinicssview" enctype="multipart/form-data" novalidate>
{{ csrf_field() }}
<div class="card-header">
<h4 class="card-title"> View Clinics </h4>
</div>
@if(!empty($errors->all()))
<div class="row">
@foreach ($errors->all() as $error)
<div class="col-lg-12">
<div class="alert alert-danger"> <span>{{ $error }}</span> </div>
</div>
@endforeach
</div>
@endif
<div class="card-content">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-6">
<div class="form-group hide">
<label class="control-label">Location
<star>*</star>
</label>
<input id="pac-input" name="location" class="controls form-control" type="text" placeholder="Search Box">
<!-- <div id="map" height="1000" width="1000"></div> -->
</div>
<h4 >Preview</h4>
<div class="form-group">
<div id="regularMap" class="map"></div>
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label class="control-label">Clinic Name
<star>*</star>
</label>
<input disabled id="user_name" name="user_name" class="controls form-control" type="text" placeholder="Clinc Name" value="{{$clinic->clinicName}}">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label class="control-label">Contact First Name
<star>*</star>
</label>
<input disabled id="contact_fname" name="contact_fname" class="controls form-control" type="text" placeholder="Contact First Name" value="{{$clinic->clinicFname}}">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label class="control-label">Contact Second Name
<star>*</star>
</label>
<input disabled id="contact_sname" name="contact_sname" class="controls form-control" type="text" placeholder="Contact Second Name" value="{{$clinic->clinicLname}}">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label class="control-label">Contact Address
<star>*</star>
</label>
<input disabled id="contact_address" name="contact_adress" class="controls form-control" type="text" placeholder="Contact Address" value="{{$clinic->clinicAddress}}">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label class="control-label">Contact City
<star>*</star>
</label>
<input disabled id="contact_city" name="contact_city" class="controls form-control" type="text" placeholder="City" value="{{$clinic->clinicCity}}">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label class="control-label">Contact State
<star>*</star>
</label>
<input disabled id="contact_state" name="contact_state" class="controls form-control" type="text" placeholder="State" value="{{$clinic->clinicState}}">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label class="control-label">Clinic Zip
<star>*</star>
</label>
<input disabled id="zip" name="zip" class="controls form-control" type="text" placeholder="Zip" value="{{$clinic->clinicZip}}">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label for="email" class="control-label">Email
<star>*</star>
</label>
<input disabled id="email" type="email" class="form-control" name="email" placeholder="Email" value="{{$clinic->clinicEmail}}">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label class="control-label">Clinic Phone Number
<star>*</star>
</label>
<input disabled id="phone" name="phone" class="controls form-control" type="text" placeholder="Phone Number" value="{{$clinic->clinicPhone}}">
</div>
</div>
<div class="col-xs-12 col-sm-12 col-md-12">
<div class="form-group">
<label class="control-label">Clinic Website
<star>*</star>
</label>
<input disabled id="clinic_website" name="clinic_website" class="controls form-control" type="text" placeholder="Website" value="{{$clinic->clinicURL}}">
</div>
</div>
</div>
<div class="row"></div>
</form>
</div>
</div>
</div>
</div>
<script async defer src="https://maps.googleapis.com/maps/api/jskey=API_KEY">
</script>
<script type="text/javascript">
var locations = <?php echo $locations ?>;
var map = new google.maps.Map(document.getElementById('regularMap'), {
zoom: 10,
center: new google.maps.LatLng(-33.92, 151.25),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i]['locationLat'], locations[i]['locationLong']),
visible: true,
map: map
});
marker.setMap(map);
}
</script>
@endsection
但标记未显示在位置中。我正在从数据库中加载纬度和经度。请帮帮我
【问题讨论】:
-
将你的谷歌地图和标记的javascript代码放入
window.onload = function(e){ }函数中 -
你能给我看看吗
-
请提供
console.log(locations);的输出。这确实是要调试的第一件事。附带说明一下,marker.setMap(map)是不必要的,因为您已经在标记选项中使用了map: map。另外,请编辑您的问题以包含控制台中的任何 JS 错误。
标签: javascript laravel google-maps