Ger ett API för att styra delar av Origo inuti en <iframe>
via https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
layerIDField
: Fältet i lagret som används som unikt ID. Obligatorisk.maxZoom
: Maximal inzoomningsnivå. Valfri.zoomDuration
: Tid (i millisekunder) för att genomföra en zoomning. Valfri.allowedOrigins
: En array med strängar för tillåtna ursprung att acceptera meddelanden från. Valfri
Meddelanden som skickas via postMessage till en Origo-karta med den här pluginen bär ett message som är ett vanligt javascript-objekt med följande egenskaper:
command
targetLayer
samt antingenfilter
ellerids
command
är ett av följande:
setFilter
sätt ett eget CQL filter.setVisibleIDs
filtrera så att enbart features varslayerIDField
matchar ett av idn:a iids
.resetFilter
nollställ filtret, visa alla features.zoomTo
zooma till mitten av de features varslayerIDField
matchar ett av idn:a iids
.panTo
panorera till mitten av de features varslayerIDField
matchar ett av idn:a iids
.
Exempelobjekt:
const zoomToMessage = {
command: 'zoomTo',
targetLayer: 'sokvyxw_utegym',
ids: ['uuid4', 'uuid5', 'uuid9']
}
<script type="text/javascript">
var origo = Origo('index.json');
origo.on('load', function (viewer) {
var origoiframeetuna = Origoiframeetuna({
layerIDField: "globalId",
maxZoom: 11,
zoomDuration: 750,
allowedOrigins: ["http://localhost:9001", "https://www.somedomain.net"]
});
viewer.addComponent(origoiframeetuna);
});
</script>
- Clona Origo och detta repo
- Kör
npm install
i båda repon - Kör
npm start
i båda repon - Öppna
https://localhost:9001/demo/
i en webbläsare
(om CORS-fel så kan något som följande behövas i Origos tasks/webpack.dev.js:
devServer: {
static: {
directory: './'
},
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
"Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization"
},
)