2012-01-17 5 views
1

이것은 내가하고 싶은 것입니다 : 사용자에게 입력 상자에 위도 + 경도를 입력하고 해당 위치의지도에 마커를 표시하고 싶습니다. 매번지도를 초기화하지 않아도됩니다. 지금까지Google지도 - 매번지도를 초기화하지 않고 새 마커를 추가하십시오.

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
    var myOptions = { 
      center: new google.maps.LatLng(34.053228, -118.259583), 
      zoom: 12, 
      zoomControl: true, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    }); 
</script> 
<div style='height: 400px;'> 
    <div id="map_canvas" style="width:100%; float: left; height:100%"></div> 
</div> 

없음 재즈가이지도를 정의하는 일반적인 방법은 다음과 같이

나는지도를 초기화했다. 이제 사용자에게 주소를 입력하라고 요청하는 입력란이 있습니다.

<input type="text" size=30 name="lat" id="lat"> 
<input type="text" size=30 name="lon" id="lon"> 
<button type="button" id="address_submit">Search</button> 

해당 주소에 마커를 표시하고 싶습니다. 나는했습니다 (나는 jsfiddle =>http://jsfiddle.net/HaDbR/에 코드를 시도하고 예상대로 보이는 모든 일을

$("#address_submit").live("click", function() { 
    lat = $("#lat").val(); 
    lon = $("#lon").val(); 
    var marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(lat, lon), 
      map: map, //HOW DO I GET THIS MAP OBJECT?? 
      title:"Hello World!" 
     }); 
} 
+0

어떤 오류가 발생합니까? – Unknown

+0

지도 개체가 정의되지 않았습니다. 이제 getMap 함수가 있다는 것을 Google지도 설명서에서 보았습니다. 그러나이를 사용하는 방법에 대한 설명이나 예제는 없습니다. – Ninja

+0

변수 초기화에 문제가있을 수 있습니다. 준비된 함수 또는 스크립트 외부에서 초기화하고 시도하십시오. – Unknown

답변

1

: 나는 다음과 같이 함수를 정의하지만,지도 개체를 가져 표시하는 방법을지고 있지 않다 삽입 된 마커를보기 위해 축소 요인을 조금 줄였습니다.) : 폼에 좌표를 삽입했습니다 (맵 중심 좌표 근처). 마커가 올바르게 나타납니다.

유일한 차이

는 콜백을 호출 click 핸들러가 버튼에 적용된 것을 볼 수 있도록 map 변수의 가시성, 대신 나는 GoogleMap으로의 API 스크립트를 삽입 한 .live()

.on() 방법입니다 함수 createMap() 그 함수에서 나는지도를 초기화했고 핸들러를 연결 했으므로 클로저가지도에 액세스 할 수 있습니다.

+0

감사합니다. – Ninja

관련 문제