1

私は非常に単純なコードであると信じているものを持っています。ポリゴンとマーカーを描画し、ハードコーディングしたポイントがポリゴン内にある場合にアラートをスローします。しかし、これを実行するとUncaught TypeError: Cannot call method 'lng' of undefined、コンソールに「 」エラーが表示されます。

私のコードは次のとおりです。

   function initialize() {


        var mapOptions = {
          center: new google.maps.LatLng(38.990842,-76.93625),
          zoom: 17,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"),
            mapOptions);

      var box = [new google.maps.LatLng(38.9913160,-76.937079),
      new google.maps.LatLng(38.991333,-76.936119),
      new google.maps.LatLng(38.990287, -76.936108),
      new google.maps.LatLng(38.990278,-76.937057),
      new google.maps.LatLng(38.990495,-76.937052),
      new google.maps.LatLng(38.990499,-76.936424),
      new google.maps.LatLng(38.991091,-76.93643),
      new google.maps.LatLng(38.991104,-76.937079)
      ];

        var mPoint = [new google.maps.LatLng(38.991300,-76.936165)];
  var marker = new google.maps.Marker({
    map: map, 
    position: new google.maps.LatLng(38.991300,-76.936165),
    //position: new google.maps.LatLng(mPoint),
    draggable: true
  });

        var AVpoly = new google.maps.Polygon({path:box,
  strokeColor:"#0000FF",
  strokeOpacity:0.8,
  strokeWeight:2,
  fillColor:"#0000FF",
  fillOpacity:0.4});

      AVpoly.setMap(map);
marker.setMap(map);
if(google.maps.geometry.poly.containsLocation(google.maps.LatLng(38.990842,-76.93625), box) == true) {
 alert("yes");
}

      }

これに問題があることはわかりません。また、アラートが発生していない場合にアラートが発生する理由もわかりません。私のジオメトリが間違っていた可能性が低いので、それを false に変更しました....

4

1 に答える 1