Google maps 将用户位置标记添加到现有gmap

Google maps 将用户位置标记添加到现有gmap,google-maps,drupal,drupal-7,drupal-gmap,Google Maps,Drupal,Drupal 7,Drupal Gmap,我正在使用Drupal7-Location,GMap模块。我有一个在gmap中呈现结果的视图。这里一切都很好,我拿到了所有的记号笔。现在我需要一个“查找我的位置”按钮,该按钮显示用户当前位置,并向现有地图添加一个标记。 Google Map Api V3总是在新创建的地图上工作,我找不到在当前页面中返回现有地图的函数 Gmap模块提供了一个JS函数-Drupal.Gmap.getMap('ur-map-id'),该函数应该返回一个指向给定id的映射的指针。但这并不奏效 有人能告诉我该怎么做吗?我

我正在使用Drupal7-Location,GMap模块。我有一个在gmap中呈现结果的视图。这里一切都很好,我拿到了所有的记号笔。现在我需要一个“查找我的位置”按钮,该按钮显示用户当前位置,并向现有地图添加一个标记。 Google Map Api V3总是在新创建的地图上工作,我找不到在当前页面中返回现有地图的函数

Gmap模块提供了一个JS函数-Drupal.Gmap.getMap('ur-map-id'),该函数应该返回一个指向给定id的映射的指针。但这并不奏效


有人能告诉我该怎么做吗?我可以让它与谷歌地图API一起工作吗?我需要保留原始地图及其所有标记。

我也有这个问题,您可以将此jquery代码放入其中,使其实际位于您当前位置的中心,但不添加任何标记。只需将其添加到主题中的任意位置

jQuery(document).ready(function() {

jQuery(function($) {
$.extend({
initialize: function () {
var m = Drupal.gmap.getMap('auto1map');
if (m.map && m.markersready) {
$.setCoords();
}
else {
m.bind('markersready', function(data) {
$.setCoords();
});
}
},
setCoords: function () {
navigator.geolocation.getCurrentPosition(function (position) {
var gmap = Drupal.gmap.getMap('auto1map').map;
var lat = position.coords.latitude;
var lng = position.coords.longitude;
gmap.setCenter(new google.maps.LatLng(lat, lng));
gmap.setZoom(13);
});
}
});
$.initialize();
});

});

现在,您可以围绕您的位置将地图居中,现在我需要找到一种方法在该位置放置一个标记。

我也遇到了这个问题,您可以将此jquery代码放入其中,使其实际围绕您的当前位置-但没有添加标记。只需将其添加到主题中的任意位置

jQuery(document).ready(function() {

jQuery(function($) {
$.extend({
initialize: function () {
var m = Drupal.gmap.getMap('auto1map');
if (m.map && m.markersready) {
$.setCoords();
}
else {
m.bind('markersready', function(data) {
$.setCoords();
});
}
},
setCoords: function () {
navigator.geolocation.getCurrentPosition(function (position) {
var gmap = Drupal.gmap.getMap('auto1map').map;
var lat = position.coords.latitude;
var lng = position.coords.longitude;
gmap.setCenter(new google.maps.LatLng(lat, lng));
gmap.setZoom(13);
});
}
});
$.initialize();
});

});

现在,您可以将地图放在您所在位置的中心,现在我需要找出一种方法,在该位置放置一个标记。

这里有一些参考资料

if (typeof(navigator.geolocation) !== 'undefined') {
  var showUserOnMap = function(position) {
    var map = Drupal.gmap.getMap('gmap-auto1map-gmap0');
    if (typeof(map) !== 'undefined' && map !== false) {
      latitude = position.coords.latitude;
      longitude = position.coords.longitude;
      var marker = {
        latitude: latitude,
        longitude: longitude,
        markername: Drupal.t('You'),
        opts: {
          title: Drupal.t('You')
        }
      }
      marker.opts.position = new google.maps.LatLng(latitude, longitude);
      marker.opts.map = map.map;
      Drupal.gmap.factory.marker(marker.opts);
    }
  };

  // Get the current location
  navigator.geolocation.getCurrentPosition(showUserOnMap);
}

这里有一些参考资料

if (typeof(navigator.geolocation) !== 'undefined') {
  var showUserOnMap = function(position) {
    var map = Drupal.gmap.getMap('gmap-auto1map-gmap0');
    if (typeof(map) !== 'undefined' && map !== false) {
      latitude = position.coords.latitude;
      longitude = position.coords.longitude;
      var marker = {
        latitude: latitude,
        longitude: longitude,
        markername: Drupal.t('You'),
        opts: {
          title: Drupal.t('You')
        }
      }
      marker.opts.position = new google.maps.LatLng(latitude, longitude);
      marker.opts.map = map.map;
      Drupal.gmap.factory.marker(marker.opts);
    }
  };

  // Get the current location
  navigator.geolocation.getCurrentPosition(showUserOnMap);
}

谢谢但是,地图也可以作为m['map']提供,其中m是您提到的Drupal.gmap.getMap(地图id)。谢谢。但是,映射也可以作为m['map']提供,其中m是您提到的Drupal.gmap.getMap(映射id)。