Skip to content

Instantly share code, notes, and snippets.

@andygup
Last active May 15, 2017 21:42
Show Gist options
  • Select an option

  • Save andygup/27c5eb71a81ddc997d82073ade89d84d to your computer and use it in GitHub Desktop.

Select an option

Save andygup/27c5eb71a81ddc997d82073ade89d84d to your computer and use it in GitHub Desktop.
3D Earthquake Demo - JSAPI 4
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
<title>CSVLayer - 4.3</title>
<style>
html,
body,
#viewDiv {
padding: 0;
margin: 0;
height: 100%;
width: 100%;
}
</style>
<link rel="stylesheet" href="https://js.arcgis.com/4.3/esri/css/main.css">
<script src="https://js.arcgis.com/4.3/"></script>
<script>
require([
"esri/Map",
"esri/layers/CSVLayer",
"esri/views/SceneView",
"esri/renderers/ClassBreaksRenderer",
"esri/symbols/ObjectSymbol3DLayer",
"esri/symbols/PointSymbol3D",
"esri/config",
"esri/core/urlUtils",
"dojo/domReady!"
], function(
Map,
CSVLayer,
SceneView,
ClassBreaksRenderer,
ObjectSymbol3DLayer,
PointSymbol3D,
esriConfig,
urlUtils) {
// Addt'l info: https://earthquake.usgs.gov/earthquakes/feed/v1.0/csv.php
var url = "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv";
// Paste the url into a browser's address bar to download and view the attributes
// in the CSV file. These attributes include:
// * mag - magnitude
// * type - earthquake or other event such as nuclear test
// * place - location of the event
// * time - the time of the event
var template = {
title: "Earthquake Info",
content: "Magnitude {mag} {type} hit {place} on {time}."
};
var csvLayer = new CSVLayer({
url: url,
copyright: "USGS Earthquakes",
popupTemplate: template,
elevationInfo: {
// drapes icons on the surface of the globe
mode: "on-the-ground"
}
});
csvLayer.renderer = new ClassBreaksRenderer({
field: "mag"
});
// Green
csvLayer.renderer.addClassBreakInfo({
minValue: 0,
maxValue: 2.5,
symbol: new PointSymbol3D({
symbolLayers: [new ObjectSymbol3DLayer({
resource: { primitive: "cylinder" },
material: { color: [0, 128, 255] },
height: 200000,
width: 50000
})]
})
});
// Yellow
csvLayer.renderer.addClassBreakInfo({
minValue: 2.6,
maxValue: 4.0,
symbol: new PointSymbol3D({
symbolLayers: [new ObjectSymbol3DLayer({
resource: { primitive: "cylinder" },
material: { color: [255, 255, 0] },
height: 300000,
width: 80000
})]
})
});
// Orange
csvLayer.renderer.addClassBreakInfo({
minValue: 4.1,
maxValue: 7.0,
symbol: new PointSymbol3D({
symbolLayers: [new ObjectSymbol3DLayer({
resource: { primitive: "cylinder" },
material: { color: [255, 128, 0] },
height: 600000,
width: 120000
})]
})
});
// Red
csvLayer.renderer.addClassBreakInfo({
minValue: 7.1,
maxValue: 10.0,
symbol: new PointSymbol3D({
symbolLayers: [new ObjectSymbol3DLayer({
resource: { primitive: "cylinder" },
material: { color: [255, 0, 0] },
height: 1000000,
width: 200000
})]
})
});
var map = new Map({
basemap: "gray",
layers: [csvLayer]
});
var view = new SceneView({
container: "viewDiv",
center: [-98,39],
zoom: 4,
map: map
});
esriConfig.request.corsEnabledServers.push("earthquake.usgs.gov");
});
</script>
</head>
<body>
<div id="viewDiv"></div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment