2012-02-28 5 views
0

다음 스크립트를 시도했지만 마지막 섹션이 작동하지 않습니다. 도와주세요.브라우저 필드의 마커에서 LatLng 가져 오기

// 스크립트 유형 = "텍스트/자바 스크립트"

var myOptions = { 
    zoom: 7, 
    center: new google.maps.LatLng(-36.624345125527526,144.96459973437504), 
    mapTypeId: google.maps.MapTypeId.TERRAIN, 
    streetViewControl: false, 
    draggableCursor: 'crosshair', 
    draggingCursor: 'pointer' 
    }; 
var map = new google.maps.Map(document.getElementById('map_canvas'), 
    myOptions); 
google.maps.event.addListener(map, 'click', function(e) { 
    placeMarker(e.latLng, map); 
    }); 

map.panTo(position); 

// 작동하지

google.maps.event.addListener(marker, 'dragend', function() { 
    var point = marker.getPosition(); 
    document.getElementById("latitude").getElementsByTagName("input")[0].value = point.lat(); 
    document.getElementById("longitude").getElementsByTagName("input")[0].value = point.lng(); 
    }); 


사용 시도 스크립트의

// 끝은 다음 아무것도하지만, 마커를 드래그 한 후에 발생합니다. 청취자가 표식의 '끌기'이벤트를 듣지 않는 것 같습니다. 어떤 단서? 지도에서 마커를 드래그 한 후 latLng을 가져 오는 다른 옵션은 무엇입니까?

// JS 코드

google.maps.event.addListener(marker, 'dragend', function(e) { 
    var point = e.latLng; 
    alert(marker.e.latLng); 
}) 

// 단부 코드

스크립트가 웹 기반 애플리케이션의 삽입 자리에 앉아 입력 요소 부분은 선택이 아니다. 그래서 그 부분을 바꿀 수는 없습니다.

+0

:이처럼 : 당신은 당신의 입력 요소의 이름을 지정하고 직접 접근 ... 이런 식으로 뭔가를하지 않는 이유

google.maps.event.addListener(marker, 'dragend', function(e) { var point = e.latLng; document.getElementById("latitude").getElementsByTagName("input")[0].value = point.lat(); document.getElementById("longitude").getElementsByTagName("input")[0].value = point.lng(); }); 

나는 또한 확실하지 않다 작은,하지만 당신의'map.panTo (위치)'는 이상하게 내게 보인다. – buck54321

답변

1

마커에 dragend 이벤트에 의해 전달 된 MouseEvent 개체를 사용해야합니다. 난 단지 구글지도 API a를 사용했다

document.getElementById("latitude_input").value = point.lat(); 
document.getElementById("longitude_input").value = point.lng(); 
+0

다음을 시도했지만 여전히 작동하지 않습니다. 어떤 단서? inpu 요소 부분은 스크립트가 웹 기반 응용 프로그램의 포함 된 자리 표시 자에 앉아 있기 때문에 선택이 아닙니다. 그래서 그 부분을 바꿀 수는 없습니다. google.maps.event.addListener (마커, '드래그 앤드', 기능 (e) { ) var point = e.latLng; alert (marker.e.latLng); }); – mta

+0

어딘가에 (JS Fiddle이 작동 할 것입니다) 라이브 코드를 게시하면 evertone에서 오류를 찾아 볼 수 있습니다. – andresf

관련 문제