Javascript Gmaps.js\根据用户所在位置创建新标记

Javascript Gmaps.js\根据用户所在位置创建新标记,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我正在为谷歌地图API使用gmaps.js。目标是使用用户地理位置创建地图并创建新标记。有点像嗨!你来了 地图和地理位置很好,但是用当前用户坐标创建新的标记对我来说是个问题 代码如下: // public/core.js //Creating map var map; $(document).ready(function(){ map = new GMaps({ el: '#map', lat: 0, lng: 0, z

我正在为谷歌地图API使用gmaps.js。目标是使用用户地理位置创建地图并创建新标记。有点像嗨!你来了

地图和地理位置很好,但是用当前用户坐标创建新的标记对我来说是个问题

代码如下:

// public/core.js
//Creating map
var map;
$(document).ready(function(){
      map = new GMaps({
        el: '#map',
        lat: 0,
        lng: 0,
        zoomControl : true,
        zoomControlOpt: {
            style : 'SMALL',
            position: 'TOP_LEFT'
        },
        panControl : false,
        streetViewControl : false,
        mapTypeControl: false,
        overviewMapControl: false
      });

// Define user location
      GMaps.geolocate({
          success: function(position) {
            map.setCenter(position.coords.latitude, position.coords.longitude);
          },
          error: function(error) {
            alert('Geolocation failed: '+error.message);
          },
          not_supported: function() {
            alert("Your browser does not support geolocation");
          }
      });

// Creating marker of user location
      map.addMarker({
          lat: position.coords.latitude,
          lng: position.coords.longitude,
          title: 'Lima',
          click: function(e) {
            alert('You clicked in this marker');
          },
          infoWindow: {
              content: '<p>You are here!</p>'
            }
    });

}); 

问题在于,您对map.addMarker的调用假设上面的函数GMaps.geologite已成功,而实际上,只有在成功函数解决以下问题后,才会设置位置:

// public/core.js
//Creating map
var map;
$(document).ready(function(){
      map = new GMaps({
        el: '#map',
        lat: 0,
        lng: 0,
        zoomControl : true,
        zoomControlOpt: {
            style : 'SMALL',
            position: 'TOP_LEFT'
        },
        panControl : false,
        streetViewControl : false,
        mapTypeControl: false,
        overviewMapControl: false
      });

// Define user location
      GMaps.geolocate({
          success: function(position) {
            map.setCenter(position.coords.latitude, position.coords.longitude);


        // Creating marker of user location
              map.addMarker({
                  lat: position.coords.latitude,
                  lng: position.coords.longitude,
                  title: 'Lima',
                  click: function(e) {
                    alert('You clicked in this marker');
                  },
                  infoWindow: {
                      content: '<p>You are here!</p>'
                    }
            });
          },
          error: function(error) {
            alert('Geolocation failed: '+error.message);
          },
          not_supported: function() {
            alert("Your browser does not support geolocation");
          }
      });

}); 

你说地图和地理位置很好,但是用当前用户坐标创建新的标记对我来说是个问题——但问题是什么?代码是否产生错误?该函数是否不执行?标记是否放错了位置?标记在所有未捕获的引用处都不会出现错误:未定义位置core.js:36 event.returnValue不推荐使用。请改用标准event.preventDefault。