Skip to content

Commit

Permalink
add places param support
Browse files Browse the repository at this point in the history
  • Loading branch information
gowin20 committed Nov 21, 2023
1 parent bd9b0c2 commit b87a1df
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 11 deletions.
72 changes: 72 additions & 0 deletions examples/basemap-places.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
<title>Esri Leaflet Vector: Display basemap places</title>

<!-- Load Leaflet from CDN or local node_modules -->
<link rel="stylesheet" href="../node_modules/leaflet/dist/leaflet.css" />
<script src="../node_modules/leaflet/dist/leaflet.js"></script>

<!--
Load maplibre-gl from CDN or local node_modules for dev/debug purposes because it is not bundled in Esri Leaflet Vector's dev/debug code
(note also that loading maplibre-gl.css is not necessary)
-->
<!-- script src="../node_modules/maplibre-gl/dist/maplibre-gl.js"></script -->
<script src=https://unpkg.com/maplibre-gl@2.1.9/dist/maplibre-gl.js></script>

<!-- Load Esri Leaflet and Esri Leaflet Vector plugin dev/debug version -->
<script src="../node_modules/esri-leaflet/dist/esri-leaflet.js"></script>
<script src="../dist/esri-leaflet-vector-debug.js"></script>

<style>
body {
margin: 0;
padding: 0;
}
#map {
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #323232;

}
</style>
</head>
<body>
<div id="map"></div>
<script>
const map = L.map("map", {
minZoom: 2
}).setView([34.101, -118.339], 17);
const apiKey = "<YOUR ARCGIS API KEY HERE>";

const basemapStyle = "arcgis/navigation";

const getLayer = places => {
return L.esri.Vector.vectorBasemapLayer(basemapStyle, {
apiKey: apiKey,
version: 2,
places:places
})
}

const placeOptions = {
"all":getLayer("all").addTo(map), // Show all places
"attributed":getLayer("attributed"), // Show places with attributes
"none":getLayer("none") // Hide all places
};

L.control.layers(placeOptions, null, { collapsed: false }).addTo(map);

map.on('baselayerchange', e=>{
console.log(e);
})
</script>

</body>
</html>
10 changes: 5 additions & 5 deletions spec/VectorBasemapLayerSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const basemapKeyV2 = 'arcgis/streets';
const customBasemap = 'f04f33b9626240f084cb52f0b08758ef';
const language = 'zh_s';
const worldview = 'morocco';
// const places = 'attributed';
const places = 'attributed';

describe('VectorBasemapLayer', function () {
it('should have a L.esri.vectorBasemapLayer alias', function () {
Expand Down Expand Up @@ -137,12 +137,12 @@ describe('VectorBasemapLayer', function () {
version: 2,
language: language,
worldview: worldview,
//places: places
places: places
});

expect(layer.options.language).to.equal(language);
expect(layer.options.worldview).to.equal(worldview);
//expect(layer.options.places).to.equal(places);
expect(layer.options.places).to.equal(places);
});

it('should error if a language is provided when accessing the v1 service', function () {
Expand All @@ -163,14 +163,14 @@ describe('VectorBasemapLayer', function () {
}).to.throw('The worldview parameter is only supported by the basemap styles service v2. Provide a v2 style enumeration to use this option.');
});

/* it('should error if a places parameter is provided when accessing the v1 service', function () {
it('should error if a places parameter is provided when accessing the v1 service', function () {
expect(function () {
L.esri.Vector.vectorBasemapLayer(basemapKey, {
apikey: apikey,
places: places
});
}).to.throw('The places parameter is only supported by the basemap styles service v2. Provide a v2 style enumeration to use this option.');
}); */
});

it('should not accept a v2 style enumeration when accessing the v1 service', function () {
expect(function () {
Expand Down
4 changes: 2 additions & 2 deletions src/Util.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ export function getBasemapStyleV2Url (style, token, options) {
if (options.worldview) {
url = url + '&worldview=' + options.worldview;
}
/* if (options.places) {
if (options.places) {
url = url + '&places=' + options.places;
} */
}
return url;
}
/*
Expand Down
8 changes: 4 additions & 4 deletions src/VectorBasemapLayer.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ export var VectorBasemapLayer = VectorTileLayer.extend({
if (options.worldview) {
throw new Error('The worldview parameter is only supported by the basemap styles service v2. Provide a v2 style enumeration to use this option.');
}
/* if (options.places) {
if (options.places) {
throw new Error('The places parameter is only supported by the basemap styles service v2. Provide a v2 style enumeration to use this option.');
} */
}
}
// Determine layer order
if (!options.pane) {
Expand All @@ -59,8 +59,8 @@ export var VectorBasemapLayer = VectorTileLayer.extend({
if (this.options.version && this.options.version === 2) {
styleUrl = getBasemapStyleV2Url(this.options.key, this.options.apikey, {
language: this.options.language,
worldview: this.options.worldview
// places: this.options.places
worldview: this.options.worldview,
places: this.options.places
});
} else {
styleUrl = getBasemapStyleUrl(this.options.key, this.options.apikey);
Expand Down

0 comments on commit b87a1df

Please sign in to comment.