2010-12-22 4 views
3

Google Maps API V3 용 플러그인을 사용하고 있습니다. 맵에 표식을 넣고 사용자가 표식을지도의 한 지점으로 끌 수있게합니다. 클릭시 마커의 위도 (lat)를 가져오고 싶습니다.jQuery 플러그인을 사용하는 Google지도 API : 클릭시 마커의 위도와 경도를 얻는 방법은 무엇입니까?

goMap 플러그인 페이지 : http://www.pittss.lv/jquery/gomap/index.php

처음에 마커를 설정이 기능.

$("#map").goMap({ 
    zoom: 16, 
    maptype: 'ROADMAP', 
    navigationControl: false, 
    mapTypeControl: false, 
    scrollwheel: true, 
    disableDoubleClickZoom: false, 
    markers: [{ 
     draggable:true, 
     latitude: data.lat, 
     longitude: data.lng, 
     icon:'./images/pink.png' 
    }] 
});   

goMap()에서 기본 getLat() 메서드를 호출했지만 그 일을 제대로 수행하지 못했습니다. 어떤 도움이라도 대단히 감사합니다.

+1

이 질문은 올바른 방향으로 날 지점. 감사. –

답변

4

일부 sleuthing 후 jQuery의 data() 함수를 사용하여 데이터를지도에 바인딩하는 것처럼 보입니다. 마커에 대한 정보가있는 $('#map').data()을 통해 데이터를 가져올 수 있습니다.

각 마커에는 ID가 있으며, 배열 $.goMap.markers을 통해 마커의 ID를 가져올 수 있습니다. $.goMap.markers에는 마커 자체가 아닌 ID 인 문자열 만 포함됩니다.

해당 배열을 사용하여 원하는 ID를 찾거나 (또는 ​​미리 알 수 있음) $('#map').data()['MARKER_ID']을 호출하여 표식 개체를 가져와야합니다. 마커에는 title, visible, icon, idposition을 포함한 몇 가지 속성이 있습니다.

waya이라는 두 가지 속성이 있습니다. wa은 위도 인 것처럼 보이지만 ya은 경도가 될 것 같습니다. 따라서 $('#map').data()['MARKER_ID'].position.wa은 위도를 가져옵니다. 어떤 마커는 latitudelongitude 속성을 가지고 있는데 왜 그렇게 항상 거기에 있지는 않은지 모르지만 (적어도 간단한 테스트에서), 대신 $('#map').data()['MARKER_ID'].latitude을 시도해 볼 수 있습니다.

희망이 도움이됩니다.

+0

하하 문제 없으니 기꺼이 도와 드리겠습니다. – munchybunch

1

왜 그런지 모르겠지만 소품 이름은 시간이 자주 바뀝니다 ... 가장 좋은 해결책은 키 이름을 얻고 & lng을 아는 데 사용하는 것 같습니다. 당신은 드래그 후 좌표를 얻으려면

그래서, 예를 들어, 당신은 사용할 것이다 : 나는 goMap 같은 플러그인을 찾고 있었다

$.goMap.createListener({type:'marker', marker:'MARKER_ID'}, 'dragend', function() { 

    var i_prop = 2; 
    var map_data_marker = $('#map').data()['MARKER_ID'].position; 
    var map_data_marker_keys = []; 

    for (var key in map_data_marker) 
    { 
     if (i_prop--) 
     { 
      if (map_data_marker.hasOwnProperty(key)) 
      { 
       map_data_marker_keys.push(key); 
      } 
     } 
     else 
     { 
      break; 
     } 
    } 

    var lat_lng = map_data_marker[map_data_marker_keys[0]] + ', ' + map_data_marker[map_data_marker_keys[1]]; 

}); 
관련 문제