Giter VIP home page Giter VIP logo

pocgapi's Introduction

  • GIS developer and long-winded pontificator with Environment and Climate Change Canada πŸπŸ’Ύ
  • Technical lead for the Reusable Accessible Mapping Platform πŸ—ΊοΈπŸ§™β€β™‚οΈ
  • Executive knucklehead at Grousewood Games πŸŒ³πŸ›

Contributions

β›„

pocgapi's People

Watchers

 avatar  avatar

pocgapi's Issues

Proposed Library Structure

Files

Directories under src

  • <root> has the loader stuff, code that makes the library, type defs
  • map has the map stuff
  • layer has the layer stuff
  • util ? (not sold on the name) contains stuff like symbology, query, etc.

Module Interface

  • .map or .maps provides functions to make maps. E.g.
    • gapi.maps.createMap(configObj, divId): Map
    • gapi.maps.createOverviewMap(mainMap, divId): Map (design up in the air, see #5 )
    • gapi.maps.create3DMap(configObj, divId): Map3D (next level enhancement)
    • thoughts on plural or singular for module name?
  • .layer or .layers provides functions to make layers. E.g.
    • gapi.layers.createFeatureLayer(configObj): FeatureRecord (or whatever Records get renamed to)
    • maybe have it config driven? i.e. one function, derives layer type from config. might make typescript less great
  • open to how the util-ish things are structured
    • current way would be gapi.query.myFunc(), gapi.symbology.otherFunc()
    • grouping might be more consistent, but means more typing. e.g. gapi.util.query.myFunc()
  • a dev module for hackery? e.g. gapi.dev.esriLoadApi() to do plugin sorcery

Spam ideas below

Rethink Class Names

Does Record and FC still make sense?

Would Layer and Sublayer be clearer? Maybe a better word than Sublayer...

Spam ideas here

Design new Overview Map

The Overview Digit was dropped when ESRI moved to v4

Likely need to make a dedicated map view to handle it.

I guess using PanelAPI makes sense for the container? Would need to delay creation of the overview until the panel and the host <div> are created.

A second MapView would be easiest, however we might be seeing all layers in the view, not just basemap. Need to experiment.

Can also make a second Map alltogether and just keep it synched with our main map extent

Sample has a 2D overview on a 3D map.
https://developers.arcgis.com/javascript/latest/sample-code/overview-map/index.html

Also might be worth trolling the esri forums, as this seems like a common thing people will be grousing about.

Look into using GeoJSONLayer

Instead of using Terraformer and ramming json into a Feature Layer, try to use new class instead for all File / WFS sources

Revist field configuration for attribute based layers

We have a bunch of different config options.

outfields is an optional comma delimited string of field names. If not *, will only include the fields in the list. This impacts the attribute loader. End result affects what is available to display in grid, display in details pane, what's on observables.

fieldMetadata is an array of mappings between field name and alias. Lets author define a custom alias.

The grid config has columns which map to fields. While a bit redundant, I can see the use of having an additional override here if authors want grid to look different / have different column heading.


Possible idea would be to expand fieldMetadata to include an omit flag, replacing the outfields. I.e. you would have to define fields you don't want instead of defining fields you do want.

Another idea is to push the fieldMetadata array into a property of new field metadata object, and add a boolean property for exclusivity. In this case, if true, we only take fields in the field metadata list. Otherwise the list acts as an enhancer (e.g. you only want to override one alias, only need one element. But if exclusive, need every element).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.