2012-11-09 2 views
0

현재 Drupal 7 - Location, GMap module을 사용 중입니다. 결과를 gmap으로 렌더링하는 뷰가 있습니다. 모든 것이 여기에서 잘 작동하며 모든 마커를 얻습니다. 이제 사용자의 현재 위치를 보여주고 기존지도에 마커를 추가하는 내 위치 찾기 버튼이 필요합니다. Google Map Api V3은 항상 새로 생성 된지도에서 작동하며 현재 페이지에서 기존지도를 반환하는 함수를 찾을 수 없습니다.사용자 위치 마커를 기존 gmap에 추가

Gmap 모듈은 id가 주어진 맵에 대한 포인터를 반환하는 Drupal.gmap.getMap ('ur-map-id') JS 기능을 제공합니다. 그러나 이것은 효과가 없었습니다.

누군가이 문제에 대해 어떻게 안내해야합니까? Google지도 API에서 작동하도록 할 수 있습니까? 모든 마커가있는 원본지도를 유지해야합니다.

답변

1

이 문제도 발생합니다.이 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(); 
}); 

}); 

지금 당신은 당신의 위치를 ​​중심으로지도의 중심을 수 있으며, 지금은이 위치에서 아래로 마커를 배치하는 방법을 알아낼 필요가있다.

+0

감사합니다. 그러나지도는 m [ 'map']으로도 사용할 수 있습니다. 여기서 m은 Drupal.gmap.getMap (map-id)을 언급 한 것과 같습니다. – SGhosh

2

다음은 참조 용입니다.

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); 
} 
관련 문제