这是我正在处理的代码的一部分:(此遗留代码使用多边形路径绘制Circle:
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是谷歌地图v2地图对象,cpoint传递给该事件监听器)
我正在使用此谷歌地图v2代码将其转换为v3。但偶然发现了这个
var c_center = new GLatLng(cpoint.y,cpoint.x);
我找不到这个cpoint.y和cpoint.x替代google map api v3。请有人建议我解决方案。提前谢谢。
答案 0 :(得分:1)
我想我得到了一个解决方案。刚用过这个
var c_center = new google.maps.LatLng(event.latLng.lat(),event.latLng.lng());
取代
var c_center = new GLatLng(cpoint.y,cpoint.x);
答案 1 :(得分:1)
我有类似的问题并通过用lat()和lng()替换x和y来解决它。
这将使您的代码成为。
var c_center = new google.maps.LatLng(cpoint.lat(),cpoint.lng());
也许这本来有用,是一个帮助我的快速解决方法。
答案 2 :(得分: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