클릭시 Google지도에 마커 추가


87

사용자가지도를 왼쪽 클릭 할 때 Google지도에 마커를 추가하는 방법에 대한 매우 간단한 예를 찾기 위해 놀랍게도 어려움을 겪고 있습니다.

지난 몇 시간 동안 주변을 둘러보고 Google Maps API 설명서를 참조했으며 도움을 주시면 감사하겠습니다!

답변:


169

더 많은 연구 끝에 나는 해결책을 찾았습니다.

google.maps.event.addListener(map, 'click', function(event) {
   placeMarker(event.latLng);
});

function placeMarker(location) {
    var marker = new google.maps.Marker({
        position: location, 
        map: map
    });
}

7
사용자가 한 번만 추가 할 수 있도록 할 수 있습니까? 마커를 이동 하시겠습니까?
Chaibi Alaa 2016-10-28

plase 샘플 링크 제공
Sopo

43

2017 년 솔루션은 다음과 같습니다.

map.addListener('click', function(e) {
    placeMarker(e.latLng, map);
});

function placeMarker(position, map) {
    var marker = new google.maps.Marker({
        position: position,
        map: map
    });
    map.panTo(position);
}

20

이것은 실제로 문서화 된 기능이며 여기 에서 찾을 수 있습니다.

// This event listener calls addMarker() when the map is clicked.
  google.maps.event.addListener(map, 'click', function(e) {
    placeMarker(e.latLng, map);
  });

  function placeMarker(position, map) {
    var marker = new google.maps.Marker({
      position: position,
      map: map
    });  
    map.panTo(position);
  }

14

@Chaibi Alaa, 사용자가 한 번만 추가 할 수 있도록하고 마커를 이동합니다. 처음 클릭 할 때 마커를 설정 한 다음 후속 클릭에서 위치를 변경할 수 있습니다.

var marker;

google.maps.event.addListener(map, 'click', function(event) {
   placeMarker(event.latLng);
});


function placeMarker(location) {

    if (marker == null)
    {
          marker = new google.maps.Marker({
             position: location,
             map: map
          }); 
    } 
    else 
    {
        marker.setPosition(location); 
    } 
}

6

현재지도에 리스너를 추가하는 방법은 다음과 같습니다.

map.addListener('click', function(e) {
    placeMarker(e.latLng, map);
});

그리고

google.maps.event.addListener(map, 'click', function(e) {
    placeMarker(e.latLng, map);
});

참고


0
  1. 먼저 마커를 선언합니다.
this.marker = new google.maps.Marker({
   position: new google.maps.LatLng(12.924640523603115,77.61965398949724),
   map: map
});
  1. 메서드를 호출하여 클릭시 마커를 플로팅합니다.
this.placeMarker(coordinates, this.map);
  1. 함수를 정의하십시오.
placeMarker(location, map) {
    var marker = new google.maps.Marker({
        position: location,
        map: map
    });
    this.markersArray.push(marker);
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.