2014-11-25 4 views
0

API2에서 Google지도로 스크립트를 번역하는 데 문제가 있습니다. 스크립트는 그런 식으로 작동합니다 -지도에는 하나의 마커가 있으며 사용자는 그를 드래그하거나지도를 클릭하고이 마커를 클릭하여 위치를 클릭하면 현재 마커 위치의 좌표가 숨겨진 입력으로 이동합니다.Google지도 Api2 Google지도 api3

<script src="//code.jquery.com/jquery-1.10.2.js"></script> 
<script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script> 
<!-- google maps --> 


<!-- Do rejestracji --> 
<script type='text/javascript'> 
<!-- 
var mapa; 
var marker; 

function mapaStart() 
{ 
if(GBrowserIsCompatible()) 
{  
mapa = new GMap2(document.getElementById("doMeeting")); 

mapa.setCenter(new GLatLng(52.348763181988076, 18.61083984375), 6, G_HYBRID_MAP); 
mapa.addControl(new GLargeMapControl()); 
mapa.addControl(new GMapTypeControl()); 

marker = new GMarker(mapa.getCenter(),{icon: marker, draggable: true}); 
mapa.addOverlay(marker); 

// zdarzenia dla markera 
GEvent.addListener(marker,'drag',uaktualnijWspolrzedne); 
GEvent.trigger(marker,'drag'); 

// zdarzenia dla mapy 
GEvent.addListener(mapa,'click',function(o,p) 
{ 
    if(p) 
    { 
    marker.setPoint(p); 
    uaktualnijWspolrzedne(); 
    } 
}); 
} 
} 

function uaktualnijWspolrzedne() 
{ 
var input_lat = document.getElementById('lat'); 
var input_lng = document.getElementById('lng'); 
var punkt = marker.getLatLng(); 

input_lat.value = punkt.lat(); 
input_lng.value = punkt.lng(); 
} 

</script> 

그리고보기 : 이것은 스크립트입니다

<div id="doMeeting" style="width: 400px; height: 400px;"></div> 
<input type="hidden" id="lat" name="lat"/> 
<input type="hidden" id="lng" name="lng"/> 

그리고 내 문제는 이전과 같이 스크립트 didnt 한 일을 번역 내 것입니다. 마커는 드래그 할 수 있습니다.지도를 클릭하면 옵션이 작동하지 않으며 마커 위치의 좌표는 입력되지 않습니다. 나는 Google지도 또는 자바 스크립트로 experiacne을 가지지 않았다. 그래서 도와주세요. 이것은 내가 번역을 시도하는 방법입니다 스크립트

<script type='text/javascript'> 
<!-- 
var mapa; 

function mapaStart() 
{  
mapOpc = { 
center:new google.maps.LatLng(52.348763181988076, 18.61083984375), 
zoom:6, 
mapTypeId:google.maps.MapTypeId.ROADMAP 
}; 
mapa=new google.maps.Map(document.getElementById("doMeeting"),mapOpc); 

var marker=new google.maps.Marker({ 
position:new google.maps.LatLng(52.348763181988076, 18.61083984375), 
draggable: true, 
map: mapa, 
}); 
marker.setMap(mapa); 

// zdarzenia dla markera 
google.maps.event.addListener(marker,'drag', uaktualnijWspolrzedne); 
google.maps.event.trigger(marker,'drag'); 

// zdarzenia dla mapy 
google.maps.event.addListener(mapa,'click',function(event) 
{ 
    marker.setPoint(event); 
    uaktualnijWspolrzedne(); 
}); 

} 
function uaktualnijWspolrzedne() 
{ 
var input_lat = document.getElementById('lat'); 
var input_lng = document.getElementById('lng'); 
var punkt = marker.getLatLng(); 

input_lat.value = punkt.lat(); 
input_lng.value = punkt.lng(); 
} 
google.maps.event.addDomListener(window, 'load', mapaStart); 
</script> 
+0

'marker.setPoint (이벤트),'당신은해야 할 것, 작동하지 않습니다'marker.setPoint (event.latLng)' – duncan

+0

'marker.setPosition (event.latLng) ; ' –

+0

좋아, 그게 조금 도움이, 내가지도에 클릭 옵션이 있지만 여전히 입력 좌표 이동 좌표. – user3819713

답변

0

문제 :

  1. 마커는
  2. marker.getLatLng 케이 (자바 스크립트 오류 "Uncaught ReferenceError: marker is not defined를 얻을) 귀하의 V2 버전 있다는 글로벌 될 필요가 '은 t가 marker.setPoint가 존재하지 않는
  3. 지금 marker.getPosition
  4. 이다 존재는 DR (몰리 관찰 됨)
marker.setPosition 지금

working fiddle

var mapa; 
var marker; 

function mapaStart() { 
    mapOpc = { 
     center: new google.maps.LatLng(52.348763181988076, 18.61083984375), 
     zoom: 6, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    mapa = new google.maps.Map(document.getElementById("doMeeting"), mapOpc); 

    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(52.348763181988076, 18.61083984375), 
     draggable: true, 
     map: mapa, 
    }); 
    marker.setMap(mapa); 

    // zdarzenia dla markera 
    google.maps.event.addListener(marker, 'drag', uaktualnijWspolrzedne); 
    google.maps.event.trigger(marker, 'drag'); 

    // zdarzenia dla mapy 
    google.maps.event.addListener(mapa, 'click', function (event) { 
     marker.setPosition(event.latLng); 
     uaktualnijWspolrzedne(); 
    }); 

} 

function uaktualnijWspolrzedne() { 
    var input_lat = document.getElementById('lat'); 
    var input_lng = document.getElementById('lng'); 
    var punkt = marker.getPosition(); 

    input_lat.value = punkt.lat(); 
    input_lng.value = punkt.lng(); 
} 
google.maps.event.addDomListener(window, 'load', mapaStart); 
+0

고마워요 !!! 그것은 작동합니다! – user3819713