반응형
Google지도 v3 드래그 가능한 마커
저는 Google지도가 처음이며 배우려고 노력하고 있습니다.
marker = new google.maps.Marker(
{
map:map,
draggable:true,
animation: google.maps.Animation.DROP,
position: results[0].geometry.location
});
이것은 내가 장소 이름 (예 : XY street, New York)을 아는 것보다 마커 위치를 초기화 할 때 내 마커 위치이지만 드래그 가능한 옵션으로 인해 변경되고 있으며 내 질문은 새로운 장소 이름, 어떤 이벤트 핸들러가 필요한가요?
마침내 나는 답을 찾았습니다.
marker = new google.maps.Marker(
{
map:map,
draggable:true,
animation: google.maps.Animation.DROP,
position: results[0].geometry.location
});
google.maps.event.addListener(marker, 'dragend', function()
{
geocodePosition(marker.getPosition());
});
function geocodePosition(pos)
{
geocoder = new google.maps.Geocoder();
geocoder.geocode
({
latLng: pos
},
function(results, status)
{
if (status == google.maps.GeocoderStatus.OK)
{
$("#mapSearchInput").val(results[0].formatted_address);
$("#mapErrorMsg").hide(100);
}
else
{
$("#mapErrorMsg").html('Cannot determine address at this location.'+status).show(100);
}
}
);
}
위도 / 언어를 사용하여지도에 위치를 설정하고 마커를 드래그 할 수 있도록 설정
lat / lang을 사용하면 처음에지도의 지정된 지점에 마커가 설정됩니다.
주소 변수는 제목 용도로 사용됩니다. 무시할 수 있습니다.
draggable : true 는 마커를 드래그 가능하게 만듭니다.
이벤트 리스너 사용 google.maps.event.addListener (marker, 'dragend', function (marker) 마커 위치의 변경을 수신하려면
function showMap(lat,lang,address) { var myLatLng = {lat: lat, lng: lang}; var map = new google.maps.Map(document.getElementById('map_canvas'), { zoom: 17, center: myLatLng }); var marker = new google.maps.Marker({ position: myLatLng, map: map, title: address, draggable:true, }); google.maps.event.addListener(marker, 'dragend', function(marker){ var latLng = marker.latLng; currentLatitude = latLng.lat(); currentLongitude = latLng.lng(); jQ("#latitude").val(currentLatitude); jQ("#longitude").val(currentLongitude); }); }
Here is the code which gets drag-able marker with position in text box:
/**
*Receiving the value of text box and type done conversion by Number()
*/
var latitude = Number(document.getElementById("la").value);
var longitude = Number(document.getElementById("lo").value);
function initMap() {
/**
*Passing the value of variable received from text box
**/
var uluru = {
lat: latitude,
lng: longitude
};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 7,
center: uluru
});
marker = new google.maps.Marker({
map: map,
draggable: true,
animation: google.maps.Animation.DROP,
position: uluru
});
google.maps.event.addListener(marker, 'dragend',
function(marker) {
var latLng = marker.latLng;
currentLatitude = latLng.lat();
currentLongitude = latLng.lng();
$("#la").val(currentLatitude);
$("#lo").val(currentLongitude);
}
);
}
#map {
height: 400px;
width: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="map"></div>
Latitude <input type="text" id="la" name="latitude" value="28.39"> Longitude<input type="text" id="lo" name="longitude" value="84.12">
<!--Google Map API Link-->
<script async defer src="https://maps.googleapis.com/maps/api/js?key=YOURAPIKEYHERE&callback=initMap">
Please Use jQuery at the head
참고URL : https://stackoverflow.com/questions/5688745/google-maps-v3-draggable-marker
반응형
'Programing' 카테고리의 다른 글
콜백이있는 Python의 any () 함수 (0) | 2020.12.07 |
---|---|
N 번째 문자 / 숫자마다 문자열 / 숫자 분할? (0) | 2020.12.07 |
SQL Server 2005에 클러스터되지 않은 인덱스가 있는지 확인하는 방법 (0) | 2020.12.07 |
내부 결합 세 테이블 (0) | 2020.12.07 |
$ .post와 $ .ajax의 차이점은 무엇입니까? (0) | 2020.12.07 |