MapLarge API Reference v4.2

MapLarge JavaScript API v4 Documentation                        Version: 4.2

Getting Started

1.  Create a Map Container

2.  Create a Map

3.  Create Map Layers

Sample Code

Object References

ml.map Options

ml.layer Options

Create Client Side Map Markers

Simple Marker Creation:

Marker Removal:

Marker with custom onClick:

Sample Code

Marker Options Object

Data Tables

Conditional Filters (D = Double, I = Int32, S = String)

Expanded Query API

Example URLs / API Example:

orderby:

Table Management

Table Permissions: Users, Groups, and Tables

Table Management UI

Table Creation Example

Making Requests

Table Actions-


MapLarge JavaScript API v4 Documentation                        Version: 4.2

Getting Started

Before using MapLarge maps on a website, each page must include the javascript API publicly available on our main API server at http://e.maplarge.com/JS

There are three main steps in displaying a map on your web page:

1. Create a map container, and attach it to the page DOM.

2. Create a map instance within that div.

3. Create and display any map layers.

1.  Create a Map Container

Each map will reside within a div (or other block level element) on your page.  You may have several of these map panes on a single page.

var div = ml.create('div', "width:600px; height:600px; float:left;", document.body);

This step can be skipped if you are creating the map container element statically in your page.  In this instance, you will need to use document.getElementById('yourMapDivID') for use in creating the actual map data object.

2.  Create a Map

A map object is the data object that controls all the properties of a displayable map, including starting locations, zoom levels, rendering options, underlaying map tiles, and more.  (See ml.map)

You create a map object by telling it what container to display inside of and passing in a JSON list of map options.  (See ml.ui.map.MapOptions)

var map = new ml.map(div, { lat: 34, lng: -84, z: 9, api: ‘LEAFLET’ });

3.  Create Map Layers

Within each displayable map there are multiple render layers, allowing a user to create multiple map overlays on a single map space.  For each layer you wish to add to a map, you will need to create a new ml.layer object with the parent map object and a list of JSON formatted layer display options.

var layeropts = { query: { table:  'hotels', select: 'geo.dot' } };

var layer = new ml.layer(map, layeropts); //create a new layer

layer.show();  //show the layer

Each layer can be programmatically turned on or off by using layer.show() or layer.hide();

Sample Code

Following is an example of a simple single layer dot map.  Code is taken from http://maplarge.com/Example/dot-default?viewSource=true

For more code examples see the Examples page (http://maplarge.com/Example/List)

or follow along with the tutorials found online at (http://maplarge.com/API/Tutorial).

Sample 1: Single Layer Dot Map

<!DOCTYPE html><html><head>
<script type='text/javascript' src='http://alphaapi.maplarge.com/JS'></script>
<script type='text/javascript' >

ml.onload(function () {
   
//create a new div and add to document
   
//you could also have called document.getElementById('yourdivid');
   
//to attach to an existing DOM element.
   
var div = ml.create('div', "width:600px; height:600px; float:left;", document.body);

   
//create a map zoomed in on Atlanta, GA (34,-84)
   
//the second parameter is a Object literal
   
var map = new ml.map(div, { lat: 34, lng: -84, z: 9 });

   
//add a layer with no style: default is "red dots"
   
var layer = new ml.layer(map,
       
{
           query
: {
               table
:  'hms/hotels',  //table name = hotels
               select
: 'geo.dot' //geography = dots
           
},
           onClick
: 'debug', //show debug output when dots are clicked
           
//this function runs when the mouse cursor moves over a layer object
           onHover
: function (data, layer) {
               
return data.data.ChainID;
           
},
           
//NOTE--> for hover you must list the fields you want to use
           hoverFields
: ['ChainID', 'LowRate']

       
}
   
);
   
   
//show the layer
   layer
.show();

});
</script></head><body></body></html>

Object References        

ml.map

Ex: var map = new ml.map(div,OPTIONS)

Parameter: div a reference to the html dom element that will contain the map.  

Parameter: OPTIONS is an object that defines how the map will be initialized.  Most options are optional, and will be provided with default values if omitted.  

Note:  In addition to the options described below, all the options of the underlying map api are available to you as well by by using map.getInternalMap().  For example, the following code returns the internal map.

//create a map large map using the ESRI API

var mlmap = ml.map(div,{ api:’ESRI’ });

//return the internal ESRI map object

var emap = map.getInternalMap();

Constructor Options

Property

Type

Explanation

api

String

[Optional] The provider of the map api.  Must be one of “GOOGLE”, “LEAFLET”, “ESRI”

lat

Double

[Optional] Initial latitude for the map to be set at. Must be be between -90 and 90.

lng

Double

[Optional] Initial longitude for the map to be set at. Must be be between -180 and 180.

z

Integer

[Optional] Initial zoom level for the map to be set at.  Must be between 0 and 22, inclusive.

layers

Array [ layerOpt1, layerOpt2, etc...]

[Optional] An array of layer options. All layers not flagged as “hidden” will be immediately added to the map and shown

viewportScalable

Boolean

[Optional] Used to control page zoom for touch devices.

Methods & Properties

Function Signature

Return Value

Explanation

api.get() / .set(string val)

String

Get or set the mapping api

center.get() / .set(LatLng val)

{ lat:#, lng:# }

Get or set the map center

clearAllLayers()

void

Clear all Layers

click(LatLng,bool ignoreMotion)

void

Fire a click event at a specific location, and optionally, ignore the click if the map is moving. Ex: map.click({ lat:34, lng: -84});

close the singleton balloon owned by the map

closeBalloon()

void

hover(LatLng ll, bool ignoreMotion)

void

Trigger a hover event over the map at a specific location and optionally ignore the event if the map is moving

openBalloon(LatLng ll, String/Element html);

void

Opens a balloon at the specified coordinates {lat:#, lng:#} and with the specified content which can be either a literal string or a html element.

setBounds(LatLng sw, LatLng ne)

void

Centers and zooms the map to the best fit that shows the entire bounds area.

getVisibleBB()

{

minLat: float,

maxLat: float,

minLng: float,

maxLng: float

};

Returns the lat/lng coordinates for the visible map area

zoom.get() / .set(Int32 zoom)

void

Zoom the map to a specific level. Valid values are from 0-22

getInternalMap()

Google, ESRI or Leaflet Map Object

Returns the internal map api object. Type will vary based on the api in use.

ml.layer

Ex var layer = new ml.layer(map,OPTIONS);

Parameter: map is a reference to the ml.map where the layer will be added

Parameter: OPTIONS is an object that defines how the layer will be rendered.  Most options are optional, and will be provided with default values if omitted.

Note:  The Layer Options described below are explained in more detail with interactive code samples at http://maplarge.com/API/Tutorial 

For rapid prototyping the MapEditor UI, is also helpful.  On any of the above tutorial pages press “CTRL” “M” to edit the map in place or visit the editor directly at: http://e.maplarge.com/view/MapEditor.html 

Object Properties

Property

Type

Description

hoverFields

string[]

An array of all column names that you wish to have accessible for use inside of the onHover function.

onClick

Function

A function with two parameters that will be called whenever a data point or shape is clicked.  Function must return a string (which may be HTML) that is to be displayed in a popup bubble over the shape.  Information about the shape will be passed in by the first parameter, and row data can be accessed by the “data” property.  E.g. if the first parameter is named “data”, “return data.data.ColumnName;”  The second parameter contains a reference to the map layer which generated the click event.

onHover

Function

A function with two parameters that will be called whenever a data point or shape is hovered upon.  Function must return a string (which may be HTML) that is to be displayed in a popup bubble over the shape.  Information about the shape will be passed in by the first parameter, and row data can be accessed by the “data” property.  E.g. if the first parameter is named “data”, “return data.data.ColumnName;”  The second parameter contains a reference to the map layer which generated the hover event.  Note: Any column name used in the onHover function must be present in the hoverFields array.

style

Object

Defines how table data is rendered for this layer.

style.method

String

The method of shading to use when rendering this layer.  Value must be one of “basic”, “interval”, or “rules”.  If omitted, method is assumed to be “basic”.

basic - Does not require any extra shading information.  Any styling defined will be applied to all features that are rendered.

Example:

interval - Features will be shaded by gradients over a defined number of ranges.  The properties style.ranges and style.colors are used to apply styling.

Example:

rules - Features will be shaded by discrete rules defined in style.rules

Example:

style.url

String

The absolute URI to an image to use for each XY point in the layer.

style.height

Integer

Height in pixels to use for XY points in the Layer

style.width

Integer

Width in pixels to use for XY points in the Layer

style.size

Integer

A single value that is use for both height and width.  Defining either style.height or style.width will override the corresponding dimension.

style.shape

String

The shape to draw each XY point.  Must be either “rectangle” or “round”

style.fillColor

String

The color used to fill each XY point.  Colors may be of the form “Named-A”, “A-R-G-B”, “Named”, or “R-B-G”

A list of Named values and their RGB equivalents can be found here: http://maplarge.com/DotNetColors

style.borderColor

String

The color used to draw border for each XY point.  See style.fillColor.  This is mutually exclusive with style.borderColorOffset

style.borderColorOffset

Integer

A +/- offset value from style.fillColor used to draw border for each XY point.  See style.fillColor.  This is mutually exclusive with style.borderColor

style.borderWidth

Integer

Width in pixels used to draw the border on each XY point.

style.text

Object

Defines how to style the text placed in each XY point.

Note:  If using the style.method “interval” the value found in the style.shadeBy column will be appended to this text.

style.text.x

Integer

Position in pixels from the left of the XY point to start rendering text.

style.text.y

Integer

Position in pixels from the top of the XY point to start rendering text.

style.text.text

String

Text value to render inside each XY point.

style.text.size

Inteter

Size in pixels to render the text in each XY point.

style.dropShadow

Boolean

Whether to apply a drop shadow to each XY point.  

style.dropShadowLength

Integer

Length in pixels of the drop shadow.  Assumes style.dropShadow is true.

style.rules

Array

An array of rule objects that define a style and test criteria for rendering layer features.  Tests are run in order from first to last, and any data row that matches a rule is removed as a candidate for satisfying subsequent rule definitions.

style.rules[n].style

Object

Can contain any styling that could be used for a “basic” shading method.  See style and style.method

style.rules[n].where

Array,

String

Can contain any tests that can be used in a standard test clause.  See query.where.  Additionally, the string value “CatchAll” may be used in the place of the a final test clause to match any data rows that have not already satisfied any previous rules.

style.steps

Integer

The number of steps used in the interpolation between the min and max values of each range.  E.G.  If there are three items in style.ranges and style.steps is set to 50, each range’s min to max values will be broken into 50 partitions with equal numbers of data points in each, and apply the appropriate style.colors item broken up into 50 evenly spaced colors.

Option only applies to the style.method “interval”

style.shadeBy

String

The name of a column in query.table.name to use for interval shading.  This column must be a numeric column (Int or Double) and must be fully defined by the table name itself.  E.g. “census/BlockGroup.Area”.  Additionally, if using a table join, the primary table may return aggregate values based on the type of join.  These are named “avg”, “count”, and “sum”; representing the average, count, and sum of grouped secondary table rows.  E.g. “census/Zip.LowRate.avg” could be average of the lowest room rates that all hotels offer by zip code, if a table of hotel information was joined against the “census/Zip” table

style.colors

Array

An array of color range objects that are used for each interval in style.ranges.

style.colors[n].max

Integer

The color to use at the top of this interval range.  See style.fillColor.

style.colors[n].min

Integer

The color to use at the bottom of this interval range.  See style.fillColor.

style.ranges

Array

An array of min/max value range objects that define the sizes of each range which match up to style.colors.  If omitted, a number of ranges equal to the the size of the style.colors array will be used, and min/max values will be dynamically selected to attempt an equal distribution (by count) of rows in each range.

style.colors[n].max

Integer

The value to use for the top of this interval range.

style.colors[n].min

Integer

The value to use for the bottom of this interval range.

style.cluster

Object

Can contain any styling that could be used for a “basic” shading method.  See style and style.method.  Custer groups are shaded independently from any style.rules or style.colors settings.

query

Object

Defines the basic structural information used to construct this layer.

query.join

Object

Defines a join between two different tables.  The query.table value will be restricted based on what form of join is being constructed.

query.join.method

String

The method to use when joining table.  Currently supported joins are:

PointInPolyJoin - This will join two tables by testing each XY point in query.join.table against the boundaries of each polygon shape in query.table.  This requires query.select.type to be “geo.poly”

Example:

query.join.table

String

See query.table

query.join.where

Array,

Object

See query.where

query.table

Object,

String

Defines what table data will be used for this layer.

If this is set to an object, it must define a “name” key.  If this is a string, it is a table name, either in full ID or active name format.

query.table.name

String

Defines what table data will be used for this layer.  This is a table name, either in full ID or active name format. E.g. “census/BlockGroup

query.select

Object,

String

Defines what type of geographic map will be rendered by this layer.

If this is set to an object, it must define a “type” key.  If this is a string, the value must be one of the following values: “geo.dot”, “geo.line”, “geo.poly”, “geo.dotCluster”, or “geo.dotCluster#” where # is in [16, 32, 64, 128, 256].  “geo.dotCluster” is assumed to be 32.

query.select.type

String

Defines what type of geographic map will be rendered by this layer.  The value must be one of the following values: “geo.dot”, “geo.line”, “geo.poly”, “geo.dotCluster”, or “geo.dotCluster#” where # is in [16, 32, 64, 128, 256].  “geo.dotCluster” is assumed to be 32.

query.where

Array

An array that defines a test clause.  The test clause may be represented by either an Array of Arrays of filter Objects, or simply an Array of filter Objects.  Any filter Objects that are in the same Array are treated as being joined by AND conditionals, and any Array in the same Array are treated as being joined by OR conditionals.

E.g.  Where a, b, c, d are filter Objects

[ a, b, c ] would satisfy the condition (a AND b AND c).

[ [ a, b ], [ c, d ] ] would satisfy the condition (a AND b) OR (c AND d)

A filter object is defined by an object with the properties “col”, “test”, and “value”.  “col” must be the name of a column in  either query.table.name or query.join.table, or one of the aggrigate column values as defined in style.shadeBy.  “test” must be a valid filter type for the column being filtered.  See section Conditional Filters for a full list.  “value” be different types depending on the filter; string, numeric, or list.  If value is expected to be a list, it is a comma-delimited string of the appropriate type.

Methods & Properties

Function Signature

Return Value

Explanation

hide()

void

Hide the layer

show()

void

Show the layer

visible.get() / .set()

boolean

Get or set the layer visibility

Create Client Side Map Markers

Client Side Map markers can be created at a given positions on a map using a high performance custom marker layer managed by the MapLarge api. At minimum, a marker consists of an image and a latitude/longitude coordinate (of type ml.geo.LatLng). Marker management is handled through an instantiated map object as shown by the example below:

Simple Marker Creation:

//Create map

var map = new ml.map(div, { lat: 34, lng: -84, z: 9, api: ‘LEAFLET’ });

//create options object for marker

var options = new ml.MarkerOptions();

options.icon = 'http://leeapi.maplarge.com/test/dot.png';

//Create ml.geo.LatLng object with geographic coordinates

var latlng = ml.ll(33.755, -84.39);

//Add marker to map

var myMarker = map.createMarker(latlng, options);

The options object created and passed into the createMarker function is used to communicate various customization options for the Marker. OnClick and OnHover event handlers may also be defined in this object. Full details about the options object are described below.

The object returned from the createMarker call is a reference to the actual marker created on the map. It may be used to later remove the marker via a separate function call. In addition, all markers can be removed with one function call using map.clearAllMarkers.

Marker Removal:

//Map already created

//Add marker to map

var myMarker = map.createMarker(latlng, options);

//remove marker from map

map.removeMarker(myMarker);

//remove ALL markers

map.clearAllMarkers();

Events may also be attached to marker objects. Via the MarkerOptions object, an onClick and onHover handler can be defined.

Marker with custom onClick:

//Map already created

//Add marker to map

var options = new ml.MarkerOptions();

options.icon = 'http://leeapi.maplarge.com/test/dot.png';

options.onClick = myHandler;

options.data.message = ‘Message for event handler’;

var myMarker = map.createMarker(latlng, options);

//Custom marker handler

//The parameter passed in is the marker itself.

//The options is an exact copy of the options used to create the marker and //can be used to pass information. By default if a string is returned, the //result will be displayed in a popup balloon. Returning false overrides //this behavior.

function myHandler(marker) {

 return marker.options.data.message;

}

Sample Code

The following is an example of a simple map creating markers as in the above examples. Code is taken from http://leeapi.maplarge.com/view/map_merker.html

Marker Options Object        

Marker Options

Ex: var marker = map.createMarker(latlng, options); 

Parameter: obj is an object that defines how the map will be initialized.  Most options are optional, and will be provided with default values if omitted.

Object Properties

Property

Type

Description

icon

String

The URL of an image to display on the map.

name

String

Optional marker name.

data

Object

A general purpose object which may be used to hold any information. Intended to be used for passing data to the event handlers

onHover

Function

A function with 1 parameter that will be called whenever a marker is hovered over.  The actual marker object is passed in the first parameter for any custom use by the handler.

onClick

Function

A function with 1 parameter that will be called whenever a marker is clicked.  Function may return a string (which may be HTML) that by default will be shown in a popup bubble over the marker. If this behavior is not desired, returning false from the Function will prevent it. The actual marker object is passed in the first parameter for any custom use by the handler.

Data Tables

Data Tables are a server side object composed of columns of equal length.  All columns are automatically indexed and both the index and the column data are loaded into RAM the first time a column is used.  It is worth noting that because MapLarge tables and columns reside entirely in RAM exhibit unique performance capabilities and hardware requirements.  A Data Table row is a collection of cells taken from the Data Table columns at the same position in each column.  Linear table scans are designed to run almost entirely in L1 processor cache so that computations can take advantage of low level processor memory cache and provide .

Column Types:  Each column is of a fixed type determined on creation.  During bulk imports columns are usually created by “duck typing” or down casting from the strictest to the most inclusive type until all values in a given column fit within a type.  If a column looks like an integer we treat it as an integer, if it looks like a double its a double, otherwise its a string.  Once a column is created it is strongly typed and the overhead of duck typing is avoided.  Currently, row limits can be avoided by stacking tables together.  Row length limits will soon be removed from the api allowing for rows capable of filling all available RAM.  

  1. Int32: Represents a 32-bit signed integer.
  1. Default Value: 0  
  2. Max Value: 2,147,483,647
  3. Min Value: -2,147,483,648
  4. Max Column Length: 268,435,456 rows
  1. Double: Represents a double-precision floating-point number.
  1. Default Value: 0
  2. Max Value: 1.7976931348623157E+308
  3. Min Value: 1.7976931348623157E+308
  4. Max Column Length: 178,956,970 rows
  1. String: Represents text as a series of Unicode characters (UTF-16, 2 byte characters).  Internally, the system splits strings by spaces and indexes each “word” for faster searches.
  1. Max Size/Length: (2GB or approximately 1,000,000,000 two byte characters)
  2. Max Column Length: approximately 100,000,000 rows
  3. Default Value: “” (Empty String)
  1. XY:  Each “XY” in a column of type XY is a single point {x:1, y:1 } defined by a pair of Int32 values. This is the system’s internal representation of point values based on a transformation of latitude and longitude into an internal projection format.
  1. X Min/Max:  derived from converting Longitude -180/180 into X values
  2. Y Min/Max: derived from converting Latitude -90/90 into Y values
  3. Default Value:  0,0
  4. Max Column Length: 178,956,970 rows
  1. Poly: Each “Poly” in a column of type poly holds a collection of one or more closed polygon(s) defined by a series of XY points.  For example a table might only have 10 rows, and the poly column would have 10 “poly” entries.  However, inside each entry there could be multiple polygons.  Polygon point configurations generally follow conventions similar to those of traditional ShapeFiles.  Each shape inside a poly entry is drawn separately, but selecting one shape in a polygon set results in the selection of all shapes in the polygon set.
  1. Max Polygon Count per Poly Entry::      67,108,864
  2. Max Point Count Per Polygon:   268,435,456
  3. Default Value:  0 entries
  4. Max Column Length: 67,108,864 rows
  1. Line:  Each “Line” entry in a column of type Line is a collection of one of more lines.  Lines are composed of XY points.
  1. Max Lines Per Line Entry: 67,108,864
  2. Max Point Count Per Line:   268,435,456
  3. Default Value:  0 entries        
  4. Max Column Length: 67,108,864 rows

Conditional Filters (D = Double, I = Int32, S = String)

Name

D

I

S

Description

Between

Column row values between a minimum and maximum, inclusive.

Bottom

A given number of smallest column row values.

Contains

Column rows that contain a value, as a substring.

[Not Case Sensitive], [commas are valid search terms]

ContainsAll

Column rows that contain all of a list of values, as a substring. [Not Case Sensitive], [list is comma delimited and commas are NOT valid search terms]

ContainsAny

Column rows that contain any of a list of values, as a substring. [Not Case Sensitive], [list is comma delimited and commas are NOT valid search terms]

ContainsNot

 ●

Column rows that do not contain a single value as a sub string

[Not Case Sensitive], [commas are valid search terms]

ContainsNone

Column rows that do not contain any of a list of values, as a substring.  [Not Case Sensitive], [list is comma delimited and commas are NOT valid search terms]

ContainsOr

Column rows that contain any of a list of values, as a substring.  Alias for “ContainsAny” [Not Case Sensitive], [list is comma delimited and commas are NOT valid search terms]

Equal

Column rows that equal exactly some value.

[Case Sensitive]

EqualAny

Column rows that equal any of a list of values.

[Case Sensitive]

EqualNone

Column rows that do not equal any of a list of values.

[Case Sensitive]

EqualNot

Column rows that do not equal a value exactly.

[Case Sensitive]

Greater

Column rows whose values are strictly greater than some value.

GreaterOR

Column rows whose values are greater than or equal to some value.

Less

Column rows whose values are strictly less than some value.

LessOR

Column rows whose values are less than or equal to some value.

NotBetween

Column row values not between a min and max, inclusive.

Top

A given number of largest column row values.

* Filter can be applied to columns of type D = Decimal, I = Integer, S = String

Expanded Query API  

The expanded query api provides additional functionality that is currently limited to non mapping uses.  The namespace ml.query provides advanced functions that may be used to query data from any table using a fluent interface. Below is an example displaying how to define and run an advanced query.

var q = ml.query().from('maplarge/Donors').where('PartyCode', 'Contains', 'r').groupby('State');
q
.select('State').select('Amount.sum').orderby('Amount');

q.run(function (data, query) {
   
var dataDiv = document.getElementById('dataDiv');
   dataDiv
.innerHTML = ml.util.toJSON(data);
});

Return data is available in data object available in callback returned. This data object includes 2 properties, data and totals. The data property holds all the data other than non grouped aggregates which are held in totals property. Grouped aggregate data is returned in data object named after columnName_aggregateName.

Return Object Description

data

object containing return data

{ “data”:

{ “column1”:[“row1”,”row2”],

  “column2”:[“row1”,”row2”] }}

totals

non grouped aggregated data

{ "column1_sum":[100] }

Below are available method descriptions.

start

Begin at this row number.  Equivalent to the X in sql's LIMIT X,Y

take

Limit response to this many rows.  Equivalent to the Y in sql's LIMIT X,Y

select

If omitted, will return all non-geographic columns in the table.

If set, will only return specific columns.  Never any geographic ones

though.  Values are comma delimited.

the value "*" means all non-geo columns.  So if you wanted some

aggregates in there as well, you could do:

ex: select=*,Amount~sum,Amount~avg,Amount~uniq,Amount~count

groupby

NOTE Missing fancy operator discussion

please add below

If set, uses the value as a comma delimited list.  No aggregate

grouping.  Aggregate functions count, avg, sum, uniq are available

orderby

If set, orders output data by that column.  Supports single.

Append ~asc, or ~desc to sort ascending or descending.  if not set,

assumes ascending order.

ex:  orderby=Amount~desc

where

standard where clauses, as defined by the api.

column~test~value|column~test~value_OR_column~test~value  etc.

_OR_ is or, | is and.

Between

Column row values between a minimum and maximum, inclusive

Bottom

A given number of smallest column row values.

Contains

Column rows that contain a value, as a substring.

ContainsAll

Column rows that contain all of a list of values, as a substring.

ContainsAny

Column rows that contain any of a list of values, as a substring.

ContainsNone

Column rows that do not contain any of a list of values, as a substring

ContainsOr

Column rows that contain any of a list of values, as a substring. Alias for “ContainsAny”

Equal

Column rows that equal exactly some value.

EqualAny

Column rows that equal any of a list of values.

EqualNone

Column rows that do not equal any of a list of values.

EqualNot

Column rows that do not equal a value exactly.

Greater

Column rows whose values are strictly greater than some value.

GreaterOR

Column rows whose values are greater than or equal to some value.

Less

Column rows whose values are strictly less than some value.

LessOR

Column rows whose values are less than or equal to some value.

NotBetween

Column row values not between a min and max, inclusive.

Top

A given number of largest column row values.

Example URLs / API Example:

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&start=0&select=*,Amount~avg,Amount~sum,Amount~count&take=20&groupby=PartyCode


var q = ml.create('div', "width:100%; height:700px; float:left;", document.body);

q.select(‘*’).select('Amount.avg').select('Amount.sum');

q.select('Amount.count').orderby('Amount');


q
.run(function (data, query) {
   
var dataDiv = document.createElement(‘div’);
   dataDiv
.innerHTML = ml.util.toJSON(data);
});

Since the row for a non grouped column contains the first value

encountered for that group, ordering that column will give you a min

or max for that group:

Amount column here is the max value for each group.

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&start=0&select=Amount,PartyCode,Amount~count,Amount~sum,Amount~avg,Amount~uniq&take=20&groupby=PartyCode&orderby=Amount~desc


var q = ml.query().from('maplarge/Donors').groupby(‘PartyCode’);

q.select(‘Amount’).select(‘PartyCode’).select('Amount.count').select('Amount.sum');

q.select('Amount.avg').select(‘Amount.uniq’);

q.take(‘20’).groupby(‘PartyCode’).orderby('Amount.desc');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Donations totals by day:

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=TimeStamp,Amount~count,Amount~sum,Amount~avg&groupby=TimeStamp&orderby=TimeStamp&take=760


var q = ml.query().from('maplarge/Donors');

q.select(‘TimeStamp’).select('Amount.count').select('Amount.sum');

q.select('Amount.avg').take(‘760’).groupby(‘TimeStamp’).orderby('TimeStamp’);


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Donations by state.  Since it's ordered by Amount desc, the Amount

column contains the highest single donation for that state.

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=State,Amount~count,Amount~sum,Amount~avg,Amount&groupby=State&orderby=Amount~desc&take=100


var q = ml.query().from('maplarge/Donors');

q.select(‘State’).select('Amount.count').select('Amount.sum').select('Amount.avg');

q.select('Amount').groupby(‘State’).orderby(‘Amount.desc’).take(‘100’);


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Donations by person:  

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Contrib,FecOccEmp,Amount~sum,Amount~count&groupby=Contrib&take=100


var q = ml.query().from('maplarge/Donors');

q.select('Contrib').select('FecOccEm').select('Amount.sum').select('Amount.avg');

q.select('Amount').groupby('Contrib').take('100');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Donations by occupations:  http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=FecOccEmp,Amount~sum,Amount~count&groupby=FecOccEmp&take=100


var q = ml.query().from('maplarge/Donors');

q.select('FecOccEmp').select('Amount.sum').select('Amount.count');

q.groupby('FecOccEmp').take('100');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Donations to candidates:

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=RecipientName,Amount~sum,Amount~count&groupby=RecipientName&take=100


var q = ml.query().from('maplarge/Donors');

q.select('FecOccEmp').select('Amount.sum').select('Amount.count');

q.groupby('FecOccEmp').take('100');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Donations to Barack Obama

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=RecipientName,Amount~sum,Amount~count&groupby=RecipientName&where=RecipientName~Contains~Barack

Donations to Obama or McCain directly (no superpacs)

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=RecipientName,Amount~sum,Amount~count&groupby=RecipientName&where=RecipientName~ContainsAny~Obama,McCain|RecipientName~ContainsNone~Victory

Donation totals to Obama or McCain directly (no superpacs) grouped by

amounts at or over $10,000

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=RecipientName,Amount,Amount~sum,Amount~count&groupby=RecipientName,Amount&where=RecipientName~ContainsAny~Obama,McCain|RecipientName~ContainsNone~Victory|Amount~GreaterOR~10000

orderby:

Group Ordering:

Order a column before grouping takes place. The group order takes place after all grouping and subtotals are calculated.

orderby(‘Column.asc,Column.sum.asc');

Subtotals may be: sum, count, avg, uniq

String columns:

The sum and avg values for string columns are all based on string lengths.  So you can get things like character counts for columns (sum) or average size of a string for a column.  

orderby examples:

Total state donations, ordered by state:

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=State,Amount~count,Amount~sum,Amount~avg,Amount&groupby=State&orderby=State


var q = ml.query().from('maplarge/Donors');

q.select('State','Amount.count','Amount.sum','Amount.avg','Amount');

q.groupby('State').orderby('State');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Total state donations, ordered by sum:

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=State,Amount~count,Amount~sum,Amount~avg,Amount&groupby=State&orderby=Amount~sum~desc


var q = ml.query().from('maplarge/Donors');

q.select('State','Amount.count','Amount.sum','Amount.avg','Amount');

q.groupby('State').orderby('Amount.sum.desc');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Same, but just the top 10:

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=State,Amount~count,Amount~sum,Amount~avg,Amount&groupby=State&orderby=Amount~desc,Amount~sum~desc


var q = ml.query().from('maplarge/Donors');

q.select('State','Amount.count','Amount.sum','Amount.avg','Amount');

q.groupby('State').orderby('Amount.desc,Amount.sum.desc').take('10');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Because you're sorting by Amount first, the Amount value will be the

largest individual donation for that state.

Grouping:

groupby=numbercolumn~rules~rulestring

The rule string is in the format min/max|min/max|...|catch

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Amount~sum,Amount~count,Amount~key&groupby=Amount~rules~0/1000|1000/10000|10000/100000|100000/1000000|catch


var q = ml.query().from('maplarge/Donors');

q.select('Amount.sum','Amount.count','Amount.key','Amount');

q.groupby('Amount.rules.0/1000|1000/10000|10000/100000|100000/1000000|catch');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Rules do not have to be in numeric order, it will just run down the

list and go with whichever one is matched first.  Currently, the catch is required to group non-matching rows. Each min max pair is [min, max)  That's the

range of min (inclusive) to max (exclusive).

Grouping by string:

groupby=stringcolumn~FirstLetter

groupby=stringcolumn~FirstLetterNoCase

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=State~count,State~key&groupby=State~FirstLetter&orderby=State~key~asc


var q = ml.query().from('maplarge/Donors');

q.select('State.count','State.key');

q.groupby('State.FirstLetter').orderby('State.key.asc');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Group Keys:

You've probably noticed from the links above.. When you are grouping

on a column, you now have an aggregator function called "key" that can

be used like sum, avg, count, and uniq.

This will print out a column for the column that has they"key" value

that was used for hashing into that group.  For instance, for the

FirstLetter state example above, the "key" for each group was the

first letter.  If you were doing amount deciles:

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Amount~sum,Amount~count,Amount~key&groupby=Amount~value~10


var q = ml.query().from('maplarge/Donors');

q.select('Amount.sum','Amount.count','Amount.key');

q.groupby('Amount.value.10');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Returns the "groups" that actually had data, likea normal SQL result set, also you have the "key" in that query so you can see which decile each row represents.  For a 2D example:

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Amount~sum,Amount~count,Amount~key,TimeStamp~key&groupby=Amount~value~10,TimeStamp~value~10


var q = ml.query().from('maplarge/Donors');

q.select('Amount.sum','Amount.count','Amount.key','TimeStamp.key');

q.groupby('Amount.value.10','TimeStamp.value.10');  LEEEE


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

Here both key columns are included, so even if the results aren't

ordered (as they aren't here) you can still draw in points by using

the two as an x,y coordinate.

Here's one with both strings and numbers:

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Amount~sum,Amount~count,Amount~key,State~key&groupby=Amount~value~10,State~FirstLetter&orderby=State~key~asc


var q = ml.query().from('maplarge/Donors');

q.select('Amount.sum','Amount.count','Amount.key','State.key');

q.groupby('Amount.value.10','State.FirstLetter').orderby('State.key.asc');


q
.run(function (data, query) {
   
var dataDiv = ml.create('div', "width:100%; height:700px; float:left;",document.body);          

    dataDiv.innerHTML = ml.util.toJSON(data);
});

For rules groupings specifically, I have the "catch" all group keyed

to be -1.

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Amount~sum,Amount~count,Amount~key&groupby=Amount~count~10

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Amount,Amount~count,Amount~key&groupby=Amount~count~20&orderby=Amount

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Amount,Amount~count,Amount~min,Amount~max,Amount~key&groupby=Amount~count~20&orderby=Amount

Groupby Value                

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Amount,Amount~count,Amount~key&groupby=Amount~count~10&orderby=Amount

http://alphaapi.maplarge.com/Table/Query?from=maplarge/Donors&select=Amount,Amount~count,Amount~min,Amount~max,Amount~key&groupby=Amount~count~20&orderby=Amount

Table Management

Table Permissions: Users, Groups, and Tables

Users and tables for your account can be managed via the accounting interface at http://alphaapi.maplarge.com/accsys

Within your account context, you can create user accounts and create, manage, and upload table data. Tables can be secured to varying degrees once uploaded. They may be:

  1. Visible  and useable to the entire public (“Public”)
  2. Hidden in the accounting interface but still usable for mapping (“PublicUnlisted”)
  3. Protected, hidden and only usable to users explicitly given permissions (“Private”)

Users may be managed by accessing the “Account Management” section. Users must be added to groups that define permissions and may be managed as a whole.

After creating a group and assigning its permissions, the users in your account will be presented so that they may be added or removed from the groups. What tables a user may interact with are defined by their group membership.

.

Table Management UI

In addition to user management, tables may be imported and managed via the “Table management” section. Here, you are presented with the tables in your account (that you have access to), and also all of the public tables that are available.

For example, if you login at http://e.maplarge.com/accsys/managetables.html

You will see a screen like the one below

Some of the major functions are described below:

         Delete – delete the table.

         Visualize- visualize the table data in various maps and graphs.

         Interactive Map – create interactive maps with this table’s data and other table’s data.

Table Creation Example

Tables are created via the  “Create new table” tab. In this interface, you may upload zipped files containing data for your tables. These files must be in CSV format with map data (Lines, Points , and Polygons) defined in the “Well Known Text” markup language. WKT makes it possible for the shape information to be easily included as a column in a standard CSV file http://en.wikipedia.org/wiki/Well-known_text

For reference, an example file of world nations can be found here:http://alphaapi.maplarge.com/docs/WKT_CSVSample.zip

Remote Table API                                        

Overview

The MapLarge Name-Value Pair API allows a user to remotely make changes to their account, groups, users, table resources, or permissions.  All API requests are sent using GET parameters through the URL, and all responses will return a JSON formatted string, optionally wrapped in a JSONP style callback function.  Typically, users of this api are using it for server to server communication but it can also be used to create client side UI components like those described in the account system above.         

Making Requests

Requests are made to a URL that is determined by the action that you are wanting to invoke.

EX: Create Table invocation: http://alphaapi.maplarge.com/Remote/CreateTable?GET-VARIABLES

Denotes required field

Every request sent to the API is required to have three parameters for authentication purposes.  There is also an optional callback parameter that will signal to the API to return in JSONP.

Required Request Parameters

mluser

string

User name to sign in with.

mlpass  -or-

mltoken

string

Either the password for the mluser account or the MapLarge generated auth token for the client profile.

callback

string

The name of the function in which to wrap the JSON return data.

customid

string

A custom id provided by the calling script that will be returned in the response.

Responses will be returned as a JSON formatted string, with an optional callback wrapper for JSONP requests.

Response Values

success

true/false

Whether this action was successful in its task.

id

string

A unique 128-bit hexadecimal value that identifies this action.  Length 32.

errors

string[]

A list of any errors encountered in the execution of this action.

timestamp

int

Integer “linux-style” timestamp.  Time is in UTC.

[extra data]

Any additional action specific values.  Defined per-action below.

Note: Any errors in one part of an API call will cause the action to fail in its entirety, and no changes will be made.

Table Actions

CreateTable        

Request Parameters

account

string

The account code for the Account that will own this table

tablename

string

Name to use for table, without account code prefix.  Must be alpha-numeric.

fileurl

string[]

A comma separated list of file URIs to download.

replyto

string

If present, server will reply to this address when import completes.

authurl

string

For use when authentication is needed before files are downloaded.

authpostdata

string

For use when authentication is needed before files are downloaded.

Action Specific Response Values

None initially

Action Specific Response Values using replyto

table

string

The full table name (ID) of the newly created table.

Note: This is an asynchronous operation.  When the table import has been completed a HTTP request to the address provided in the “replyto” optional parameter will be sent, if present.  The API response is returned immediately, and signifies that the request has been received and is currently processing.

CreateTableSynchronous        

Request Parameters

account

string

The account code for the Account that will own this table

tablename

string

Name to use for table, without account code prefix.  Must be alpha-numeric.

fileurl

string[]

A comma separated list of file URIs to download.

authurl

string

For use when authentication is needed before files are downloaded.

authpostdata

string

For use when authentication is needed before files are downloaded.

Action Specific Response Values

table

string

The full table name (ID) of the newly created table.

Note: This is a synchronous operation.  The request to the API will remain open while the table datafiles are downloaded and imported.  

CreateTableWithFilesSynchronous        

Request Parameters

account

string

The account code for the Account that will own this table

tablename

string

Name to use for table, without account code prefix.  Must be alpha-numeric.

Action Specific Response Values

table

string

The full table name (ID) of the newly created table.

Note: This is a synchronous operation.  The request to the API will remain open while the table datafiles are downloaded and imported.  This operation also supports zipped packages.

DeleteTable

Request Parameters

tablename

string

Full table ID to delete in the form “account/table/version”

Action Specific Response Values

None

DeleteAllVersions

Request Parameters

tablename

string

Either a full table ID or active table name to delete.

Action Specific Response Values

None

ExportTable

Request Parameters

tablename

string

Active table name to get the full ID for.  This is the active ID “account/table”

replyto

string

URL of a page to send a reply to when the import completes.

Note: ExportTable action is not currently supported.

GetActiveTableID

Request Parameters

tablename

string

Active table name to get the full ID for.  This is in the form “account/table”

Action Specific Response Values

 table

string

A full table ID in the form “account/table/version”

GetTableVersions

Request Parameters

tablename

string

Active table name to get the full ID for.  This is the active ID “account/table”

Action Specific Response Values

 versions

mixed[]

A list of table information for all versions of the given table.  Contains keys id (long), acctcode (string), name (string), version (long), description (string), created (int), inram (true/false),  columns (mixed[] [ id (long), type (string)]).

GetAllTables

Request Parameters

account

string

If present, response value will only contain tables from this account.

verbose

true/false

Whether to use the long format OO keys for the response.  Defaults to false if not present.

Action Specific Response Values

 tables

mixed[]

A list of all tables in accounts with valid permissions, and all public tables.  The response can be in one of two formats:

Verbose:

id (string), acctcode (string), name (string), version (long), created (int), isactive (true/false), inram (true/false), columns (mixed[] [ id (long), type (string), created (long)]).

Short:

id (int), isactive (true/false), columns (mixed[] [ names (comma delimited string of column names), types (comma delimited string of column names)]).

Note: The verbose list can potentially generate long wait times and a large amount of response data, depending on how many tables the user has access to.  Verbose mode is not advised for time sensitive operations.

GetActiveTables

Request Parameters

account

string

If present, response value will only contain tables from this account.

verbose

true/false

Whether to use the long format OO keys for the response.  Defaults to false.

Action Specific Response Values

 tables

mixed[]

A list of all active tables in accounts with valid permissions, and all public tables.  The response can be in one of two formats:

Verbose:

id (string), acctcode (string), name (string), version (long), created (int), inram (true/false), columns (mixed[] [ id (long), type (string), created (long)]).

Short:

id (int), columns (mixed[] [ names (comma delimited string of column names), types (comma delimited string of column names)]).

Note: The verbose list can potentially generate long wait times and a large amount of response data, depending on how many tables the user has access to.  Verbose mode is not advised for time sensitive operations.

SetActiveTable

Request Parameters

tablename

string

The full table ID “account/table/version” to make the active version.

Action Specific Response Values

None

Automated Table Import Actions


CreateAutoImport

Request Parameters

account

string

The account code for the Account that will own tables created by this import.

importname

string

The name to assign to this automated import listing.  Alpha-numeric.

tablename

string

Table name to give to tables imported with this listing.  Alpha-numeric.

updatefrequency

int

The frequency to run auto import for this table.  Value is in minutes, and must be a minimum of 5.

remoteurl

string

A file URI to download and process.

description

string

Text description of this automated import listing.

versionstokeep

int

The number of previous versions of the table to keep.  Defaults to keeping all.

authurl

string

URL to send authentication requests to before downloading files from remoterurl.

authpostdata

string

Data that will be sent with the authentication request.  Data will be sent as a POST request.

Action Specific Response Values

autoimportid

long

The ID of the newly created autoimport item.

EditAutoImport

Request Parameters

id

string

The ID for the autoimport to edit.

importname

string

The name to assign to this automated import listing.  Alpha-numeric.

tablename

string

Table name to give to tables imported with this listing.  Alpha-numeric.

updatefrequency

int

The frequency to run auto import for this table.  Value is in minutes, and must be a minimum of 5.

remoteurl

string[]

A list of file URLs to download and process.

description

string

Text description of this automated import listing.

versionstokeep

int

The number of previous versions of the table to keep.  Defaults to keeping all.

authurl

string

URL to send authentication requests to before downloading files from remoterurl.

authpostdata

string

Data that will be sent with the authentication request.  Data will be sent as a POST request.

Action Specific Response Values

 autoimportid

long

The ID of the modified autoimport item.

DeleteAutoImport

Request Parameters

id

long

The ID of the auto import item to delete.  This will not remove any tables created through this autoimport.

Action Specific Response Values

autoimportid

long

The ID of the deleted autoimport item.

ForceRunImport

Request Parameters

id

long

The ID of the auto import item to force execution for.

Action Specific Response Values

None

GetImportHistory

Request Parameters

id

long

The ID of the auto import item to get a history for.

Action Specific Response Values

 history

string[]

A list of all previous import actions.

Note: GetImportHistory action is not currently supported.

ListAutoImports

Request Parameters

account

string

If present, response value will only contain auto imports from this account.

Action Specific Response Values

 autoimports

mixed[]

A list of all autoimports in this account.  Each autoimport item contains keys: id (long), account (string), name (string), description (string), frequency (int), remoteurl (string), authurl (string), authpostdata (string).

User Actions


AddUserToGroups

Request Parameters

id

long

The ID for the user to be added to list of groups.

groups

string

A comma delimited list of group IDs to add the given user to.

Action Specific Response Values

userid

long

The ID of the user that has been modified.

CreateUser

Request Parameters

username

string

User name for this user.

password

string

Password for this user.

email

string

Email address for this user.

tags

string

A comma delimited list of tags for this user

groups

string

A comma delimited list of group IDs to add the given user to.

Action Specific Response Values

userid

long

The ID of the newly created user.

DeleteUser

Request Parameters

id

long

The ID for the user to be deleted.

Action Specific Response Values

userid

long

The ID of the user that has been deleted.

EditUser

Request Parameters

id

long

The ID for the group to be deleted.

username

string

User name for this user.

password

string

Password for this user.

email

string

Email address for this user.

tags

string

A comma delimited list of tags for this user

groups

string

A comma delimited list of group IDs to add the given user to.

Action Specific Response Values

 userid

long

The ID of the user that has been deleted.

Note: EditUser action is not currently supported.

ListUsers

Request Parameters

None

Action Specific Response Values

 users

mixed[]

A list of all users connected to groups in this account.  Each user item contains keys: id (long), name (string), email(string), tags(string[]), groupcount(int).

RemoveUserFromGroups

Request Parameters

id

long

The ID for the user to be removed from list of groups.

groups

string

A comma delimited list of group IDs to remove the given user from.

Action Specific Response Values

userid

long

The ID of the user that has been modified.

Group Actions


CreateGroup

Request Parameters

account

string

The account code for the Account that will own this group.

groupname

string

The name to use for this group.

description

string

A description to assign to this group.

parentgroup

long

The ID of the parent group to use for this group.  If not passed, this will be a top level group.

permissionlevel

string

The permission settings to apply to the newly created group.  Must be one of the values administrator, editor, viewer.

Action Specific Response Values

 groupid

long

The ID of the newly created group.

DeleteGroup

Request Parameters

id

long

The ID for the group to be deleted.

Action Specific Response Values

 groupid

long

The ID of the group that has been deleted.

EditGroup

Request Parameters

id

long

The ID for the group to be edited.

groupname

string

A name to assign to this group.

description

string

A description to assign to this group.

parentgroup

long

The ID of the parent group to use for this group.  If not passed, this will be a top level group.

permissionlevel

string

The permission settings to apply to the newly created group.  Must be one of the values administrator, editor, viewer.

Action Specific Response Values

 versions

string[]

A list of table versions for “tablename” in the form “account/table/version”

ListGroups

Request Parameters

account

string

If present, response value will only contain groups from this account.

Action Specific Response Values

 groups

mixed[]

A list of all groups present in this account.  Each group item contains the keys: id (long), account (string), name (string), description (string).


For Additional information see:

http://maplarge.com/API

http://maplarge.com/API/Tutorial

http://maplarge.com/Example/List

© MapLarge, Inc. 2013