Так что я пытаюсь отображать фигуры на Картах Google (используя V3 API), которые имеют ту же форму, что и меньше внутри. В основном коробка с коробкой или полигоном внутри полигона.Google Maps Нарисуйте меньший многоугольник внутри многоугольника
Для прямоугольника У меня есть следующий код, который работает:
var drawEdgesRectangle = function (shape) {
// shape is the original, parent rectangle
var NE, SW, childNE, childSW, padding, diagonal, inner;
// set padding constant to 1 (i.e. 1m distance all around)
padding = 1;
// get diagonal distance from corner
diagonal = Math.sqrt(2) * padding;
// get NE of parent
NE = shape.bounds.getNorthEast();
// get SW of parent
SW = shape.bounds.getSouthWest();
// get child NE, SW
childNE = google.maps.geometry.spherical.computeOffset(NE, diagonal, 225);
childSW = google.maps.geometry.spherical.computeOffset(SW, diagonal, 45);
// render inner shape
inner = new google.maps.Rectangle({
strokeColor: 'white',
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor: 'black',
fillOpacity: 0.35,
map: map,
bounds: new google.maps.LatLngBounds(
childSW,
childNE
)
});
}
Конечно, делать это для многоугольника другой коленкор. Я знаю, что могу использовать getPaths()
, чтобы получить атрибуты каждой строки, но разработка того, как размещать внутренние линии, и, действительно, работать там, где «внутри», оказывается для меня совершенно концептуально сложной.
Я хотел бы знать, возможно ли, что я хочу достичь, с учетом API google, и буду признателен за любые указания по его устранению.
Насколько сложна многоугольники вам нужно сделать это? Они произвольны? – geocodezip
В идеале я хотел бы принять любой тип многоугольника. В действительности проблема вряд ли будет состоять из> 10 строк. –
Число линий/вершин не является реальной мерой сложности. Могут ли быть вогнутые стороны? Является ли центр многоугольника внутри многоугольника? Если да (и нет вогнутых краев), вы должны сделать что-то похожее на то, что вы делаете для прямоугольника. – geocodezip