ArcGIS JavaScript Maps SDK Blog - Page 4

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Latest Activity

(66 Posts)
Abbey_Roelofs
Occasional Contributor

Have you ever wanted to add a time slider to your map but couldn't because you were working with a historical or geological date range? With the ability to set custom label format functions in TimeSliders and a little bit of data preparation, you can!

Read more...

more
7 3 1,732
AnneFitz
Esri Regular Contributor

Welcome to the 4.20 “jack of all trades” release.

We fixed 41 bugs. Created or updated 10+ samples. Added new layers, updated and added some widgets, and made so many more enhancements.

Read more...

more
2 4 2,253
Noah-Sager
Esri Regular Contributor

Today, we are pleased to release versions 4.19 and 3.36 of the ArcGIS API for JavaScript. Here are some of the 4.19 highlights (please refer to the 3.36 link at the end for 3.x updates).

Read more...

more
1 5 2,834
Noah-Sager
Esri Regular Contributor

Today, we are pleased to release versions 4.18 and 3.35 of the ArcGIS API for JavaScript.

Read more...

more
11 0 2,758
Noah-Sager
Esri Regular Contributor

Today, we are pleased to release versions 4.17 and 3.34 of the ArcGIS API for JavaScript. Here are some of the 4.17 highlights (please refer to the 3.34 link at the end for 3.x updates).

 

Introduction

We fixed 31 bugs, added 5 new samples, boosted performance (more on that later), and announced that version 4.17 will be the last release to support IE 11 (and Edge Legacy).

 

WCSLayer

 

Methods

Every release, we look for ways that we can further optimize performance, modernize the development process, and add sweet new features and functionality. The performance is for the end-user, the modernization is for the developer (and for us, I suppose), and the sweet new stuff is for everyone.

 

SceneLayer performance

 

Results

Faster loading and preprocessing for large FeatureLayers with many features. The StreamLayer can now handle much faster websocket streams. CSVLayer, GeoJSONLayer, and FeatureLayer created from client-side graphics are now taking advantage of a worker to store the data. Point 3D SceneLayers now load and display up to twice as fast by supporting the latest I3S specification version 1.7. The new 3D BuildingComponentSublayerView class allows you to query features of a BuildingSceneLayer directly in the client.

https://developers.arcgis.com/javascript/latest/guide/release-notes/#performance-enhancements

 

FeatureLayer Performance

 

Discussion

After closely looking over the results from this release, you’re probably asking yourself about those sweet new features that did not necessarily significantly boost performance. Let’s discuss.

 

It is now possible to create and load non-spatial feature layers stored as tables in a Map, WebMap, or WebScene. The FeatureTable now supports editing date fields. A UI was added to make this workflow easier to manage. The new TableList widget provides a way to display a list of tables within a Map and/or WebMap.

 

Table widget

 

The Print widget got a new exportedLinks property that allows you to access the collection of links exported from a print request, and two events, `complete` and `submit`, to give developers a much easier way to manage printing results and behavior.

 

The new StylePattern3D class provides different styles that are compatible with existing capabilities across the ArcGIS platform. Use the new polygon fill patterns to highlight areas on terrain or integrated mesh layers.

 

The Bookmarks widget now allows users to update a bookmark's extent and add a thumbnail.

 

Bookmarks widget

 

We enhanced the LayerView in 2D MapViews by adding a fade-in and out transition to the LayerView when we turn the layer's visibility on and off.

 

The VectorTileLayer has an improved experience when loading and interacting with the map. 

 

WMSLayer now supports layers that are time enabled. You can use the TimeSlider widget to animate your layers over a period of time, or you can set a timeExtent on the layer to only request data that falls within the given time extent. 

 

WMSLayer

 

Conclusion

There is so much more that’s new and exciting at 4.17 and 3.34. I hope this peer-reviewed blog entices your appetite to learn more. But before you do that, please check out our new guide topic: Breaking Changes. With this page, you can easily find all the breaking changes from every 4x release in one easy spot. So, if you are upgrading from say 4.10 -> 4.17, then scroll down on this page until you find 4.10, then scroll up to read the changes that apps will require to successfully migrate to 4.17.

 

Breaking Changes across all 4x releases

https://developers.arcgis.com/javascript/latest/guide/breaking-changes/index.html

 

References

Fun fact, if you’re still reading this, .34 is exactly double .17. So there’s that.

 

Release Blog

What’s New in ArcGIS API for JavaScript (October 2020) 

 

4.17 Release Notes

https://developers.arcgis.com/javascript/latest/guide/release-notes/index.html

 

4.17 Samples

https://developers.arcgis.com/javascript/latest/sample-code/?search=4.17

 

3.34 What’s New

https://developers.arcgis.com/javascript/3/jshelp/whats_new.html

  

more
3 2 3,268
Noah-Sager
Esri Regular Contributor

Today, we are pleased to release versions 4.16 and 3.33 of the ArcGIS API for JavaScript. Here are some of the 4.16 highlights (please refer to the 3.33 link at the end for 3.x updates).

 

The stats

We fixed 20 bugs, added 65 new classes, created 24 new samples, and over 99% of the codebase is now written in TypeScript

 

blendMode

 

Blending-in is the new standing-out

Ever wanted to combine one or more layers together to produce what looks like a new layer? Sounds cool, right? To accomplish this, we introduced a new capability called layer blending. This powerful capability allows you to apply blend modes to your layers to create striking visual effects.

https://developers.arcgis.com/javascript/latest/sample-code/?search=blendMode

 

blendMode

 

Are you down with OGC?

Yeah, you know, me also. The OGC (Open Geospatial Consortium) API Feature standard is the successor to the OGC Web Feature Server (WFS) specification. And have we got a layer for you. The new OGCFeatureLayer, which works in 2D MapViews and 3D SceneViews, is better/stronger/faster than OGC WFS, and is now supported by the ArcGIS API for JavaScript.

https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-OGCFeatureLayer.html

 

Self-evaluate your performance

At 4.15, we introduced a new SceneView.performanceInfo property to offer insight into the performance and memory consumptions of layers in your 3D scene. Now at 4.16, we’re ready to share this with the world. Heads-up: this property is experimental, prices and participation may vary, and can change at any time. But if you’re into performance metrics and 3D scenes, check out this new feature in your testing environments.

https://developers.arcgis.com/javascript/latest/sample-code/sceneview-memory/index.html

SceneView Performance

If you like labeling points, you may also like…

If you like labeling, you’ll love the new Honey Nut Clusters FeatureReductionCluster.labelingInfo property that allows you to label clusters based on count, or based on any summary statistics used by the cluster popup.

https://developers.arcgis.com/javascript/latest/sample-code/featurereduction-cluster-filter-slider/i...

Cluster labels

Client-side geometric modifications

Client-side geometric modifications (like clipping) on IntegratedMeshLayers in 3D SceneViews, are you serious?! Yes, very much so. With the SceneModifications class, you can now modify parts of an integrated mesh using polygon geometries. Focus on your areas of interest; ignore the noise.

https://developers.arcgis.com/javascript/latest/sample-code/layers-integratedmeshlayer-modification/...

Clip Mesh in 3D

CIM (/ˈsim/) seems (/sēmz/) cool (/ko͞ol/)

Remember, back in the day, when we released CIMSymbol for point features? Well, now you can do the same with lines and polygons in 2D MapViews. So create those custom symbols for all geometry types by using multiple symbol layers. And yes, you can print them just fine.

https://developers.arcgis.com/javascript/latest/sample-code/cim-lines-and-polygons/index.html

 

Reflecting pools for all

We enhanced the WaterSymbol3DLayer to reflect any 3D objects on water surfaces. The SceneView.environment property, which already has tons of options to make your 3D scenes even more beautiful and realistic, now has a fun waterReflectionEnabled property.

https://developers.arcgis.com/javascript/latest/sample-code/visualization-realistic-water/index.html

water reflection

Wait, what’s that about seamless integration?

Oh yeah, thanks for the reminder. At every release we modernize the API. Fact. Sometimes we add things, sometimes we remove them. At 4.16, the API returns native promises by default. You can no longer opt-out with the handy has flag. We removed Dojo’s declare module, and pretty much stopped using Dojo altogether, although it’s still available with the CDN build. We also changed our will and stopped being supportive of multiple class inheritance, so start thinking about Accessor mixins. Read more here:

https://developers.arcgis.com/javascript/latest/guide/release-notes/#api-modernization

 

Wait wait, what’s next?

Do you enjoy the bleeding edge of technology? If so, ArcGIS API for JavaScript – next may be for you. We announced this new feature a couple of release ago, but since we’re all scrambling for things to do at home, this seems like an opportune moment to revisit. It’s basically a weekly-ish build of the next version (e.g. if the current release is 4.16, then next is based on 4.17) of the API that you can use, test, and create issues for if you are so inclined. Probably best to only use for testing as things can change whenevs.

https://github.com/Esri/feedback-js-api-next

 

Wait wait wait, there’s more!

Because we have so much fun “at the office” developing new stuff for you, we like to showcase our updates and answer any questions that you may have in-person. We do this a couple times per year at conferences like the Developer Summit and the User Conference.

 

If you missed us at the virtual Developer Summit this year, here is a blog about all the JavaScript presentation recordings:

https://www.esri.com/arcgis-blog/products/js-api-arcgis/announcements/arcgis-api-for-javascript-devs...

 

If you’re joining us for the virtual User Conference, here is a blog about all the exciting web development presentations and resources:

https://www.esri.com/arcgis-blog/products/js-api-arcgis/announcements/web-developers-guide-to-the-20...

 

And if you’re up on the news, you may find this blog about diversity, equity, and racial justice at the virtual User Conference especially relevant:

https://www.esri.com/arcgis-blog/products/product/announcements/diversity-equity-inclusion-racial-ju...

 

There is so much more that’s new and exciting at 4.16 and 3.33. Check out the links below to discover everything.

 

Release Blog

https://www.esri.com/arcgis-blog/products/js-api-arcgis/announcements/whats-new-in-the-arcgis-api-fo...

 

4.16 Release Notes

https://developers.arcgis.com/javascript/latest/guide/release-notes/index.html

 

4.16 Samples

https://developers.arcgis.com/javascript/latest/sample-code/?search=4.16

 

3.33 What’s New

https://developers.arcgis.com/javascript/3/jshelp/whats_new.html

more
4 0 3,804
MikieKelly
Occasional Contributor

I have just created an app with Esri's JavaScript API. It shows an exaggerated form of Earth's Crust - go find some mountains hidden in the ocean!

You can check it out via the following link: Earth's Crust

It is built with Esri's 4.x JavaScript API which allows end users exaggerate topobathy elevation layers for more insightful visuals. A number of custom widgets have been built to enhance the experience:

  • Layer List
    • Select layers from the Living Atlas are available for overlaying on the map
  • Shuffle
    • Various slides have been added to the underlying Web Scene. Every time you click the widget, you are guided to a new location and the relevant title is displayed. The vertical exaggeration and basemap get updated according to slide settings
  • Map Screenshot
    • Download a .png image of the current map view. Layer List settings are honored
  • Contact/Feedback Form
    • Contact the developer and look for information or provide feedback (via Survey123 form)
  • Share
    • Copy the current URL to clipboard
  • Vertical Exaggeration
    • Alter the vertical exaggeration of the elevations from 0 to 100 using a slider
  • Basemap
    • Toggle between Esri Imagery and National Geographic basemaps

Other Features

  • Elevation
    • As you pan the scene, view the elevation of the map center point in meters and feet
  • URL Parameters
    • x, y, z, wkid, heading, tilt, fov: These are updated as you browse the 3D Scene so you can bookmark areas of interest
    • basemap: Updates as you toggle basemaps
    • exaggeration: Stores the current vertical exaggeration
  • Mobile Friendly
    • Original screen resolution determines whether vertical exaggeration widget is expanded by default

Cool Living Atlas layers available through the app are listed below:

  • Distance to Shore
  • Distance to Coast
  • TopoBathy Elevation Tinted Hillshade
  • Temperature - Sea Surface
  • Temperature - Sea Floor
  • Temperature - Land - January Average
  • Temperature - Land - July Average
  • Population - 2016 Density Estimate
  • Geomorphology - Sea Floor
  • Earthquakes (Recent) - Shake Intensity
  • Earthquakes (Recent) - Events by Magnitude
  • Earthquakes (Major) - Historic Records
  • Volcanic Eruptions (Significant) - Historic Records
  • World Exclusive Economic Zone Boundaries


Suggestions and feedback welcome

Here are some of screenshots of the app:

Via Desktop Browser:

Via Mobile Browser:

Screenshot of the app visualized on mobile

Screenshot of the app visualized on mobile (Firefox)

Screenshot of the app visualized on mobile (Firefox)

Photos downloaded through app widget:

Screenshot created from app of elevation exaggeration

Screenshot created from app of elevation exaggeration with geomorphology layer

Screenshot created from app of elevation exaggeration with sea floor temperature layer

Screenshot created from app of elevation exaggeration with sea surface temperature layer

Screenshot created from app of elevation exaggeration showing elevation of India vs Tibet

Screenshot created from app of elevation exaggeration around California

Suggestions and feedback welcome 

ArcGIS API for JavaScript

ArcGIS Living Atlas of the World

ArcGIS Online

Web GIS

Web Developers

3D Mapping

Elevation Data

Global Content

Geo Developers

Developer Communities

GIS Developers

GIS Geeks

GeoGeeks

error.notfound.socialgroup

more
5 0 7,125
Noah-Sager
Esri Regular Contributor

Today, we are pleased to release versions 4.15 and 3.32 of the ArcGIS API for JavaScript. Here are some of the 4.15 highlights (please refer to the 3.32 link at the end for 3.x updates).

The stats

We fixed 50 bugs, added 17 new classes, created 8 new samples, and 99% of the codebase in now written in TypeScript. We also play nicely with deck.gl:

Build a custom layer view using deck.gl

Edit Features in 3D

Make sweet edits and updates to FeatureLayers in 3D SceneViews with your favorite 2D editing widgets: Editor, FeatureForm, FeatureTemplates, and Sketch. When you scale or rotate 3D symbols with the interactive handles of the 3D point transform tool, the feature attributes are automatically updated through VisualVariable configurations. Check out the new Edit features in 3D with the Editor widget sample for a live example.

https://developers.arcgis.com/javascript/latest/guide/release-notes/#featurelayer-editing-in-3d

Edit features in 3D with the Editor widget

Modernize. Adapt. Overcome.

The API returns native promises (instead of Dojo promises) by default. We plan to completely remove Dojo promises at 4.16. This change might break your app, or it might not. You can opt-out of this change with a flag, but we’ll remove this opt-out flag at 4.16, so you might as well make your updates now. You can also use the esriConfig object as a global variable to set esri/config properties.

https://developers.arcgis.com/javascript/latest/guide/release-notes/#api-modernization

 

Seat at the Feature Table

Win friends and influence stakeholders with the new FeatureTable (beta) widget. When working with a large dataset, the table loads additional features as the user scrolls. Users can select rows (features) within the table. Works well with or without a map.

https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable/index.html?search=F...

FeatureTable widget with a map

Attachment issues?

Don’t worry, this is all work related. The Editor widget was updated to support attachment editing. We also introduced a new Attachments widget which allows users to view attachments associated with a feature (pop-ups now use this widget under the hood to display attachments).

https://developers.arcgis.com/javascript/latest/guide/release-notes/#attachments%3A-viewing-and-edit...

That’s so Metal

The MeshMaterialMetallicRoughness (based on MeshMaterial) uses the metallic/roughness lighting model to enable physically based lighting. The metallic and roughness properties can be used to model various realistic materials including metals and plastics.

https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-support-MeshMaterialMeta...

Low poly terrain using mesh geometry

Wait, there’s more!

Act now to receive even more updates at no additional cost. Tools to better explore BuildingSceneLayer. Display features on top of IntegratedMeshLayer. Helpful updates to Clustering, MapImageLayer, and a variety of widgets. And there’s even more than that. Check out the links below to discover everything that’s new and exciting at 4.15 and 3.32.

Release Blog

https://www.esri.com/arcgis-blog/products/product/announcements/whats-new-in-arcgis-api-for-javascri...

4.15 Release Notes

https://developers.arcgis.com/javascript/latest/guide/release-notes/index.html

 

4.15 Samples

https://developers.arcgis.com/javascript/latest/sample-code/?search=4.15

 

3.32 What’s New

https://developers.arcgis.com/javascript/3/jshelp/whats_new.html

more
3 4 3,653
JimBarry
Esri Regular Contributor

When using the ArcGIS API for JavaScript (v4), and creating ~Layer objects, there are two ways to connect to the resource, either by loading the portal item by its portal ID, or by calling the REST endpoint URI directly:

var fl = new FeatureLayer({
  portalItem: {
    id: 'a624a764295e4887b096ab7972b7bd8f'
  }
 });

// OR...

var fl = new FeatureLayer({
 url: "https://services6.arcgis.com/0p6i4J6xhQas4Unf/arcgis/rest/services/SI_TRACKS/FeatureServer"
});‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

In either case, any rendering, popups, or other settings and configuration that you've saved back with the layer will come through.

If a layer or other resource in the app/page has some sharing perms set on it, making it only accessible by the Owner, or an Organization or Group within, it's by design that the API will open up a modal login dialog to see if the user is allowed to access that resource.

One advantage to loading the layer using its portal ID is when it comes to figuring out which layers are opening a modal dialog when you're not expecting them to. If your map contains many layers, this can be a bit of troubleshooting.

If you created the layer using the url property, the modal login dialog will look like this:

Not very useful.

But, if you created the layer using the portalItem property, the modal login dialog will look like this:

Very useful.

The dialog tells you right there exactly which Portal Item it is trying to open. You can go back into your code or your Content tab and find the layer that may not have its sharing permissions set as you expected. Or perhaps it's an item owned by some other person or organization. Or maybe the content used to exist, and doesn't any longer, and maybe then you can find the source data and rehost it yourself, then change the path/ID. Or just drop that item altogether if maybe it's no longer needed for your map or app.

There may be other pros and cons for creating layers with url or portalItem, but this here is a case where loading by portalItem gives you useful info for troubleshooting.

more
2 0 1,815
Noah-Sager
Esri Regular Contributor

Today, we are pleased to release versions 4.14 and 3.31 of the ArcGIS API for JavaScript. Here are some of the 4.14 highlights (please refer to the 3.31 link at the end for 3.x updates).

 

The stats

We fixed 43 bugs, added 12 new classes, created 15 new samples, and tacked on 2 new guide pages.

TimeSlider with timeOffset

Cluster Blockbuster

Point clustering is now a supported method of feature reduction on FeatureLayer, CSVLayer, and GeoJSONLayer in 2D MapViews. There are some differences between the 3.x and the 4.x implementations of clustering. The 4.x version is objectively better, or will be better, as we continue to iteratively add more functionality in future releases.

https://developers.arcgis.com/javascript/latest/sample-code/index.html?search=clustering

Clustering Samples

 

Widgets

We added the Line of Sight widget to analyze visibility in your 3D scenes, and the Daylight widget to change the time and date of your 3D scenes interactively.

https://developers.arcgis.com/javascript/latest/guide/release-notes/#3d-line-of-sight-widget

 

Daylight widget

Save Those Web maps

Web maps can be easily saved to ArcGIS Online and ArcGIS Enterprise with save() and saveAs() methods. This capability is in addition to creating and stylizing web maps in ArcGIS Online and ArcGIS Pro.

https://developers.arcgis.com/javascript/latest/sample-code/webmap-save/index.html

 

Soft-edge masks with Canvas2D

Performance enhancements

  • Significantly improved GPU performance by reducing number of polygon vertices drawn.
  • When rendering vector tiles, we generate significantly fewer WebGL and JavaScript calls.
  • Improved mesh strategy reduced the number of geometries that needed to be tessellated.
  • Optimized the Basemap Gallery widget data loading behavior in 2D MapViews.
  • Switching to/from DotDensityRenderer and/or HeatmapRenderer is much, much faster.

https://developers.arcgis.com/javascript/latest/guide/release-notes/#performance-enhancements

New Guides

All the color ramps used in the Smart Mapping symbology APIs can now be easily viewed, filtered, and copied to your apps in a new Esri Color Ramps guide page.

https://developers.arcgis.com/javascript/latest/guide/esri-color-ramps/index.html

This guide, together with the new Visualization best practices guide, provides easy access to more than 300 stunning color ramps designed by color experts.

https://developers.arcgis.com/javascript/latest/guide/creating-visualizations-manually/index.html

Esri Color Ramps

 

Depreciation

We’re trying out something new this time around. Rather than sticking to the typical naughty or nice list, we’re offering a list of deprecated items to help our users get ahead of upcoming API changes.

https://developers.arcgis.com/javascript/latest/guide/release-notes/#deprecated-classes%2C-propertie...

 

And more...

Have a better time with our API with time related updates, editing updates, map navigation updates, client-side geometry updates, smart mapping updates, my goodness, tessellation updates, and more. See the release notes to get the full story.

Tessellation helpers for custom WebGL layer views

Release Blog

https://www.esri.com/arcgis-blog/products/product/announcements/whats-new-in-arcgis-api-for-javascri...

4.14 Release Notes

https://developers.arcgis.com/javascript/latest/guide/release-notes/index.html

 

4.14 Samples

https://developers.arcgis.com/javascript/latest/sample-code/?search=4.14

 

3.31 What’s New

https://developers.arcgis.com/javascript/3/jshelp/whats_new.html

more
5 0 2,921
224 Subscribers