Skip to content

Instantly share code, notes, and snippets.

Avatar

David Spriggs DavidSpriggs

View GitHub Profile
@DavidSpriggs
DavidSpriggs / viewer.js
Created Jul 14, 2015
widget for viewer.js config file that loads an href via a content pane.
View viewer.js
hrefContent: {
include: true,
title: 'hrefContent',
id: 'myWidgetID',
type: 'titlePane',
position: 10,
path: 'dijit/layout/ContentPane',
options: {
href: 'js/gis/dijit/Help/templates/HelpDialog.html',
preload: true
View Gruntfile.js
/*global module:false*/
module.exports = function(grunt) {
// Load grunt tasks automatically
require('load-grunt-tasks')(grunt);
// Project configuration.
grunt.initConfig({
// use esri_slurp to download api locally. This allows a custom build of the
View keybas.md

Keybase proof

I hereby claim:

  • I am davidspriggs on github.
  • I am davidspriggs (https://keybase.io/davidspriggs) on keybase.
  • I have a public key whose fingerprint is A1F3 7C7A 5041 8EF1 14B6 DF4C C02B 6411 C145 BDB2

To claim this, I am signing this object:

@DavidSpriggs
DavidSpriggs / Multi-line Labels.md
Last active Jan 9, 2017 — forked from asizer/README.md
Multi-line labels with label layer
View Multi-line Labels.md

Multi-line labels on a Feature Layer

This is a workaround to add line breaks to the Label Layer

NOTE: I can't figure out a way to return all the labels for a Feature Layer here, unfortunately. The Label Layer only returns the labels that will fit into their elements, or not conflict with other labels, as calculated based on the original, single-line label. Splitting these labels into multiple lines might reduce conflicts, or allow them to fit properly within their polygons, but because they were conflicted out in the first place, we never see them.

@DavidSpriggs
DavidSpriggs / _repositionInfoWin.js
Created Jul 25, 2014
Reposition infoWindow if out of frame
View _repositionInfoWin.js
_repositionInfoWin: function(graphic) {
// Determine the upper right, and center, coordinates of the map
var maxPoint = new esri.geometry.Point(this._map.extent.xmax, this._map.extent.ymax, this._map.spatialReference);
var centerPoint = new esri.geometry.Point(this._map.extent.getCenter());
// Convert to screen coordinates
var maxPointScreen = this._map.toScreen(maxPoint);
var centerPointScreen = this._map.toScreen(centerPoint);
var graphicPointScreen = this._map.toScreen(graphic.geometry); // Points only
// Buffer
var marginLR = 10;
@DavidSpriggs
DavidSpriggs / viewer.js
Created Jul 22, 2014
Config for higher quality dynamic maps services
View viewer.js
define([
'esri/InfoTemplate',
'esri/units',
'esri/geometry/Extent',
'esri/config',
'esri/tasks/GeometryService',
'esri/layers/ImageParameters'
], function(InfoTemplate, units, Extent, esriConfig, GeometryService, ImageParameters) {
// url to your proxy page, must be on same machine hosting you app. See proxy folder for readme.
View streetview_pro4js_snipits.js
getStreetView: function(mapPoint) {
// location chosen by clicking the left panel button or by using streetview widget
dojo.style(this.noStreetViewResults, 'display', 'none');
dojo.style(this.loadingStreetView, 'display', 'inline-block');
if (mapPoint.spatialReference.wkid !== 4326) {
var coordinatesToProject = {
x: mapPoint.x,
y: mapPoint.y
};
var fromProjection = this.wkt_26852;
@DavidSpriggs
DavidSpriggs / DrawAndMeasurement.js
Last active Aug 29, 2015
Adding two widgets to one title pane
View DrawAndMeasurement.js
define([
'dojo/_base/declare',
'dijit/_WidgetBase',
'esri/dijit/Measurement',
'gis/dijit/Draw',
'dojo/aspect',
'dojo/_base/lang',
'dojo/dom-construct',
'dijit/TitlePane'
], function(declare, _WidgetBase, Measurement, Draw, aspect, lang, domConstruct, TitlePane) {
View async.js
/*global dojoConfig */
define(function() {
var cb = '_asyncApiLoaderCallback';
return {
load: function(param, req, loadCallback) {
if (!cb) {
return;
} else {
dojoConfig[cb] = function() {
delete dojoConfig[cb];