GithubHelp home page GithubHelp logo

cmv / cmv-calcite-maps Goto Github PK

View Code? Open in Web Editor NEW
14.0 10.0 13.0 570 KB

Using CMV with Esri's Calcite Maps

Home Page: https://cmv.github.io/cmv-calcite-maps/demo.html

License: MIT License

JavaScript 60.76% HTML 23.69% CSS 15.55%
cmv widgets calcite-maps cmv-widgets bootstrap esri-api esri-javascript-api theme dojo dojo-widgets

cmv-calcite-maps's Introduction

cmv-calcite-maps

This repo combines CMV with Esri's Calcite Maps. Calcite Maps is "A theme for Bootstrap for designing, styling and creating modern map apps." The Esri repository provides documentation on the Calcite Maps CSS and JavaScript files.

Implementation

There are very few changes needed to use Calcite Maps. The majority of the customizations are within the HTML page. See the example. In addition, you will need to include the new _CalciteMixin.js in app.js. A CSS file cmv-calcite.css is included which helps with the styling of your CMV application.

##Demo The demo in this repo includes many core CMV widgets as well as a custom Styler widget adapted from Calcite Maps. You can use this widget to experiment with the different theme styles and colors.

Widgets

Most of the CMV core widgets work without modification. The notable exceptions are the Esri Editor and Directions widgets which have some styling issues. Custom The Directions widget will

It is expected that many of the contributed CMV widgets and widgets for Esri's Web AppBuilder (Using the method documented in this repo) should work without modification though few have been tested at this point. Widgets that use a full pane like the Attributes Table widget are not currently supported though hopefully will be in the near future.

Mobile

One of the strengths of using Calcite Maps is the responsive design provided by the Bootstrap framework.

License

MIT

cmv-calcite-maps's People

Contributors

snyk-bot avatar tmcgee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cmv-calcite-maps's Issues

Widgets remain gray after they are closed

Hi @tmcgee ,

A few questions here, hope not too many.

  1. The buttons in the menu remain active after closing the menu bar. Is this the default setting?

menu_widgets

  1. I am trying to load a feature layer (a polygon) but it is not showing up in the layers list. Am I doing something wrong here with my code?
        operationalLayers: [{
            type: 'tiled',
            url: 'https://tiles.arcgis.com/tiles/oO7KYsE1NxneFsw3/arcgis/rest/services/ndvi/MapServer',
            title: 'ndvi1',
        },  {
            type: 'tiled',
            url: 'https://tiles.arcgis.com/tiles/oO7KYsE1NxneFsw3/arcgis/rest/services/ndvi/MapServer',
            title: 'ndvi2',
        },{
            type: 'feature',
            url: 'https://services3.arcgis.com/oO7KYsE1NxneFsw3/arcgis/rest/services/polygon/FeatureServer',
            title: 'polygon',
            options: {
                id: 'polygon',
                opacity: 1.0,
                visible: true,
                outFields: ['*'],
                mode: 2
            }
        }]

Thank you,
Michelle.

problem with local basemaps

HI Dear
I have a problem with set custom basemap.

i want to set owner basemap from local server and not onlie basemap like osm or other online basemap.
this is my basemaps.js and viewer.js config.
when i set basemap to osm app is start normally but when i set basemap to my local basemap app not load.
thanks

viewer.js
define([
'esri/units',
'esri/layers/ImageParameters',
'dojo/topic'
], function (units, ImageParameters) {

// helper function returning ImageParameters for dynamic layers
// example:
// imageParameters: buildImageParameters({
//     layerIds: [0],
//     layerOption: 'show'
// })
function buildImageParameters (config) {
    config = config || {};
    var ip = new ImageParameters();
    //image parameters for dynamic services, set to png32 for higher quality exports
    ip.format = 'png32';
    for (var key in config) {
        if (config.hasOwnProperty(key)) {
            ip[key] = config[key];
        }
    }
    return ip;
}

return {
    // used for debugging your app
    isDebug: true,

    //default mapClick mode, mapClickMode lets widgets know what mode the map is in to avoid multipult map click actions from taking place (ie identify while drawing).
    defaultMapClickMode: 'identify',
    // map options, passed to map constructor. see: https://developers.arcgis.com/javascript/jsapi/map-amd.html#map1
    mapOptions: {
        basemap: new Basemap({
            id: 'basemap1',
            layers: [new BasemapLayer({
                url: 'http://localhost:6080/arcgis/rest/services/BaseMap/BaseMaps/MapServer'
            })]
        }),
        center: [30.8, 38.7],
        zoom: 12,
        sliderStyle: 'small'
    },

basemaps.js
define([
'esri/dijit/Basemap',
'esri/dijit/BasemapLayer',
'dojo/i18n!./nls/main'
], function (Basemap, BasemapLayer, i18n) {

return {
    map: true, // needs a reference to the map
    mode: 'custom', // mut be either 'agol' or 'custom'

    /* optional starting basemap
    / otherwise uses the basemap from the map
    / must match one of the keys in basemaps object below
    */
    mapStartBasemap: 'BaseMap1',

    /* optional array of  basemaps to show in menu.
    / otherwise uses keys in basemaps object below
    / values in array must match keys in basemaps object
    */
    basemapsToShow: ['osm','BaseMap1'],

    // define all valid basemaps here.
    basemaps: {

        osm: {},
        BaseMap1: {
            title: 'arial',
            basemap: new Basemap({
                id: 'basemap1',
                layers: [new BasemapLayer({
                    url: 'http://localhost:6080/arcgis/rest/services/BaseMap/BaseMaps/MapServer'
                })]
            })
        }

    }
};

});

Open Widget on right-click

Hi,

I am trying to open a custom widget that i am developing on right-click event on map but struggling to do so. Even google street view widget is not getting opened in this calcite version of CMV.

Can anyone help....!

Menu in Layer Control Widget freezes open, won't close

When first opening the Layer Control widget, and clicking on the menu, the menu will not close when user clicks outside of menu. It seems that focus is required on one of the menu items in order for it to close when clicking outside of the menu, so if you right click in the menu after it is open, that will trigger focus on one of the items, then it will close as expected. Also, if the user closes the widget than reopens, it seems to also start working as expected, i.e. focus seems to happen automatically on the first item when user clicks on any layer's menu, and will close when the user clicks outside the menu. This happens on the Demo also, in Chrome and Firefox. I wonder if it is a Calcite issue, as this does not seem to be an issue on the standard viewer.
I've tried to search out issues with dojo menu and the only one I could find had to do with focus in the 'dijit/menu' that was a bug that was fixed a few years ago. Hopefully this won't be too hard to fix. The UI for the viewer in calcite maps is fantastic. Great job on this!

Streetview widget is not working

Appreciating your efforts, the Streetview widget is not working even if i have used a working Google API key.

Thank you so much for your help.

Best Regards,
Dawit

Cannot read property id of null

hi @tmcgee , I followed the instructions but did not work and I got this error:

init.js:113 TypeError: Cannot read property 'id' of null
    at Object.a.get (init.js:200)
    at Object.constructor (init.js:553)
    at new <anonymous> (init.js:161)
    at Object.createMap (_MapMixin.js:59)
    at Object.initMapAsync (_MapMixin.js:40)
    at init.js:63
    at n (init.js:107)
    at d.then.a.then (init.js:110)
    at Object.startup (_MapMixin.js:33)
    at Object.<anonymous> (_ControllerBase.js:58) "TypeError: Cannot read property 'id' of null

Custom basemap not working

First thanks for the great app!
My problem is I could implement custom basemap in viewer.js of cmv but could not do the same in cmvcalcite. Both in local and disconnected environment.
In calcite i also have the fast font problem .
I would appreciate any help.

How we can open multiple widgets?

Right now, only one widget can open at a time. For example when we open Layers widget, and then if client on legend widget icon then legend widget simple replace the layers widget.
Please guide me.

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.