我有一个称为“影响力”的圆,我想在圆的边缘上创建一个标记。我想不出任何办法。

我的圈子是这样设置的-

var influenceOptions = {
    strokeColor: "#00CC00",
    strokeOpacity: 0.7,
    strokeWeight: 0.5,
    fillColor: "#00CC00",
    fillOpacity: 0.35,
    map: map,
    center: latlng,
    radius: 30
};
influence = new google.maps.Circle(influenceOptions);


如何在该圆的边缘上创建标记?

更新:http://jsfiddle.net/jArU2/4/

如何在此圆的边缘添加新标记?

最佳答案

利用


Math.random()* 360获取随机标题
使用google.maps.Circle.getRadius来获取圆的半径
使用google.maps.geometry.spherical.computeOffset计算圆上随机标题处的点。注意:这需要including the geometry library
使您的地图变量具有全局性,以便一切正常


updated fiddle

function addInfluence(latlng){
    you = new google.maps.Marker({
                                 map: map,
                                 position: latlng,
                                 });

    var influenceOptions = {
      strokeColor: "#00CC00",
      strokeOpacity: 0.7,
      strokeWeight: 0.5,
      fillColor: "#00CC00",
      fillOpacity: 0.35,
      map: map,
      center: latlng,
      radius: 3000
    };
    influence = new google.maps.Circle(influenceOptions);
    var bearing = Math.random()*360;
    var newPoint = google.maps.geometry.spherical.computeOffset(latlng,influence.getRadius(), bearing);
    var marker2 = new google.maps.Marker({map:map, position:newPoint});
    map.fitBounds(influence.getBounds());
}

关于javascript - 使用jQuery/Javascript/GM在圆的边缘上创建标记,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17720237/

10-11 12:04