2012-01-22 52 views
1

..并且为我的英语感到抱歉。谷歌地图api v3 - 没有填充或无法填充的圈子

我想创建圈子没有填充与谷歌地图api v3。我知道我可以设置不透明度(并填充不满意),但是这种不可见的填充仍然是可点击的。我需要设置填充不可点击,但笔画必须可点击。例如,在我的圆圈下面,有几条点和线,必须可点击,而且圆比线条更高。我的想法是将圈子移到不同的窗格,但我没有找到如何去做的方法。有没有解决方案?

谢谢! 的Ajax

[编辑]

这里是代码示例。我的问题是,我无法点击蓝色圆圈内的地图或线条。

<!DOCTYPE html> 
    <html> 
    <head> 
    <style type="text/css"> 
     html { height: 100% } 
     body { height: 100%; margin: 0; padding: 0 } 
     #map_canvas { height: 100% } 
    </style> 
    <script type="text/javascript" 
     src="http://maps.googleapis.com/maps/api/js?key=YOUR_GMAP+API_KEY&sensor=true"> 
    </script> 
    <script type="text/javascript"> 
     function initialize() { 
     var lat = 49; 
     var lon = 15; 

     var myOptions = { 
      center: new google.maps.LatLng(lat,lon), 
      zoom: 18, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

     google.maps.event.addListener(map, "click", function(clickEvt) { 
      alert('mapClicked'); 
     }); 

     var line = new google.maps.Polyline({ 
      path: [new google.maps.LatLng(lat + 0.001, lon + 0.001),new google.maps.LatLng(lat - 0.001, lon - 0.001)], 
      strokeColor: '#00FF00', 
      map: map 
     }); 

     google.maps.event.addListener(line, "click", function() { 
      alert('Line clicked'); 
     }); 

     var circle = new google.maps.Circle({ 
      strokeColor: '#0000FF', 
      strokeWeight: 2, 
      fillOpacity: 0, 
      map: map, 
      center: new google.maps.LatLng(lat, lon), 
      radius: 100 
     }); 


     google.maps.event.addListener(circle, 'click', function(event) {  
      alert('circle clicked'); 
     }); 
     } 
    </script> 
    </head> 
    <body onload="initialize()"> 
    <div id="map_canvas" style="width:100%; height:100%"></div> 
    </body> 
</html> 
+0

它更好,如果你可以在这里提供一些你的代码... –

+0

什么样的代码?在google maps api中创建圈子?这是很简单的:'VAR覆盖=新google.maps.Circle({ \t \t \t \t则strokeColor: '#0000FF', \t \t \t \t strokeOpacity,用于:1, \t \t \t \t strokeWeight,用于:3, \t \t \t \t fillOpacity:0, \t \t \t \t图:图, \t \t \t \t中心:中心点, \t \t \t \t半径:50 \t \t \t});' – Ajax

+0

你在哪里得到错误,或者你试过多少u能提供在这里工作样例... –

回答

0

试试这个:画2个圆圈,一个用于轮廓(可点击),另一个用于填充(不可点击)。填充圆应该稍微小一些,并将其z坐标设置为位于另一个的顶部,这样可以防止您单击除轮廓圆之外的任何其他元素。问题将出现在圆圈下方,您想要保持点击的其他项目。

+0

好主意,但不幸的是,主要问题是无法点击的线.. :( – Ajax

+0

新想法:有1个圈。无论用户点击什么地方,您都必须计算它是否属于中风的一部分。然后根据需要做适当的事件。困难的部分将会计算圆的哪些部分位于行程区域内的几何图形。 – duncan