Я реализовал react-google-maps
с <Drawing Manager />
.
Не уверен, как использовать объект, который он возвращает из onPolylineComplete
.Похоже, не документировано.Я хочу проверить, появляются ли другие области в этой области - чтобы я мог заполнять маркеры, если они это делают.
Итак, поток:
- Пользователь должен нарисовать линию вокруг области(например, Finsbury Circus, London.)
- Это вызывает
fetchNewsUpdateMarkers()
- Это вызывает API, объектов, каждый из которых имеет lat и lng значение.3.5 Я сопоставляю их, их значения lat-lng преобразуются в объекты google
LatLng
и ... - Я запускаю
containsLocation()
и возвращаю значения true
в markers
array.
Так что все хеджирует при получении массива координат области многоугольника из моего onPolylineComplete
возвращенного obj ?
Code:
<DrawingManager
defaultOptions={{
drawingControl: true,
drawingControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER,
drawingModes: [
google.maps.drawing.OverlayType.POLYLINE,
],
},
}}
onPolylineComplete={(obj) => props.fetchNewsUpdateMarkers(obj)};
/>
изатем ...
fetchNewsUpdateMarkers: (obj) => {
console.log(obj); // <-- this logs out as below
let markers = [];
let searchArea = new google.maps.Polygon({ paths: polygonCoords }); // <--that I hope to get from 'obj' somehow!
let arrayOfAPIlocations = [
{ lat: 51.518420, lng: -0.088690 },
{ lat: 51.518110, lng: -0.087970 },
{ lat: 51.517601, lng: -0.180250 }
];
// ^^ only the *last* obj in this array is West London.
// The others are in the same district of East London.
// So maybe something like:
arrayOfAPIlocations.map(each => {
let convertedLatLng = new google.maps.LatLng(each.lat, each.lng);
if (google.maps.geometry.poly.containsLocation(convertedLatLng, searchArea)) {
markers.push(each);
}
return markers;
});
}
Это то, что в настоящее время происходит от 'obj' ??: