1

这是我正在处理的代码的一部分:(这个遗留代码正在使用多边形路径绘制圆:

    GEvent.addListener(bigmap_rad, 'click', function(overlay, cpoint) {

        var radius = document.getElementById('circle_radius').value;             
         var c_center = new GLatLng(cpoint.y,cpoint.x);
        var c_marker = new GMarker(c_center);
        var latOffset = 0.01;
        var lonOffset = 0.01;
        var latConv = c_center.distanceFrom(new GLatLng(c_center.lat()+0.1, c_center.lng()))/100;
       var lngConv = c_center.distanceFrom(new GLatLng(c_center.lat(), c_center.lng()+0.1))/100; 
        // nodes = number of points to create polygon
        var nodes = 40;
        // Create an array of points
       var cpoints = [];
       var pointbegain     = null;
        // set the amount of steps from node
       var step = parseInt(360/nodes);
        // the for loop creates a series of points that define the circle, counting by the amount of steps, by 9 in the case of 40 nodes
       for(var i=0; i<=360; i+=step){
        var point1 = new GLatLng(c_center.lat() + (radius / latConv * Math.cos(i * Math.PI / 180)), 
        c_center.lng() + (radius / lngConv * Math.sin(i * Math.PI / 180)));
         if(i==0){
           pointbegain= point1;
        }    

        cpoints.push(point1);
    }
    //cpoints.push(pointbegain);
    polygon = new GPolygon(cpoints, "#000000", 1, 1, "#8000000", 0.5);
    //bigmap_rad.addOverlay(polygon);

(这里 bigmap_rad 是一个 google map v2 Map 对象,并且 cpoint 被传递给那个事件监听器)

我正在使用此 google map v2 代码将其转换为 v3 。但是偶然发现了这个

var c_center = new GLatLng(cpoint.y,cpoint.x);

我找不到这个 cpoint.y 和 cpoint.x 用于谷歌地图 api v3 的替代品。请有人建议我解决方案。提前致谢。

4

3 回答 3

1

我想我有一个解决办法。刚用这个

var c_center = new google.maps.LatLng(event.latLng.lat(),event.latLng.lng());

代替

var c_center = new GLatLng(cpoint.y,cpoint.x);
于 2013-11-01T12:55:47.527 回答
1

我有一个类似的问题,并通过用 lat() 和 lng() 替换 x 和 y 来解决它。

那将使您的代码成为。

var c_center = new google.maps.LatLng(cpoint.lat(),cpoint.lng());

也许这可能有效,并且是一种对我有帮助的快速解决方法。

于 2014-04-12T16:43:18.900 回答
0

好的,所以您需要在地图上有一个事件侦听器以进行点击。你想找出被点击的点。

google.maps.event.addListener(map, 'click', function(event) {       
  console.log(event.latLng);

  var yourCoordinates = event.latLng;
});

请参阅https://developers.google.com/maps/documentation/javascript/events#EventArguments

于 2013-11-01T09:29:59.727 回答