尝试使用javascript启动googlemap,获取权限以拒绝访问属性名称

时间:2016-11-24 20:00:29

标签: javascript google-maps

我正在尝试使用以下代码启动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和lng
  

myLatLng = {lat:15.000,lng:15.000};

然后它可以工作,但如果我尝试使用我需要使用的变量

则不行

1 个答案:

答案 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};
    ...
}