0

addPoly 関数の内容を初期化関数に使用しており、完全に機能します。しかし、関数 addPoly を作成して初期化関数から呼び出すと、機能しません。ユーザーに形状を選択させたい。したがって、ボタンをクリックすると、特定の形状関数を呼び出すことができます。

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <style type="text/css">
    html,body {height:100%;}
    #map-canvas {height:92%;width:100%;}

    </style>



    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
    <script type="text/javascript">

      var shape;
      function initialize() {
        var mapDiv = document.getElementById('map-canvas');
        var map = new google.maps.Map(mapDiv, {
          center: new google.maps.LatLng(24.886436490787712, -70.2685546875),
          zoom: 4,
          mapTypeId: google.maps.MapTypeId.ROADMAP,
          zoomControl: true
        });

        addPoly();          
      }

      function addPoly(){
         shape = new google.maps.Polygon({
          strokeColor: '#ff0000',
          strokeOpacity: 0.8,
          strokeWeight: 2,
          fillColor: '#ff0000',
          fillOpacity: 0.35
        });
        shape.setMap(map);
         google.maps.event.addListener(map, 'click', addPoint); 

      }

      function clearAll(){     
         shape.setMap(null);    
      }

      function addPoint(e) {      
        var vertices = shape.getPath();
        vertices.push(e.latLng);        
      }

      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
  </head>
  <body style="font-family: Arial; border: 0 none;">
    <div id="map-canvas"></div>
    <input type="button" value="Clear" onclick="clearAll()">
    Selection Type:&nbsp;
    <select id="selectType">
        <option type="button" value="Polygon" onclick="initialize()">Polygon</option>
        <option type="button" value="Circle" onclick="initialize()">Circle</option>
    </select>
  </body>
</html>

</p>

4

1 に答える 1