함수 호출시 Google Maps Circle 및 Marker 다시 그리기

크리스

저는 Google지도에서 하나의 마커 주위에 하나의 원을 표시하는 웹 애플리케이션을 작성하고 있습니다. placeMarker(location, radius)마커를 설정 location하고 반경이있는 원을 바인딩합니다. placeMarker가 호출 될 때마다 스크립트가 Circle과 Marker를 다시 그리도록하고 싶습니다. 콘솔에서 시도하면 마커가 새 위치로 다시 그려 지지만 원래 원 반경은 유지됩니다. undefined또한 인쇄됩니다. 이 작업을 수행하려면 무엇을 변경해야합니까?

var map;
var marker;

function placeMarker(location, radius) {
    if (typeof radius === 'undefined') { radius = initialRadius; }

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

    var circle = new google.maps.Circle({
        map: map,
        radius: radius,
        fillColor: '#AA0000',
    });

    circle.bindTo('center', marker, 'position');
}


function initialize() {
    map = new google.maps.Map(document.getElementById('map'), {
        center: {lat: 0, lng: 0},
        zoom: 1
    });

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

    google.maps.event.addDomListener(window, "resize", function () {
        var center = map.getCenter();
        google.maps.event.trigger(map, "resize");
        map.setCenter(center);
    });
}
사무엘 토

마커와 유사한 작업을 수행해야합니다. 즉, 새 circle개체 를 만들어 지도에 바인딩 하는 대신입니다 . circle.setCenter(latlng)API를 사용하여 기존 원의 위치를 ​​변경해야합니다 .

참조 :
https://developers.google.com/maps/documentation/javascript/reference#Circle

불행히도 여기에 JSFiddle 설정이 없거나 그렇지 않으면 수정을 시도 할 수 있습니다. 그러나 코드 다음과 같아야합니다.

var map;
var marker;
var myCircle;

function placeMarker(location, radius) {
    if (typeof radius === 'undefined') { radius = initialRadius; }

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

    if (myCircle) {
        // Don't create new circle, update circle position instead. 
        myCircle.setCenter(location); // where location=latLng
    }
    else {
        // First time loading, create the circle
        myCircle = new google.maps.Circle({
            map: map,
            radius: radius,
            fillColor: '#AA0000',
        });

        myCircle.bindTo('center', marker, 'position');
    }
}


function initialize() {
    map = new google.maps.Map(document.getElementById('map'), {
        center: {lat: 0, lng: 0},
        zoom: 1
    });

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

    google.maps.event.addDomListener(window, "resize", function () {
        var center = map.getCenter();
        google.maps.event.trigger(map, "resize");
        map.setCenter(center);
    });
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Google Maps + 기타 라이브러리가 완전히로드되면 함수를 호출 하시겠습니까?

분류에서Dev

Google Maps Javascript API, Marker 및 Polylines 관련 문제가 React.js 앱에 함께 표시되지 않음

분류에서Dev

ngMap / Google Maps Api v3 : 모양 편집시 함수 호출

분류에서Dev

Google Maps Polygon-새 점을 추가 한 후 다시 그리기

분류에서Dev

$ (window) .resize 및 초기 페이지로드시 함수 호출

분류에서Dev

내 다시 그리기 함수가 내 paintComponent를 호출하지 않습니다.

분류에서Dev

HotTowel Angular 및 IIFE (즉시 호출 함수)

분류에서Dev

Google Maps Marker Shadow가 표시되지 않음

분류에서Dev

Google Maps jQuery Marker가 표시되지 않음

분류에서Dev

다중 및 공백 (무시 됨) 기준이있는 Google 스프레드 시트 쿼리 함수

분류에서Dev

태그를 기반으로 Android Google Maps Marker를 제거 할 수 있습니까?

분류에서Dev

리스너를 만들고 함수를 호출하지 마십시오. div 표시 및 숨기기

분류에서Dev

PHP의 라이브러리에서 함수 호출 및 쿼리 결과 표시

분류에서Dev

비동기 및 약속 함수가 내 res.json 호출에 아무것도 표시하지 않습니다.

분류에서Dev

ReactJS 및 Google Maps-마커 표시

분류에서Dev

Google Maps API 및 표시 위치

분류에서Dev

Google 스프레드 시트 쿼리, IMPORTRANGE 및 AVERAGE 함수 결합

분류에서Dev

Google Maps API v3 클릭시 마커에서 폴리 라인 그리기

분류에서Dev

Google Maps API에서 시작 다각형 그리기를 트리거하는 방법은 무엇입니까?

분류에서Dev

오류 메시지 : "함수 호출 중에 할당되지 않은 출력 인수 (및 기타)"

분류에서Dev

Google지도 이동으로 마커 이동 및 경로 다시 그리기

분류에서Dev

JavaScript에서 동시에 함수 호출 및 변수 수정

분류에서Dev

@INC 사용 시도 및 요청시 함수 호출

분류에서Dev

시리즈를 호출 할 때 Python, Pandas 및 NLTK 유형 오류 'int'개체를 호출 할 수 없습니다.

분류에서Dev

Facebook 그래프 게시 기능에 줄 바꿈 및 글 머리 기호 포함

분류에서Dev

파일 열기시 vim 함수 space2tab 및 저장시 space2tab 호출 방법

분류에서Dev

Swift에서 함수를 호출하기 전에 기다리십시오.

분류에서Dev

해시 맵이 변경 될 때까지 기다리는 함수 호출

분류에서Dev

함수가 호출되기 전에 활동 표시기가 시작됩니다.

Related 관련 기사

  1. 1

    Google Maps + 기타 라이브러리가 완전히로드되면 함수를 호출 하시겠습니까?

  2. 2

    Google Maps Javascript API, Marker 및 Polylines 관련 문제가 React.js 앱에 함께 표시되지 않음

  3. 3

    ngMap / Google Maps Api v3 : 모양 편집시 함수 호출

  4. 4

    Google Maps Polygon-새 점을 추가 한 후 다시 그리기

  5. 5

    $ (window) .resize 및 초기 페이지로드시 함수 호출

  6. 6

    내 다시 그리기 함수가 내 paintComponent를 호출하지 않습니다.

  7. 7

    HotTowel Angular 및 IIFE (즉시 호출 함수)

  8. 8

    Google Maps Marker Shadow가 표시되지 않음

  9. 9

    Google Maps jQuery Marker가 표시되지 않음

  10. 10

    다중 및 공백 (무시 됨) 기준이있는 Google 스프레드 시트 쿼리 함수

  11. 11

    태그를 기반으로 Android Google Maps Marker를 제거 할 수 있습니까?

  12. 12

    리스너를 만들고 함수를 호출하지 마십시오. div 표시 및 숨기기

  13. 13

    PHP의 라이브러리에서 함수 호출 및 쿼리 결과 표시

  14. 14

    비동기 및 약속 함수가 내 res.json 호출에 아무것도 표시하지 않습니다.

  15. 15

    ReactJS 및 Google Maps-마커 표시

  16. 16

    Google Maps API 및 표시 위치

  17. 17

    Google 스프레드 시트 쿼리, IMPORTRANGE 및 AVERAGE 함수 결합

  18. 18

    Google Maps API v3 클릭시 마커에서 폴리 라인 그리기

  19. 19

    Google Maps API에서 시작 다각형 그리기를 트리거하는 방법은 무엇입니까?

  20. 20

    오류 메시지 : "함수 호출 중에 할당되지 않은 출력 인수 (및 기타)"

  21. 21

    Google지도 이동으로 마커 이동 및 경로 다시 그리기

  22. 22

    JavaScript에서 동시에 함수 호출 및 변수 수정

  23. 23

    @INC 사용 시도 및 요청시 함수 호출

  24. 24

    시리즈를 호출 할 때 Python, Pandas 및 NLTK 유형 오류 'int'개체를 호출 할 수 없습니다.

  25. 25

    Facebook 그래프 게시 기능에 줄 바꿈 및 글 머리 기호 포함

  26. 26

    파일 열기시 vim 함수 space2tab 및 저장시 space2tab 호출 방법

  27. 27

    Swift에서 함수를 호출하기 전에 기다리십시오.

  28. 28

    해시 맵이 변경 될 때까지 기다리는 함수 호출

  29. 29

    함수가 호출되기 전에 활동 표시기가 시작됩니다.

뜨겁다태그

보관