keplergl-demo / index.html
thanthamky's picture
Upload 9 files
b80bcc2 verified
raw
history blame contribute delete
No virus
4.07 kB
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Kepler.gl embedded map</title>
<!--Uber Font-->
<link
rel="stylesheet"
href="./superfine.css"
/>
<!--MapBox css-->
<link href="./maplibre-gl.css" rel="stylesheet" />
<!-- Load React/Redux -->
<script src="./react.production.min.js" crossorigin></script>
<script
src="./react-dom.production.min.js"
crossorigin
></script>
<script src="./redux.js" crossorigin></script>
<script src="./react-redux.min.js" crossorigin></script>
<script
src="./styled-components.min.js"
crossorigin
></script>
<!-- Load Kepler.gl-->
<script src="./keplergl.min.js"></script>
<!--If you want to load the build from filepath -->
<!--<script src="../../umd/keplergl.min.js"></script>-->
<style type="text/css">
body {
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
<!--MapBox token-->
<script>
/**
* Provide your MapBox Token (Used in pre 3.x kepler.gl)
**/
const MAPBOX_TOKEN = "pk.eyJ1IjoibW9zaW84OSIsImEiOiJjbHRyYnI4b2cwOHRhMmtwN250cGhyam9xIn0.cWA7FjLYS63ZnDm5VRawug";
const WARNING_MESSAGE =
'Please Provide a Mapbox Token in order to use Kepler.gl. Edit this file and fill out MAPBOX_TOKEN with your access key';
</script>
</head>
<body>
<!-- We will put our React component inside this div. -->
<div id="app">
<!-- Kepler.gl map will be placed here-->
</div>
<!-- Load our React component. -->
<script>
/* Validate Mapbox Token */
if ((MAPBOX_TOKEN || '') === '' || MAPBOX_TOKEN === 'PROVIDE_MAPBOX_TOKEN') {
alert(WARNING_MESSAGE);
}
/** STORE **/
const reducers = (function createReducers(redux, keplerGl) {
return redux.combineReducers({
// mount keplerGl reducer
keplerGl: keplerGl.keplerGlReducer
});
})(Redux, KeplerGl);
const middleWares = (function createMiddlewares(keplerGl) {
return keplerGl.enhanceReduxMiddleware([
// Add other middlewares here
]);
})(KeplerGl);
const enhancers = (function craeteEnhancers(redux, middles) {
return redux.applyMiddleware(...middles);
})(Redux, middleWares);
const store = (function createStore(redux, enhancers) {
const initialState = {};
return redux.createStore(reducers, initialState, redux.compose(enhancers));
})(Redux, enhancers);
/** END STORE **/
/** COMPONENTS **/
const KeplerElement = (function(react, keplerGl, mapboxToken) {
return function(props) {
return react.createElement(
'div',
{style: {position: 'absolute', left: 0, width: '100vw', height: '100vh'}},
react.createElement(keplerGl.KeplerGl, {
mapboxApiAccessToken: mapboxToken,
id: 'map',
width: props.width || 1500,
height: props.height || 800
})
);
};
})(React, KeplerGl, MAPBOX_TOKEN);
const app = (function createReactReduxProvider(react, reactRedux, KeplerElement) {
return react.createElement(
reactRedux.Provider,
{store},
react.createElement(KeplerElement, null)
);
})(React, ReactRedux, KeplerElement);
/** END COMPONENTS **/
/** Render **/
(function render(react, reactDOM, app) {
const container = document.getElementById('app');
const root = reactDOM.createRoot(container);
root.render(app);
})(React, ReactDOM, app);
</script>
<!-- The next script will show how to interact directly with Kepler map store -->
<script>
/**
* Customize map.
* Interact with map store to customize data and behavior
*/
(function customize(keplerGl, store) {
// store.dispatch(keplerGl.toggleSplitMap());
})(KeplerGl, store);
</script>
</body>
</html>