Рисование анонимных кругов в Google Maps - PullRequest
1 голос
/ 28 марта 2011

Я пытаюсь нарисовать карты Google, которые имеют несколько оверлеев Circle, однако я не хочу показывать правильный центр радиуса.

Так, например, myLatlng - это мой широта / долготацентр радиуса, я хочу нарисовать круг не вокруг него, а круг, который будет включать эту точку.

Вот как я сейчас рисую свой круг:

        var myLatlng = new google.maps.LatLng(33.33333,22.22222);
        var circle = new google.maps.Circle({
              map: map,
              radius: 3218,
              strokeColor: "#FFAA00",
              fillColor: "#00AAFF",
              fillOpacity: 0.3,
              center: myLatlng,
              zIndex: 99999,

        });

33.33333,22.22222 - это «секретное» местоположение, которое я не хочу раскрывать, однако мне бы хотелось, чтобы эта точка находилась внутри круга.

Возможно ли это?

Спасибо!

1 Ответ

1 голос
/ 28 марта 2011

В вашем примере кода. Круг может двигаться в любом месте, так что 33.3 и 22.2 все еще могут быть включены.

Один из способов сделать это - просто добавить случайное смещение.

    // Generate random between -5 and 5 (just an example)
    var latOffset = Math.floor(Math.random()*11) - 5;
    var longOffset = Math.floor(Math.random()*11) - 5;
    var myLatlng = new google.maps.LatLng(33.33333 + latOffset,22.22222 + longOffset);

Хитрость, которую вы получили, заключается в том, чтобы гарантировать, что случайное смещение не сдвинет круг за пределы. Раздел Выражение широты и долготы в линейных единицах в Википедии должно помочь.

...