2gis-maps
Version:
Interactive 2GIS maps API, based on Leaflet
120 lines (93 loc) • 3.81 kB
Markdown
## Loading API
{toc}
### Description
Work with map is possible only after the code of Maps API is loaded to the browser.
There are several ways to download it.
### Easy way
First include the Maps API by adding the following code to the <code>head</code> section of the HTML page:
<script src="https://maps.api.2gis.ru/2.0/loader.js?pkg=full"></script>
Then use the <code>DG.then</code> function, into which we will place the initialization code of the map:
DG.then(function() {
map = DG.map('map', {
'center': [54.98, 82.89],
'zoom': 13
});
});
Inside this function adds a handler for of the event of the page loading.
This very method was discussed in the [Quick start](/doc/maps/en/quickstart) section.
### npm
The Maps API can be included via npm:
$ npm i 2gis-maps
After the package is installed, enable it using <code>require</code>:
var DG = require('2gis-maps');
var map = DG.map('map', {
'center': [54.98, 82.89],
'zoom': 13
});
Please note that when you use the npm package, there is no need to use <code>DG.then</code>.
### Download on demand
You can load the Maps API at the very moment when you need the map. To do this, you need to add the
<code>lazy=true</code> parameter to the URL used to include API:
<script src="https://maps.api.2gis.ru/2.0/loader.js?pkg=full&lazy=true"></script>
Then, at the right time (for example, when pressing the button) you must call the <code>DG.then</code> function:
DG.then(function() {
map = DG.map('map', {
'center': [54.98, 82.89],
'zoom': 13
});
});
### Connection options
The following are all options that can take the URL of the Maps API loading:
<table>
<thead>
<tr>
<th>Option</th>
<th>Default</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr id="loading-pkg">
<td><code>pkg</code></td>
<td><code>full</code></td>
<td>Package of loadable modules. Currently, 2 packages are supported: <code>full</code> — all API modules;
<code>basic</code> — basic functionality (popups, markers, vector objects).</td>
</tr>
<tr>
<td><code>skin</code></td>
<td><code>dark</code></td>
<td>The theme of controls (light or dark). Takes the value <code>light</code> or <code>dark</code>.</td>
</tr>
<tr>
<td><code>lazy</code></td>
<td><code>false</code></td>
<td>If you specify the <code>true</code> value, then the Maps API will load with delay,
when you first call <code>DG.then</code>.</td>
</tr>
</tbody>
</table>
### DG.then function
As described earlier, the function <code>DG.then</code> is responsible for tracking the moment of loading the Maps API
and adding handlers for this action. Function parameters:
<table>
<thead>
<tr>
<th>Function</th>
<th>Returns</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>DG.then</b>(
<nobr><Function> <i>resolve</i>,</nobr>
<nobr><Function> <i>reject</i></nobr> )
</code></td>
<td><code>Promise</code></td>
<td>Registers API loading handlers. Parameters: <code>resolve</code> is a function triggered
in case of a successful loading of the Maps API, <code>reject</code> is a function triggered
in case of server errors.</td>
</tr>
</tbody>
</table>
The call of the <code>DG.then</code> function at any time after the API loading will be immediately executed by the handler.