/** * * @param {HTMLElement} el * @return {{top: number, left: number}} */ function getDocumentOffsetPosition(el) { var position = { top: el.offsetTop, left: el.offsetLeft }; if (el.offsetParent) { var parentPosition = getDocumentOffsetPosition(el.offsetParent); position.top += parentPosition.top; position.left += parentPosition.left; } return position; }
Благодарность ThinkingStiff для ответ , это - только другая версия его.
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4077518
Слышишь, «покупатель»? Вам следует использовать GeneralPath, хотя отсутствие Polygon2D с конца 1990-х годов является очевидной дырой в API размером с грузовик-монстр.
Если вы действительно работаете с геодезическими значениями широты и долготы, вы можете использовать OpenMap для выполнения некоторых из этих работ. Я просто потратил некоторое время на использование класса Geo в этом API для отражения объекта вокруг области, определяемой многоугольником точек широты и долготы. Есть вызовов пересечений , и все и вся математика выполняется сферически, чтобы точки были более правильными в проекциях.
Самый простой (и самый ленивый) вариант - создать ограничивающую рамку для точек из максимума и минимума значений ординат X, Y.
Если вам нужно более точное соответствие тогда, вместо того, чтобы разрабатывать свой собственный алгоритм, это может быть хорошим местом для начала: