codice / ddf

DDF Distributed Data Framework - an open source, modular integration framework.
http://ddf.codice.org
Other
132 stars 181 forks source link

[2.19.x] G-9293 Add normalization option for image overlays #6649

Closed jrnorth closed 2 years ago

jrnorth commented 2 years ago

What does this PR do?

Adds a new option to the overlay metacard transformer that, when enabled, normalizes each overlay's orientation by matching the upper-left and upper-right corners of the image to the left and right vertices of the polygon's northern edge, respectively.

Select relevant component teams:

@codice/core-apis @codice/io

Ask 2 committers to review/merge the PR and tag them here.

@jlcsmith @kcwire @millerw8

How should this be tested?

Ingest this sample record, or any record with a rectangular WKT and a thumbnail. Verify that without enabling the option, the top edge of the image is aligned with the 'top' (not 'northern') edge of the rectangle (the top edge of the rectangle is the edge with the WKT's first two points). When the option is enabled, verify the top edge of the image is aligned with the northern edge of the rectangle. See the screenshots for an example.

<metacard xmlns="urn:catalog:metacard">
  <type>ddf.metacard</type>
  <source>ddf.distribution</source>
  <dateTime name="metacard.created">
    <value>2021-10-18T20:49:38.028+00:00</value>
  </dateTime>
  <dateTime name="metacard.modified">
    <value>2021-10-18T20:49:38.028+00:00</value>
  </dateTime>
  <dateTime name="effective">
    <value>2021-10-18T20:49:38.028+00:00</value>
  </dateTime>
  <dateTime name="created">
    <value>1987-10-19T11:07:27.064+00:00</value>
  </dateTime>
  <dateTime name="modified">
    <value>2021-10-18T20:49:38.028+00:00</value>
  </dateTime>
  <string name="point-of-contact">
    <value>system@localhost.local</value>
  </string>
  <string name="metacard-tags">
    <value>resource</value>
    <value>VALID</value>
  </string>
  <string name="title">
    <value>Polygon Location Test</value>
  </string>
  <string name="location">
    <value>POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0))</value>
  </string>
  <string name="thumbnail">
    <value>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CGiLGQrFNatWoGWPOeH89c+v7Pn31vR1fmP0/nvq1am7jy/6LLsfKfp/PfVqitU1q1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1aoApvL8gGWF37Xu+ZfR59j5T9Fwvq1aorjvVz5/uX0353UoOrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWpvjhznh/PX3se456+zzH6LHsPKfouF9WrVqY6jy/6PH0Hw9b3jbVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWqAKjzfJa4c/Qez7sM3mf0GPRcL9b5j6tWrVFcB7eQHvRfB1VWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1agY4c74vgXnre096uyK4P2shtegeHrNatWrVTdS+de9l6l83s8zOrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1aqnzvLZcvH0Pte8otq57uThfZz9R+c2dZnVq1amzjyv6TH0Lw9bvkbVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1akKnOeH8/a+h6dj3ehq1AYeY/RZdR5z9Z5jzWrVqGbzD6LHsfKfouF9WrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVqY8nHS+X43R+39CXTTVq1cv6CcX6+fp3zuz7I6tWoZvMPosex8p+i4X1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWqk8rxkqt56/tTHVq1CYece9kJru/G0tOZprU01Hlv0ePoXh63nG2rVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVqSF5zxPn7Tv9Kx7fQ1atWrUz1HFetnQdy2nMX+JQan6g5S9H8DVwh1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atQkz5vwvnb72Pcd9HVq1atWrUk1ZutH2K01Exsec9BxM6zOrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1Axx53xfn+j9v6A2u2rVq1atWrVqitU1q1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrU15+ag8fw+l936Ej6atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1NsObn/G8LpPc+hLprq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrUNE5vw/nbv1fZe9XZq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVAFL5fjizyvvX9xTNq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrUDHHnvG8Cz7/StO/0pJ1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVqYcfDSeV43Re377jbo1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVqSBQeN4Tnfe49P19WrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atVfx8NR5vk9H7f0BH01atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVqGic74nz9p6Hp2Xd6GrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWqr8/za7i4Oi9v3ls+rVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atQs8+e8XwLLu9C09D09WrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atVdxcFR5vk9F7X0BtddWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1akqtB4/hkd7v1fZUzatWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1N8cKDxvCf9ndbel6qidWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1atWrVq1amvPzUPkeJZ9/o2nf6Uk6tWrVq1atWrVq1atWrVq1atWrVq1f//aAAgBAQABBQL/AFRPdJhFzvLO6SE/pKV/pKVnc5XBvK+ZaXAnj/313t8IRPcruV221KlcezpA/RKH+iUM7QgjcNs93VtF3iQaj/fTdzcqO4mVczbdtuiEBA+5fwc2MVtrixn5sf8Avp3meg2u35siE4p+6RUbvbYq2e6oQaj/AHzq4buusmyx9P39zhzitTyrm3VlH/q0qCXLeojcu8JDO9v9NP8ATTh3hKnFcJl7r9nc/wB/tH7r792KxK6bqyNYf9WXN8mEXO7KWfprgx7VItp2Qv8AQrOyufbZIXBeSW6rLcBMAatXDdk0m2ZXR9+f93c6XW3/ALn/AFXfXPJRLKu6ks9pycNiiNhIH3FxJWL/AGurqu0Xt+5cx1qN4/ebL7H35/3d1/jW3fuf9VHhvM+uz2uZSnEfeIq9w28SJGVpNYXPOi3kdeyK6fv3JpFKcrqxFIf9VL9ndP3+zp+j/mCKjd7Wj2m4xVvIqNkV/MbjJhFAOZdWwxj/ANVK9ndk0m2ZX0f8zuEPMiQTBc3x5tvs6qSDh91awgbvfZPZ4MlpFB/qoveU9eyL0/mZE5J3SHlzJmzt9tNJ0ez9xawgbluTgt13UllaCBH+rN6j02eTFY4fzO8W2SBJy3YH6eH933muUxC+3bJ29sq6XZ2QgT/q3c4s4rVfJuLdecf8zdIzi3JPJl2mTKWH925rpMQud5Ac95JcGz25UiraGO3SbpAZv4w/0jG/0jG/0hG03iFMLCv9UTIzRfwmCbabvJP8yRUeI4MXskv8YRII4L3xDFEbjdjcGLqaJY42d0xar+VbznW+VOp+6zP3WZm2nDymiNtuq4zaX6Zx/qfdLPmJhlVaS2d6mZH8z4mR9BswPvd4VLs7vbrhc9ntMtItqkaNmUXHsgce1IS02MYYtkB8hL5CXyEOSxQt320UcUq7SSwvRMn/AFFV1dXVqAUNy26rjlktV2m7AuO4RJ/Mb3bGeGw2/krQOkWaFFMccbjManT+ZUnIbltwItbg20trOJkfz8soiTc7xiTvKn+mFP8ATCn+mFv9MKZ3YlzXCZXJMYzHva4TB4po0eJo1NG/xljeIy/0vG0bohRRMlYVisKgSk0aXu9yqFG2b0oXUS+Yj+ZkRmndLPlr2m8xKTkP57d5CmO1tzcyJ2UU/QqX+hkv9Cpf6GSzsoatkcmx1cvhoqc3hqVLVs88b91nQ0mZLzlcU0qTDuMgFrfSLVXJPB84Je54zxzj3a52HchPD/NX0Alj1t7mxl5kX89vXsbQqko4feo6MoBarWNTXtkSmvZEF/oND/QiGNojSxbwwObcURhe51ars0nvVKXebcuSLbbxdlNt+6pmQlYV/MqFU7tFhLs0tUfz25Qc2JCjaz2N6mVH82SA5bxEbm3hIc27qU1TzTP3Za3BYO8UlL2/b+dIuxQYN12vky2ci4nabqUOC9RKOP8AMb2nXZP59QyG5bbk0SSWirPdgQi5RI6/eJAa7lCHPuqUOfd1KZVLcGLa1yOLZQ/c44U4gqvJhBHbwm6ls7UQoe6WnMRGgJlk2/JKZJbZVrvDhvUSsGveoZlSHPuCIxf3nvC9ljIH8+pIULvbUyufb5ISi5lgMO8kOLeEqaL+NT98jatwjS5d4SHPu6lMzzTOOxlldvszhsERsICWpWInlzJIiRcym5m2qz5ae0qM0blAYZdpuBIm421ErudpUh5S2yod4UkfppnemveFlm+lkfKmndptBJggEKf9QqiStzbYiRzbK5NskQ+TOh0nYt5ltG1yLcGzOLbkIaYUp+5dSuFGZ3abF7Ta81SE4J77va5osZTBPBJzIykKc+3ola9l1/Qr/QjRsoce1oS0WqEMCn+pigFm2QX7ohi3QGEAfelVilZ5i4kYx7oazbOikf3JkcxF9DyJ9puc0f76LqV20eRIojcv3+0/uvu7xbVTtk/KljVkn/fNKrFKutdvHilfs7l+/wBp/dfduouZHOn3e42y45sf++a6kdtHVQ0auG7ppLs0lUfdOr3m2o9nuMVA1H++SVWKVHmLgjxHbe4nsstD97cos4YFcm5tl5xf75LuR2yKqGnfdIM47STkXFvJzI/uzpyju08u52xWUP8AvjUaCdWS7VFB3lRmi/g5M203eSfur9nch/GNp/df747ldExjNaBRP3N1tOYi1lNtNbTiVH3F+zuX7/af3X++O7U7RH3pEZp3OyMa7HcTAbe+RKAoHvcTCOO6k51ztiMYf98R4XBqu1HT96e3EwvNpo/pbYxbutDG9tW9ufcJJ3t9iqSSGPlo/wB8S/Zk1kgFE/fKQpzWCJXJsoL/AEIxsjh2hKXFAmIf745fZ4yR+z/vxn9lH7xHs/78ZvZTpJH7P+/FYqmUYyW6sk/78rqN20tCDX/flIjISI5araav+/O4iyCTy1xLyT/vxIq7lFDaL/353KKiJWC0Go/34rFRMnBdtJUf78rqOogXipJqP9+K05CZGCraWo/35XMVRGrlrjXkP9+JFRcRYm2mowa/78pY8xJGY1W87Br/AL8pYsgtJjVbz/6r/9oACAEDEQE/Af2i3c22227kf6MJ0p2u12u1IQf9FnQDuOg/0VJH0JIP+iix+gf9A27nc7nc32lj9A6D9ttvSna7Xa02g6lj9IfthfKA13EPhB0LH6Q/bJI+iQ+EMmP0h+2Fj9IhDJj9A/txY/SOhR9AlH7bJj9M6DvJfKB+2yY/TOg7iXygftxR9MpRrbubQNLbbbbb/aig/Tkx0Mm9bb77Qf2gh8IP0pMI2mBpOMu1p2u1prtpIfCD+0EPhB+jVuOLSQyj9QhH7Fubbbbbb13O93u53O5vWGhZN8/UIQf2Aodrtdrtdrtdrtdrta7bQXGdKZBmxP0zoPryR9Sna7Xa1pv2ozhGRlkZcoNIP0yx+uXwg/Vt3NtufLThkSX0QGkhCC39GTH9gIfCD9K29KdrlkIBJOSThxbQhGhGlaAt91pLH9hIa03O5ttt3N6U7WtJS2hzZNxp6fF66AdhQ01pbudzbegH7JTta7KdrXb1OX0cMN5tA2hA7SjWna7Xa7Wmv2mvoZJbQzO+Tgx7Qlj3FH+iepyej0+PcbQKCWPdJH+iMstoZffNwQ2jQse46D/Q/U5PR6eFm0CtCx75I/0NlltDI+5JwY9o1kx7z/ofqp+j08LKBQ1KPoFH+hJGg5pbpPTQodpQe8o/0J1EqDjG+TAUO0hHeWP+hOqk9LH17yEFvuH+gz4eoNyemHH0CNLdzubQP9CT8M+ZuAVH6NO12u1r/QuX8L5m4/w/6SzfhYfjYeP9JZvwseJuPx/pKYsOQbZvTysf6T6nH6vT5NppBv8A0lkhuDkiccnp818f6Tz4twYk45OKW4f6SPL1MKNvSz9P9J9RCw4pbJMDY/0lIWHNHZJ6bJY/0n1OOw4J7SxNj/SU47g5YbJPTZb4/wBJ9RjsOOXtycctw/0kRb1GPabenzVwg3/pLLj3hnjOMuDP6FBv/SWXGJBnE4y4M18H9r//2gAIAQIRAT8B/aIYzJx9J+b+mi/p4v6eL+niz6QVw5YbD/ozDhM2GOOMOTqRHwy6ov6mT+pk/qpODqN/D1WK+f8AReKO4sIDHFz5/QJN9uGe0v8AEg5obT/orpIPUz2ikmz39Lkvh6rH6/6K6UUHq5c/Q6eVScn3QZij+3VbHDKTHpSX9I/pH9Iz6UhlAx1Hl6f8L1X4voY/xI5g5fxftuPCZuPpgPL9kE9TEJ6t/Vv6thnjJnijkDlwmOgemP2vVjn6EPLj/A5/xftmHHvLGIxhy9TXhlmlJvsEiHD1PoX7coc/T7edOl8PV+foQ8uP8Dn/ABftnSQ9XqslcJN9/hwZ9pTWSLmx7ZPSeHqx9DH+JjxBzfi/ax5en/C9Ufu+l0uS+HqoWLekerH0MEbkz+2DkNn9rD0x+16sc/SwS2ySN8HD9s3qhx3gW9Lhrl6qdCk/tnSHh6sfSBovTz3RpMam9QPtT57QLen6f1LOYxhzZd5/bekk9VGx9PpclFMb5c/4WfnshjMnD01clnkGMOXKZn9u6eVScg3wZij9LGaL053h6qNRZ+dI4zJx9L+bDFGDlziPAck5TL7cn2ZPsSfYk+xJOKQar9oiaLglvjT1OKjf0+gnfD1kfsTHdKg4ehlLlh02xlx4TGUn9PflGGAaxh3QD7kH3IPuQahJydMD4cuEw/aOny7SyiMsXLiMT9L4+X3PyPV48WPkuP5XEMr03y2ExZdbjn4ZdTFPVhl1aepkU5pPuSd5d5d5Y5pBw9V+bKMcoc2HYf2ccODP6FlGOQOXpfyZYzH6GPN7XL8x8hkmSLRmnuenzz2+XpOqmTT9xF/SBp6fP6FyQGSLkhtP7BGO4uPpbf0gf0of0of0of0of0wDCBixjbLpIzZ/G/kn4+QT0Un9LJ/SyT00gmBDkidr8jH7kRFvT8B6OA3WwwieKwyG019IGi9Nl3CnqsV8p4+v0sbLkn7YT1Zf1Zf1Zf1Zf1Zf1ZR1iOsY/IUw+QiUdVjk+5Ap2F2xZRiWeCJc2CIi/LYTfDtkCxzbA9H1JJfjCckKL1nTmEr+nhntL+ODmjtl9fpPL1Q+36VlGSQR1Egjq5P6wv6wv6qRd85vU9AcwssviOWXwsyeHoPhDDmT0e3Cdr1GIZYufpjApFfRD00ri9XHn6/Tz2ySPci5sRifqxxSkx6Ulj0oHl2Qg9V1cYCg4+oM5ODHYsubKMYoIzHdb03Ubg5RGTl6a/DPEY/R6QvV/XBp6fqK4KYxyhy9NXhOMj6AxksOmJYdKB5ahBl1MYsurc/VGmU5ZZPQdL6lnMY4uXIZnTpsu0sjcbY56NFMY5A5Ol/JnhlHt2lhglJwYvbD1cv2C6cXUGLDPGXlOOE2XSfky6UhOGQfakjBIselJYdKB5RCEGWaMWfV/kyzSkk2ylTlybjT0nT7y4oDFF6nLZrWJouCe+L1MNpsMM5i4+pB8tQyMulBf0j+kR0ofZgHdCDl6r8mczI/sQkQw6ghh1aOoiXfAv8ALd8AnqYhn1f5Ms8imRPZ1GT0cMN5eixAB6nJtFJN9nS5KLmjvizG0t0wzmKOrf1b+rT1ZT1MinIT+z2X3C+7J3ls92SW0Mjvk9PCnpvwvVHntgaLhlvi9Tjo/wCieoyejghZtiKen/C9T+Lu6XJ6PUQ3RtIo/wCh8kqCfvk4YbQjy9P+F6n8XdjltLA74PUQ2n/Q/UT9HBCzaOEPSm4vVx57+kyej1ULF/6GySoMjvk4YUNejk9XHvwSqTMb4OQUf9C9RP0cEbKONemnRco3xZij3QNFxHdB6gVL/QkjQcst0np4UOyJouGe+NPU4qN9w8vT/hep/F/oTPKgwG6TAUO3psm0uSPuRckNp7R5en/C9T+L/QnUyemj3RNF6fLYoubAJ8hnhMWtYRJLjjtg9Qbl/oMuY3J6ccd8JmLi6n837MjLpQX9IjpGGCMHPmERQZHcf9Bz8M+ZOEcfQumOaUWPVl/Vv6tn1RLKZl/oTJ4fM3H4/wBJZfDD8bDx/pLL4Y8TYeP9JSFhmNsnDKx/pPqIergnRpBv/SWSO4M47C4Mt/6TzY9wR9knHLcP9JFzwovTz/0nnhYcZ2yYmx/pKQsOWO2TgnY/0n1EHFLaWJsf6SkLDkjsLgyXx/pPPjsMJbJMJbh/pIi3Pjo24MtcIN/6SyQ3BnAwLhzehQb/ANJZMe4MomBcOX0/a//aAAgBAQAGPwL/AFRxen3df992jqe/B8HUPE/76y6MFQen3T2H++qjq6ffyDx/31Udf5g9h/q/i9PuavTuew/mC/tY/wBW8X09tfuVD1fH+cPYf6sLo6qfB8Puauo7UP8ANnsP9WUdT/Mkgfzh7D/VZ7D+ayDxdf5k9h/qs/zh7V/mKl4h5f76aunYfd1ZSC6n/V1XT+bqyOw+5xdEup/1eew/miywx24vR6Oqu3F8XxfF8Xx/1SQ6sA/zZLDBLKQXoXUnt09vN+b835vzfm+r/VNew1/miX9ron0Z4vUdtXq+D4Pg+D4Pg+Dqn/VNHUdtXx/meDo607afzeQdGP8AUFXp97V8Ho+L1fF8XxfF8XxdPuaPFRYV/NUeQeJ/1Af5rR6Pzfm/P+YLyYST/NnsP9VcHwfB8HwfDvQd6B50dGKl6fzVXT+fPYfzvF6PR+b1dS8UupDxoyR2op8f9VVHbV8f5ji9Hp21evejqx2JdC8k9qKfH7vF8Xp/qLR6dte3F8Xx7adtXq+H3Kl0Dqe5Dq8S+D6e2vfTt5uqnT/UWofB6PR+b835vV6vg+H3KOrxDyLp9yrowe3D7vB8P9T8HwfB8Hw/nyHV0/300de4+9V0YP8AvqPYfePYf788nj/vrq6ffPYf76i6MfePYf76iHV0+8ew/wB9ZLox909h/vro8g6F8fuF6Mf77ap7a96OpdP993B6fc0/5brV0/6fYq6f8sF//8QAMxABAAMAAgICAgIDAQEAAAILAREAITFBUWFxgZGhscHw0RDh8SAwQFBgcICQoLDA0OD/2gAIAQEAAT8h/wD0hZIsCjuKm/NX3UR3SAdMM7/+q1itQdrQTFiB5usL6C+tXmLgVgUsUn/6qBk1QGdoGksMH/4TzUeBtLV/+qlct2ZNMh/+KbGzwVBTYh//AFDNmz/+FQ6lwhh/+QDo6qQGbZl/+nGa/wDGcuu2NLN1iFTtf/g38/8A+VBD/wDTUBYrbtWgqeRtRmVgUt4y8gU2NoUdUBJRLv5iyH/8gzb9iufg/wD0w9212FSbCAoZi8PUWLFiQolOnfgUiNthKf8AHg//ACX/ACX9T/8AS1CarG0AKaAAf/jAw3fhfMhNAN2LHL/8kfXb+Sv1j/8ATEp15oH/AOTAw2ehXnP/ACGsU/8AxjUk3uwr/wDS900vdkB/+VwK+N7YCs2uR/8AiQ0Bq1SRYM//AEvg2OVxH/5UmVYp3ZtXP91z/wDhpArBS3YlJZv/AOmyv/jTkP8A+VJArJWzl93Xwf8A4G6i6WoUGKUzf/07iVeNzaLv/wAoSRfFL9+v6v8AxNIsgOxZNFXFaTenXqF9C+hRul6pSsf/ANJMjMjabqjJ/wDkzBcqXKfNaOCKYGb00rLRPE1BBvBz/wAgsH/UgNYIE0Du0Z//AEcHBYC4TZg1Rnj/APJHJ1QljKk7tOWtsHJUHD/zROFC4XpV6DfSvpVbrT3FgoWGqgU2Lv8A+hw82Hmw82Hms1FBt4VsFNB0XKGf/wAaMCcu7yuFcWSDQtAi9doDr/8AJCJK4HaXWE1ynf8A9AYJoqL/AIT/ALp8tHgUzyswnQ2ouMdM4Xo9M431bDoWcAuyRszCg/5dcKfyrQG7P/ygRV2GsKWFf/z40a7ndsHlPBfVfRfVYvF8BV62QhWcN6OuyVylfNQLtLm0SM0RrXX/AAe6VwGQ3XRFGf8A8rMtvwtv1z/88apwNcn/APHDxYeLyQbzJspmpYL6tC6UnYKhMlmgUHBUSvnVdrUAlAbzIUGVP/5M0XDebF//AJ7EXwfaCLtGf/yxdaPosrK486hU7lY6n0jsk31uqA42xYLlcEpLE0Th/wDjeKFrj/8APFRs5OxnSKCHSMFA8f8A4uVYvLChMqil90270qSIV4om8UZVA5s/btxzf+EIWN3df+FvesrEJTDFEY2f+Jct58Vvia0etotT/wDQIAlMUbVCW6ybClwwtE4VI4Xrll4bm2xk13leBND4UrClRISq+a8kCwJb/wBCwjJG0HrQZBZFo7yLCv8Ai/X/ACXBTZG0ZCnAf/oRFOsXmjV+V6tMNclT3K8MaeYvF1x/ybCQryrFpChTAf8A4JIG2dGNpUDISmOKbg/5NcU/JenXhBROEf8A6LF5cXqX/N1q8MP/AMUpUrPPq5dAX/8ACalSAQTYBP8A+CLH/wCo1i9S6KzJ6p/en/8ACc2aJXlvdH/9T5OVN4L/AIP565+D/wDEZorz8bQFO/8A6mW9ZdJohRLun7sSf/iEEs5BWnNiH/8AUspWrE/8eLpilUaf/iHJ1Wh42yD/APUsBF0qYR/2fFaZm0Ef/iiF/K36R/8AqSZbhXX/APwFYZyQTTJtGf8A8Wg+1/Q//Ukl/wA2O/8AwxAWcsJrMOx/+Lfz39D/APUnXZmf/wAQOqkGlXorF4Fs2bNDfINqSP8A9R5rMsf/AOMlErtCj3cpESqVIy5KYaCOgA//AFG4dV4n/wDIIhJoTitYvK6cV0UsQH/6kcOlTB//AC4sf/qblu74P/1kZddVJ/8A1lIf8KM//WTt3hdNYs//AKztJ7DBo/8A6yFWpaI//WUC796f/wBZy7cmw/8A+sserJYs/wD1noXLsM//AKykak9jD/8AWenWoB//AKyyq0KypUzJ/wDrIKyAvS2BP/6yLi/5qQhoz/8ApX//2gAMAwEAAhEDEQAAEAAAAAAAAAAABJIMBAAAAAAAAAAAAAAAAAAAAAJP5a8UAAAAAAAAAAAAAAAAAAAAA7wAHWAAAAAAAAAAAAAAAAAAABPUAAEPgAAAAAAAAAAAAAAAJIAAuQAABjQAAAAAAAAAAAAAAPI4iBJwAABnAAAAAAAAAAAAABLCy/LkGAAAB3QAAAAAAAAAAAAAXypI7RDQAAAzwAAAAAAAAAAAAMXAAAMy2QAAA2QAAAAAAAAAAAAJiAAABrr4AABWQAAAAAAAAAAAAIUAAAAOD8AAFagAAAAAAAAAAAAFoAAAAOnEAAw+AAAAAAAAAAAAAARgAAAAvaBJTYAAAAAAAAAAAAAAOQAAAAE3M+vj61AAAAAAAAAAABZoAAAAiEGr72yV3AAAAAAAAAAADWAAAAMcZdwuz78IAAAAAAABEklAXAAAC8b8AAABKcAAAAAAALJaT/2f/wCelK2gAAAB+wAAAAAABzlnuQ8facpuYwAAAAWUAAAAAAB9AACLAPVq9WZSAAAAKIAAAAAABDQAAAABSAUzUFNAAAQgAAAAAACY1gAALFW9lujg1fQL18AAAAAAAR7/ADn0o1gHtg+M0Hdr/AAAAAAAABy1Jibg58GAGvFjjCQAAAAAAAAAETl0AADM4AByAEgAAAAAAAAAAAAAAAADT6IAEo4AAAAAAAAAAAAAAAAAAGbg4AARAAAAAAAAAAAAAAAAAAA5FjgAAViAAAAAAAAAAAAAAAAAAfohIAACeAAAAAAAAAAAAAAAAAAnIFtAAF8AAAAAAAAAAAAAAAAABaADUgAAVAAAAAAAAAAAAAAAAAGOAA7wAG1AAAAAAAAAAAAAAAAAAdAAPZUgoAAAAAAAAAAAAAAAAANIAAF8ZuNAAAAAAAAAAAAAAAAAhoAAAD/moAAAAAAAAAAAAAAAAAQYAAAAEgAAAAAAAAAAAAAAAAAA2oAAAAAAAAAAAAAAAAAAAAAAAALYAAAAAAAAAAAAAAAAAAAAAAAAFIAAAAAAAAAAAAAAAAAAAAAAAA5LAAAAAAAAAAAAAAAAAAAAAAAACv4AAAAAAAAAAAAAAAAAAAAAAAAZIAAAAAAAAAAAAAAAAAAAAAAAAmIAAAAAAAAAAAAAAAAAAAAAAAAEpAAAAAAAAAAAAAAAAAAAAAAAAGWAAAAAAAAAAAAAAAAAAAAAAAAAWIAAAAAAAAAAAAAAAAAAAAAAAAyYAAAAAAAAAAAAAAAAAAAAAAAAGqAAAAAAAAAAAAAAAAAAAAAAAADyQAAAAAAAAAAAAAAAAAAAAAAAADEAAAAAAAAAAAAAAAAAAAAAAAACgIAAAAAAAAAAAA//xAAzEQEBAQADAAECBQUBAQABAQkBABEhMRBBUWEgcfCRgaGx0cHh8TBAUGBwgJCgsMDQ4P/aAAgBAxEBPxD/APIcTN2rVqOUt/8A0zCVY3ExYsWP/wCmSwl1/GjS6Zaf/pSjr/8AAf8A6ZR/8DpHDHX/AOegn8AFHfwd7p/8Ol83T/8ANcTeWH+ALIRae9//AInqe7r/APmLJVeID8Kb48zXzv8A/E9T3df/AMxR/wDjpdpb/wDIep7un/5ne6f/ADn/APIWEcsdf/md/wD5hpHDcj/49o//AJol/wDJjjbxd/8A4YasP/zRL/5m6u0dfgXPEJh/+cdLgw6f/IaXFnHXiCYptIAsWbNmzY//ACWGP/0jLmOCEncQh502tjY2NjckZtP/AMjaHVp/8jxIvE2QiHEIGxYWFhYSHxFVp/8AkgvhEf8A4MCSMj2C4/8AprGHf/wFyfHdu3b8rsuQiICBYsQW2HmXFvlcSiDv/wAnmy//AAZw1/8AgAY1dssS5tYWFJtwWiTq4bi2p/8AMaXTLT/8B3/+eFmR6ZsCDHObDlvwWuUytf8A5nmX/wBzpdrT/wCqCY1Vhw8OKTSRlmyTxA//AJZi+ER/+Gk1vLDY8ZyBBsw2GebR3M1PED+HZBaQ/wDwdZRakQmbFmY3VhMQB4WjPkvkWfBZevMcZ7JZzckexumxfEM//CySzFljc2MOIEs9XLLhPqhwLb8JljDviGfQQNj/APIwsWH4zWTOLW73T8KbDGe//pC4bfGuYXAXa6fiE8Y//R92TWb52un4hpPDPT/9GXLixc+smed5fjE//wBG1ZMYBfRL8Z0jhjr/APRcTFzbcR6dJYw7+J6uDdf/ANE2GbMuWfwPMMf/AIXb/wDRrrrZ5+HaWMO/i7XT/wDRN+Ldhx+F5srCA/gXJdY8f/obxXCWe/xpvjyR7FNpBn/6G8c7wP8A4oZ9BQz/APRFiiTg/wD1J8rnen/9SOqcrT/+paJc1/8Aqbppc2LnER0//UiytQQEUO//AKkaJYGzf/1IYy4Zamv/ANT5+bGx3/8AUuOl0Lgn/wDU+YJM2Hb/APUgwm2LBr/9TPYkwYSf/wBSIYy4LRqM6f8A6kEbU8ABp/8AqatSRiBE0/8Ayv/aAAgBAhEBPxD/APIX4LTmAnPqjs3cXH/9MQFtA3BRbxfevvQT3YdWDEmOf/pSmWwZ1Ulev4XOchn/AP0rV1uFTaP4hx2wajTEmOf/AKQd3K2mP/g5ETS2f/zhdL4C7aPr8tE0n+fer/5c8HhOL/8AM7kuofY43Uw+Q3CtuCd0JMu1t/8AEem5Ucv/AMxJ37daMdynt/AzpMZCQRYsxx/+WdPn3f8A5ZywhM+JFr+MVaSAL4bUtxc3/wABohL1f/l9UcrP/wAQ46WbVwiWOXFv/wAGKROj/wDl8G2mH/y4kVDgttz3+JHhdhFglrv/AOWd2mLn3/5ZDFouWLSnF+F3hdAWPJP/AM2ycuYnh/8AlxUGRDndv4E8DxGXP/z8ZUehO5/8s9sG0Lt8f4JXmF6wniIb4hvi+1fYvsXwkvt/+RnMOi2B/wDIcduIrlMywOIjPJF4DyA8p2vlfd4tjh9in/5HGPkHWF1/8cCSI5LmT8w80uQfgJ1K9XzEj5lPm+7fdgfm+RtHJuSbg/8Aw8bGxsZK0nM8FIOxLk/+GVhMnM7HGQQm0Ctf/ii0lEjcEzn/AOA2BYtYl/B/nUvlITjCdWnM+Mj/ABJ/F9iI3JnEkKxWy9wMLFny8lVf/J9iHRCMQ1n/ANw5Y+G1fgA+5FfUjIu12XqceCdLbIMgPwbBsdDyIwB/83G4rU/+6ivCe/x7awHTdI3zUbtvuyvzPQkmSgLfgWQFkHIxtMSDCRY//FYjcVYa/wDvgRWqbr/5gvV0hd5c1AXPnDicID5lLzwmN3sHOP8AVmf/AAbP/wACi0sHhBVs7ssz8QL1dWXZ3IQDcQT/ABHXN3C1QrJEo8TBlwQeCTfmI9SJ36Cw/RIdQ6MS4f8A4AlpI4wOQiJnXXxl9q+Eu29wAfF8U+cl7MR1myTCp4HSHuMxYM8Hz9wsQTmnkMfuI/AgDJqn/wDC6Fvl76t3/jGN+r8Hzt2j68WPCXVjTlxiZ6/g4Jj1LVIXS+bnzny13V8xd+yr3/8AjBdMD833Jf5lu38QLNhYxhm53P4VJhxbmv8A9IXOb4FzS2B/8GydRZLiP/0fbm+M9X/wZxYq5X/9GXL4VySGMuDcBYb/ABDjaGo8EmOf/oxphBt78FsbP4nK5m1z/wDRcicvDGe8Gw7lvn4sF8HQ/wD0TkLiLkPwZzFomwfi6pXu/wD0V2vhvw8Ix6kjn4erx7v/ANE+C0d/EuxHQJD/AFKO/TeXdW5/+hrC4ix1+NXSN4nBdXNH5uYfAj6f/oaxynD/AOEXS+cgd+W9JMc//ojxxAw//qT5w2DD/wDqR1yhaf8A9S2LmbP/AP1J5n3FyyAb/wDqQw29gxh3/wDUj0JtZv8A+pDTLmi+J/8A1Pmp8rIf/wBS4iTa4x//AFPU0uNbkv8A9SPKfWya/wD1PkibCPT/APUiGMmS0agGn/6kFaI8ABp/+pBGzI01Dpp/+V//2gAIAQEAAT8Q/wD0dQJcK9TD3Rmb4a+cL/gbDts/xq/gmNoLCj/9VgFWAoPcVcxMZVko1tLRz7v/AN6qf6KAafFJI4M4V8N45oupE/8A1UxYMVuwYZfN0aUWUj/8PORi7eSXmxY//VKwLYyE5XHlJlpORB/+IwUiV4g2ZL3k4igQyJ/+oYebDzYef/wyX1d2kXio7ls//kbqMqPRh/est4P/ANOkhn3RGRnuqILHQ3sCfNXy1nS0PBnzQaKvijP/AD9Ct5UQi8f/AJENicpXHpnD/wDTACrAXNlMEhzP+XAg15qBI/ir4bLQaw4jxSSAY2hi+TZESWJ+SwiUg/X/AOR9BoM75ROP/wBMQiEKtIQytNs+bA0geKYAH1QHAWHiw8VEFn1Q1jzhdlIUffybJpIlZ+Vc/wD5D+pZP30JN4f/AKX6YK3ibeUqnaXYA/8AxuQkaAbDwUlGFQEywqZu6CD/APIBT5WZjf8A3dNmP/0twnqvEsxW4Nj/APJMKRKe4+QplXMQ0COzYDO8D/8AGbLDFNAkt1vB/wDpYiev+Ca11/8AlFmLFhTIsRdQGapTjbNvJ/8AiRAAJsr10QsnPZlpj9H/AOl6+K8N7oM3ijJ/+SCZMlYQjVJFKHDeVf4bN/X/AOFGQDzY2lxjQAIZ2x+CH/6Ykliw42kKe4sHdn/5WliE4VhwaWJqcv8A6UCVgsrIHmsn2WJGrwJnalpx4oAQYf8A6bPiWO0ikLNbLH/5Tqkw1mxCWlPdRf1lUCVgrRMPd0WeMaiZHxZSImdo2iC5XF7q/wDZRv8AZf8A7FUj9lXAmfdNJs//AKQaBMlYQGpLsFCNoAnD/wDkk52VnAe641/lsIRl+rD05IHainm5tTOVutGMEXDX4LNz3Z3g/Nd0l91Jx+1PCPzTJjFljAPmgEAwy0pjI80BIyf/AKMkkWd+hPFJyBQgGDugZQnr/wDJYrsikJR8PdNsOCPiwVm96BcvkpQQLGQbBsnqKGn7C/6GvH/gv/xr/wDGoG/godEvq/N/BTSI7o+cxrRkk4//AEFQ5Yvrfm+t+b635vrfmpChKA4vOUUkJFiPvDLTKUvugZET/wDHu+Qu5jKZiyhzDiyXHnimYwcUSNeIvDA+v/yXpkfNIT2wqZoQ2gwMP/0ACRB3Zk0MZUMkxW+Wvjazd08dTBJ7rRRLsqBBHilmL3YSJ8tJDJ810kJ8tnx+W/8A0aPG3ujYh92WEfNSDPiyIKICsLcdVaTEBapAhOf/AJQ+TJYopMyFeuQxtMFmT/8APBEJKDNDTkdJQV6NWa9WqxXLj9WWF/izTT4qhqZyI9VXgj5uah6Zo/f/AHs3OIpaUWpVosVFqWMSEOLKCJZ+6NKIIWgBGR//ACnZLDxZgEgoFTP/AOeRU6s9Nnuk00T/APFA9VTp+L634ocfKF/pXSYb+q1RfVh/0VSYrJDF5uRsVvhZlVLzVrkoqdVFkeZJmLtJAUPCQHNKhD/+SbfZZEo5Vknj/wDPaAlhrJRBQscHLQMjJ/8Alygw+aoUR7qoFTxZX8C4Rg0lnqmAGDzURE8Mc3R/TSoUVIcVgIZEGVD0RNbWHuxNI90yUJ6//HyfFSnJlrAPZTj/APOMKRIq7/zlJJJWDex3SDs90GUP/wCIST+VAXF7seKnhqZu8XGzPCtA6811TXpcPFyjg1oQZGUSKGgYJDxUkinBWJmK9AcIadNcmjoxFf2E2DpH3QyCWHmyebwqUSRfdhXB5rrI0sYnacf/AJ6oyNFyLcKCID1Q4olLQ0oMXy0c8nuyD91Ef5rAjfhqyrHVjyi/NBpg+aJyHuieQ9WIGfVYqxWLSVnAhO1EjLFE5FvFACDj/jkJksLJqbB3iNqGQdrAnPF3yQ0o7JRxy2OyfzZ4lc5GaEgQ+aw172iyEP8A9BSaoAZs+kj4KusKs4fVkRwfNRD+1fjk8Um/lmiSR+bJkh6oJFnqgCAj/jAlswm8VQEhtVWjq6pbOlNyIP8A8AS9CZpBgx+6AGZK0GjWzR9VI/is/D+LNpWDZPmjEpHqlnC9WLF/+ikPJN54fV5b8V9P8XgPxXgx9UA4I/8AwgyYyxw0mjCQ06S7paNjn/8ACYE5XnMFOfWI/wCpNh4sPH/6jAK8F1UrkE7TC/4KL4v/AMKAR4aOlGzFLQuFBDMn/wCpwdMMWP8AItBCbF/Sa4FBC/8AxERJhqYSC2JKEf8A6mAJsItUIp2mZYv6q5co5vY//EKnCVPaWUz2opG9n/6lBE9WEci03R/wSizIcKQbEIc1wp2f/iQdMqb4v97vc5/+pFigpahsnaIjr/sWpYnKWT/6UDssf/iB4nK7oQW4FnH/AOpBmIyrE0mxCN//AAOQli82AXR+Ea0AJw//AIdn6oSGU5//AFIIMOxWndJpk9f/AIOaEzITMUuqEIpUWDv/APD+jUZo/wD6jCwVlZXRliAP/wAJyTJWPmyIVIADG2d5E80yTbDzYeawCMebgYP964CMP/1GpH1ZL2okx1/+Mu6pXveYL0WKguF5sDV/NapM+2zMvDKs+JlkoORB/wDqOWXA936V/wDkQBC8wT6rJgrDAn1cEqPijDU80QEj1/8AqT6BR+W/Uf8A8uHiw8f/AKmUfFTy+af/ANZbwvF5vzRYf/rKC+qiMd0RTsf/AKyEIrCCsSRREb/+sjcjakAhNBFtBJ//AFjzRYbQpKE0d2x/+sgUdrRzuzg2jJ/+so8Oq0zNoKGc/wD1kCwmxIQTZQd//Wc4DapJgmkYzn/6yICTlcAgmzS0ZP8A9ZA4LCHCahDLH/6yNF3WQd2CW+Qn/wCskBEtXAhN4H9UAGn/AOsk/aqUEJpk+2IJx/8ApX//2Q==</value>
  </string>
</metacard>

On the 2D map, draw various lines across the date line and verify they do not wrap the other way around the world.

Do the same with polygons.

Ingest some metacards with various types of locations, like lines, multilines, polygons, and multipolygons, across the date line and verify that when you search for them and they are displayed on the map that they do not wrap the other way around the world.

Ingest some metacards with a polygon location across the dateline and a thumbnail. Overlay the image on the map and verify the image does not wrap the other way around the world.

Screenshots

Orientation Normalization Disabled

Screen Shot 2021-10-19 at 1 32 25 PM

Orientation Normalization Enabled

Screen Shot 2021-10-19 at 1 34 55 PM

2D Line Drawing Across Dateline Before

LineBefore

2D Line Drawing Across Dateline After

LineAfter

2D Polygon Drawing Across Dateline Before

PolygonBefore

2D Polygon Drawing Across Dateline After

PolygonAfter

Overlay Across Dateline Before

Screen Shot 2021-11-02 at 4 15 42 PM

Overlay Across Dateline After

Screen Shot 2021-11-02 at 4 20 18 PM

Checklist

Notes on Review Process

Please see Notes on Review Process for further guidance on requirements for merging and abbreviated reviews.

Review Comment Legend:

jlcsmith commented 2 years ago

build now

cxddfbot commented 2 years ago

Internal build has been started, your results will be available at build completion.

cxddfbot commented 2 years ago

Build SUCCESS See the job results in legacy Jenkins UI or in Blue Ocean UI.

jrnorth commented 2 years ago

build now

cxddfbot commented 2 years ago

Internal build has been started, your results will be available at build completion.

cxddfbot commented 2 years ago

Build FAILURE See the job results in legacy Jenkins UI or in Blue Ocean UI.

cxddfbot commented 2 years ago

Internal build has been started, your results will be available at build completion.

cxddfbot commented 2 years ago

Build SUCCESS See the job results in legacy Jenkins UI or in Blue Ocean UI.

jlcsmith commented 2 years ago

Did a quick verification with the additional UI changes. Validated that the geo wrapping issue is no longer occurring in the 2D map. Also re-verified the overlay functionality