Render Shapes - GeoJSON data
Sample code for Woosmap Map JavaScript API
author(s):
Woosmap
HTML
<!DOCTYPE html>
<html>
<head>
<title>Render Shapes - GeoJSON data</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta charset="utf-8" />
<!-- jsFiddle will insert css and js -->
</head>
<body>
<!--The div element for the map -->
<div id="map"></div>
<script
src="https://sdk.woosmap.com/map/map.js?key=woos-e1e5490b-19d1-34f8-9955-fd5cfc8c880f&callback=initMap"
defer
></script>
</body>
</html>
CSS
/*
* Always set the map height explicitly to define the size of the div element
* that contains the map.
*/
#map {
height: 100%;
}
/*
* Optional: Makes the sample page fill the window.
*/
html,
body {
height: 100%;
margin: 0;
padding: 0;
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
}
JavaScript
// Initialize and add the map
let map;
function initMap() {
map = new window.woosmap.map.Map(document.getElementById("map"), {
center: { lat: 53.51, lng: 8.15 },
zoom: 4,
});
map.data.loadGeoJson(
"https://demo.woosmap.com/misc/data/europe.geojson.json",
);
const defaultStyle = {
fillColor: "#FFAB00",
strokeWeight: 2,
};
map.data.setStyle((feature) => {
let color = defaultStyle.fillColor;
if (feature.getProperty("highlighted")) {
color = "#C51162";
}
return {
fillColor: color,
strokeColor: color,
strokeOpacity: 1,
strokeWeight: defaultStyle.strokeWeight,
};
});
let highlightedFeatureId;
if (map && map.data) {
map.data.addListener("click", (event) => {
if (highlightedFeatureId) {
const highlightedFeature =
map.data.getFeatureById(highlightedFeatureId);
if (highlightedFeature) {
highlightedFeature.setProperty("highlighted", false);
}
}
event.feature.setProperty("highlighted", true);
highlightedFeatureId = event.feature.getId();
});
}
}
window.initMap = initMap;