我正在尝试使用以下代码启动Google地图:
<script type="text/javascript">
$(document).ready(function(){
var geocoder = new google.maps.Geocoder();
var latitude;
var longitude;
geocoder.geocode( { 'address': '{{Session::get('location')}}'}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latitude = results[0].geometry.location.lat();
longitude = results[0].geometry.location.lng();
} else {
alert("Something got wrong " + status);
}
});
直接在那段代码之后我有了这个
function initMap() {
console.log('initMap');
var myLatLng = {lat: latitude, lng: longitude};
当我这样做时出现问题
var myLatLng = {lat:latitude,lng:longitude};
我明白了
错误:访问属性“name”的权限被拒绝jquery.min.js(rad 2,kol 31089)
如果我使用像
这样的小块来硬编码lat和lngmyLatLng = {lat:15.000,lng:15.000};
然后它可以工作,但如果我尝试使用我需要使用的变量
则不行答案 0 :(得分:1)
尝试投射纬度和经度值,在某些情况下,它们可能会被初始化为字符串。即:
var myLatLng = {lat: parseFloat(latitude), lng: parseFloat(longitude)};
此外,如果未设置纬度和经度,您可以尝试调用initMap作为参数:
geocoder.geocode( { 'address': '{{Session::get('location')}}'}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latitude = results[0].geometry.location.lat();
longitude = results[0].geometry.location.lng();
initMap(latitude, longitude);
} else {
alert("Something got wrong " + status);
}
});
现在的initMap:
function initMap(latitude, longitude) {
console.log('initMap');
var myLatLng = {lat: latitude, lng: longitude};
...
}