javascript React Google Maps API -包含位置“B.get不是函数”

uubf1zoe  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(97)

我正在创建一个标记,在Map被点击的地方,我想知道这个标记是在多边形的内部还是外部。我使用containsLocation函数来完成这个任务,但是我一直得到下面的错误“TypeError:B.get不是函数”。提前感谢您的回答。

function App() {
  const refPoly = useRef(null);
  const [position, setPosition] = useState(null);

  const center = {
    lat: 25.774,
    lng: -80.19,
  };
  
  const containerStyle = {
    position: "absolute",
    width: "70%",
    height: "70%",
  };

  const bermudaTriangle = [
    { lat: 25.774, lng: -80.19 },
    { lat: 18.466, lng: -66.118 },
    { lat: 32.321, lng: -64.757 },
  ];
  const google = window.google;
  const onHandleClickMap = (event) => {
    setPosition({ lat: event.latLng.lat(), lng: event.latLng.lng() });
    console.log(
      google.maps.geometry.poly.containsLocation(event.latLng, bermudaTriangle)
    );
  };

  return (
    <div className="App">
      <LoadScript
        googleMapsApiKey={GOOGLE_MAPS_API_KEY}
        id="script-loader"
        libraries={["geometry"]}
      >
        <GoogleMap
          mapContainerStyle={containerStyle}
          center={center}
          zoom={18}
          onClick={onHandleClickMap}
        >
          <Polygon
            ref={refPoly}
            paths={bermudaTriangle}
            strokeColor="#0000FF"
            strokeOpacity={0.8}
            strokeWeight={2}
            fillColor="#0000FF"
            fillOpacity={0.35}
          />
          {position && <Marker position={position} />}
        </GoogleMap>
      </LoadScript>
    </div>
  );
}
wgx48brx

wgx48brx1#

我也有同样的问题我是这样解决的:
取代:

const bermudaTriangle = [
    { lat: 25.774, lng: -80.19 },
    { lat: 18.466, lng: -66.118 },
    { lat: 32.321, lng: -64.757 },
  ];

......我这样写百慕大三角:

const bermudaTriangle = new window.google.maps.Polygon({
            paths: polygons[0].paths,
          });

        console.log(window.google.maps.geometry.poly.containsLocation(
            { lat: event.latLng.lat(), lng: event.latLng.lng() },
            bermudaTriangle)
        );

相关问题