DELETEDGetting started: Difference between revisions

From Maria GDK Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 6: Line 6:
//registry.npmjs.org/:_authToken=YOUR_ACCESS_TOKEN
//registry.npmjs.org/:_authToken=YOUR_ACCESS_TOKEN
</source>
</source>
.npmrc should not be checked in to version control!
The .npmrc file should not be checked in to version control.
== Web Components ==
== Web Components ==
To install the Web Component packages, install the following NPM-packages.
To install the Web Component packages, install the following NPM-packages.

Revision as of 14:25, 14 October 2021

Maria web map components can be used as standard Web Components, and as React components. An access token from Teleplan is needed to access these NPM-packages. The access token can be placed in a local .npmrc file in the root of the project using the packages.

Example .npmrc:

//registry.npmjs.org/:_authToken=YOUR_ACCESS_TOKEN

The .npmrc file should not be checked in to version control.

Web Components

To install the Web Component packages, install the following NPM-packages.

npm i @mariateleplan/map-core @mariateleplan/map-components

React Components

To install the Web Component packages, install the following NPM-packages.

npm i @mariateleplan/map-core @mariateleplan/map-react-components

Minimal React Example

import React, { useEffect } from "react";

import { MariaMap, MapLayerSelect } from '@mariateleplan/map-react-components';
import { Maria as MariaCore} from '@mariateleplan/map-core/dist/Maria';
import {  GDKMapLayer } from '@mariateleplan/map-core/dist/layers';



let maria=new MariaCore({
  "viewState": {
    "zoom": 10,
    "center": [1197567, 8380058], // Oslo
    "projection": 'EPSG:3857'
  },
  "layersState": {
  }
});


function addMapLayers():void{

  const mariaMapLayer = new GDKMapLayer({
    Id:"0b254a7a-ff92-4b98-b6a2-1cfb8d91e9f1",
    Name:"GDK Imagery",
    ServiceUrl:new URL("http://tpg-mariagdktst"), 
    BasemapId:"0b254a7a-ff92-4b98-b6a2-1cfb8d91e9f1"
  });

  maria.Layer.addLayer(mariaMapLayer); 
}

function App() {
  
  useEffect(() => {
      addMapLayers();
  }, [])

  return (
      <MariaMap MariaApi={maria}>
        <MapLayerSelect></MapLayerSelect>
      </MariaMap>
  );
}
export default App;

The MariaMap component will fill its parent, so remember to set the size of the parent component large enough. For example:

#parent-id{
  width: 100%;
  height: 100vh;
  background: rgb(64,64,64);
  overflow: hidden;
}