Drawing anonymous circles in Google Maps

2019-08-01 04:42发布

问题:

I'm trying to draw a google maps that has multiple Circle overlays, however I do not want to reveal the correct center of the radius.

So for example, myLatlng is my lat/lon center of the radius, I want to draw a circle not around it, but a circle that will include that point.

This is how I currently draw my circle:

        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 is a 'secret' location that I do not want to reveal, however I would like to have that point within the circle.

Is that possible?

Thanks!

回答1:

In your example code. The circle could move anywhere such that 33.3 and 22.2 could still be included.

One way to do this would be to simply add a random offset.

    // 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);

The tricky bit you've got is to ensure that the random offset doesn't move the circle out of bounds. The section Expressing latitude and longitude as linear units on Wikipedia should help.