{"id":24658552,"url":"https://github.com/cedarstudios/cedarmaps-web-sdk-raster","last_synced_at":"2025-10-07T20:30:56.892Z","repository":{"id":39778230,"uuid":"185339905","full_name":"cedarstudios/cedarmaps-web-sdk-raster","owner":"cedarstudios","description":"CedarMaps' Javascript SDK for raster tiles","archived":false,"fork":false,"pushed_at":"2023-03-01T08:43:53.000Z","size":3954,"stargazers_count":2,"open_issues_count":12,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-03-09T00:41:04.372Z","etag":null,"topics":["cedarmaps","iran","iran-map","map","sdk-js"],"latest_commit_sha":null,"homepage":"https://www.cedarmaps.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cedarstudios.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-07T06:53:11.000Z","updated_at":"2022-05-17T08:48:43.000Z","dependencies_parsed_at":"2022-09-20T10:05:50.874Z","dependency_job_id":null,"html_url":"https://github.com/cedarstudios/cedarmaps-web-sdk-raster","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedarstudios%2Fcedarmaps-web-sdk-raster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedarstudios%2Fcedarmaps-web-sdk-raster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedarstudios%2Fcedarmaps-web-sdk-raster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cedarstudios%2Fcedarmaps-web-sdk-raster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cedarstudios","download_url":"https://codeload.github.com/cedarstudios/cedarmaps-web-sdk-raster/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235654784,"owners_count":19024566,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cedarmaps","iran","iran-map","map","sdk-js"],"created_at":"2025-01-26T01:38:01.200Z","updated_at":"2025-10-07T20:30:51.437Z","avatar_url":"https://github.com/cedarstudios.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cedarmaps Web SDK (Raster Tiles)\n\n![CedarMaps address locator tool](https://github.com/cedarstudios/cedarstudios.github.io/raw/master/cedarmaps-web-sdk-raster.gif)\n\nCedarMaps Web SDK (JS) is a javascript library for building interactive maps. It's built on top of [Mapbox Javascript API](https://github.com/mapbox/mapbox.js/), (The current version is `v3.1.1`). It uses [Leaflet.js](https://leafletjs.com/) for map interactinons so you can use all of this library's methods for your purpose.\n\n**Note:** This repo is for \"raster tiles\". If you prefer to use our \"vector tiles\" please visit: https://github.com/cedarstudios/cedarmaps-web-sdk-vector\n\n# Table of contents\n\n- [Basic usage via CDN](#basic-usage-via-cdn)\n- [Checking out demo files](#checking-out-demo-files)\n- [Building SDK locally](#building-sdk-locally)\n- [Pulling new changes from repo](#pulling-new-changes-from-repo)\n- [API](#api)\n  - [Forward \u0026 Reverse Geocoding](#forward--reverse-geocoding)\n    - [Initializing Forward/Reverse Geocoder](#initializing-forwardreverse-geocoder)\n    - [Forward Geocoder](#forward-geocoder)\n    - [Forward Geocoder Sample Code](#forward-geocoder-sample-code)\n    - [Reverse Geocoding](#reverse-geocoding)\n    - [Reverse Geocoding Sample Code](#reverse-geocoding-sample-code)\n  - [Direction](#direction)\n    - [Direction Sample Code](#direction-sample-code)\n  - [Administrative Boundaries Lister](#administrative-boundaries-lister)\n    - [Administrative Boundaries Lister Sample Code](#administrative-boundaries-lister-sample-code)\n  - [Nearby POI Finder](#nearby-poi-finder)\n  - [Static Image Generator](#static-image-generator)\n- [Upgrading SDK](#upgrading-sdk)\n- [Issues](#issues)\n\n# Basic usage via CDN\n\n1. Get an access token from [Cedar Maps website](https://www.cedarmaps.com/) (Menu link: \"درخواست اکانت رایگان\"). It may take a couple of hours until your request is processed and your credentials are emailed to you.\n2. Include these CSS and JavaScript files in `\u003chead\u003e` section of your HTML file.\n\n```html\n\u003cscript src=\"https://api.cedarmaps.com/cedarmaps.js/v1.8.1/cedarmaps.js\"\u003e\u003c/script\u003e\n\u003clink\n  href=\"https://api.cedarmaps.com/cedarmaps.js/v1.8.1/cedarmaps.css\"\n  rel=\"stylesheet\"\n/\u003e\n```\n\n3. Put the following code in the \u003cbody\u003e of your HTML file:\n\n```html\n\u003c!-- Make a div with id \"map\" and set its dimensions --\u003e\n\u003cdiv id=\"map\" style=\"width: 400px; height: 300px;\"\u003e\u003c/div\u003e\n\n\u003cscript type=\"text/javascript\"\u003e\n  // In order to use Cedar Maps you **MUST** have an access token\n  L.cedarmaps.accessToken = \"YOUR_ACCESS_TOKEN\";\n\n  // Setting up our layer\n  var tileJSONUrl =\n    \"https://api.cedarmaps.com/v1/tiles/cedarmaps.streets.json?access_token=\" +\n    L.cedarmaps.accessToken;\n\n  // Initilizing map into div#map\n  var map = L.cedarmaps\n    .map(\"map\", tileJSONUrl, {\n      scrollWheelZoom: true\n    })\n    .setView([35.757448286487595, 51.40876293182373], 15);\n\u003c/script\u003e\n```\n\n# Checking out demo files\n\nIn order to check out demo files in `/demos` folder you need to build the SDK locally or change the script and css paths to our CDN ones mentioned above.\n\n# Building SDK locally\n\n1. Clone this repo:\n\n```\ngit clone https://github.com/cedarstudios/cedarmaps-web-sdk-raster\n```\n\n3. In the root folder of your cloned repo make a new file called `access-token.js` and put your access token in it:\n\n```\nvar accessToken = 'YOUR_ACCESS_TOKEN';\n```\n\n4. Install the required backages: (You have to have [Node.js](https://nodejs.org) and [npm](https://www.npmjs.com/) installed on your machine.)\n\n```\n npm install\n```\n\n5. Build the SDK. It stores the files in `/dist/[sdk-version]` folder. (`[sdk-version]` is determined by `version` in `package.json`).\n\n```\nnpm run build\n```\n\n6. Go to `/demos` folder and pick one for the start.\n\nThe `cedarmaps.js` file includes the Leaflet library. Alternatively, you can use `cedarmaps.standalone.js`, which does not include Leaflet (you will have to provide it yourself).\n\n**Note:** If you've purchased our dedicated plan you should set your baseURL in the following manner in `\u003chead\u003e` tag _before_ including cedarmaps' files:\n\n```html\n\u003cscript\u003e\n  apiBaseUrlHttp = \"http://your-own-api-url.com\";\n  apiBaseUrlHttps = \"https://your-own-api-url.com\";\n\u003c/script\u003e\n```\n\n# Pulling new changes from repo\n\nEvery time you pull new changes from repository, you should run `grunt build` again.\n\n```sh\ngit pull\ngrunt build\n```\n\n# API\n\nCedarmaps' API is almost the same as mapbox. [Check it out](http://mapbox.com/mapbox.js/api/). However, Cedarmaps introduces some new API methods that are described below:\n\n## Forward \u0026 Reverse Geocoding\n\nFor both forward and reverse geocofing functionality you should use `L.cedarmaps.geocoder` object.\n\n### Initializing Forward/Reverse Geocoder\n\nSignature: `L.cedarmaps.geocoder(id [, options])`\n\nBefore using forward/reverse Geocoder object, you must initialize it using the desired profile (id).\n\n| Options              | Value  | Description                                                                                                                                                                                                                                                                                                    |\n| -------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| id (_required_)      | String | Available profiles: \u003cul\u003e\u003cli\u003e `cedarmaps.streets` Only searches through map features - 1 API Call\u003c/li\u003e\u003cli\u003e `cedarmaps.places` Only searches through places (Source: [kikojas.com](https://www.kikojas.com)) - 2 API Calls\u003c/li\u003e\u003cli\u003e `cedarmaps.mix` Searches through both profiles above - 3 API Calls\u003c/li\u003e\u003c/ul\u003e |\n| options (_optional_) | Object | If provided, it may include: \u003cul\u003e\u003cli\u003e`accessToken`: CedarMaps API access token. Overrides `L.cedarmaps.accessToken` for this geocoder.\u003c/li\u003e\u003c/ul\u003e                                                                                                                                                               |\n\n_Returns_ a `L.cedarmaps.geocoder` object.\n\nExample:\n\n```javascript\nvar geocoder = L.cedarmaps.geocoder(\"cedarmaps.streets\");\n```\n\n### Forward Geocoder\n\nSignature: `geocoder.query(queryString|options, callback)`\n\nQueries the geocoder with a query string, and returns the results, if any.\n\n| Options                  | Value    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |\n| ------------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| queryString (_required_) | String   | a query, expressed as a string, like 'Arkansas'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |\n| options                  | Object   | An object containing the query and options parameters like `{ query: 'ونک', limit: 5 }`. Other available parameteres: \u003cbr /\u003e\u003cbr /\u003e \u003cul\u003e\u003cli\u003e`limit` _integer_ - Number of returned results. Default is `10`, Max is `30`.\u003c/li\u003e\u003cli\u003e`distance` _float_ - Unit is km, `0.1` means 100 meters.\u003c/li\u003e\u003cli\u003e`location` _lat,lng_ - For searching near a location. should be used only with `distance` param.\u003c/li\u003e\u003cli\u003e`type` _enum_ - Types of map features to filter the results. Possible values: `street`, `poi`, `village`, `roundabout`, `expressway`, `locality`, `town`, `city`, `junction`, `freeway`, `boulevard`, `region`, `state` \u003cbr /\u003e(You can mix types by separating them with commas).\u003c/li\u003e\u003cli\u003e`ne` _lat,lng_ - Specifies north east of the bounding box - should be used with `sw` param.\u003c/li\u003e\u003cli\u003e`sw` lat,lng - Specifies south west of the bounding box - should be used with `ne` param.\u003c/li\u003e\u003c/ul\u003e |\n| callback (_required_)    | Function | A callback with passed params: `(error, result)`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |\n\n_Returns_ a `L.cedarmaps.geocoder` object.\n\nThe results object's signature:\n\n```javascript\n{\n    status: // OK\n    results: // raw results\n}\n```\n\n### Forward Geocoder Sample Code\n\n_Example_: Check out a [Live example of geocoder.query](https://demo.cedarmaps.com/websdk/demos/geocoder-control.html). If you want more control over your searchbox rendering, please check out another example implementing a [custom seachbox](http://demo.cedarmaps.com/websdk/demos/custom-searchbox.html) with a third-party auto complete library.\n\nUsing a single query parameter:\n\n```javascript\ngeocoder.query(\"ونک\", function(err, res) {});\n```\n\nUsing query string along with an option (Limiting the number of results):\n\n```javascript\ngeocoder.query({ query: \"ونک\", limit: 5 }, function(err, res) {});\n```\n\nFiltering results based on one or more feature types:\n\n```javascript\ngeocoder.query({ query: \"ونک\", type: \"locality\" }, function(err, res) {});\ngeocoder.query({ query: \"ونک\", type: \"locality,roundabout\" }, function(\n  err,\n  res\n) {});\ngeocoder.query({ query: \"ونک\", type: \"street\", limit: 2 }, function(\n  err,\n  res\n) {});\n```\n\nSearching within in a specific bounding box:\n\n```javascript\ngeocoder.query(\n  {\n    query: \"لادن\",\n    ne: \"35.76817388431271,51.41721725463867\",\n    sw: \"35.75316460798604,51.39232635498047\"\n  },\n  function(err, res) {}\n);\n```\n\n### Reverse Geocoding\n\nSignature: `geocoder.reverseQuery(location, callback)`\n\nQueries the reverse geocoder with a location and returns the address in desired format.\n\n| Options               | Value    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |\n| --------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| location (_required_) | Mixed    | \u003cul\u003e\u003cli\u003e`String`: Only a single `lat,lng` pair separated by comma. Example: `'35.763,51.40'`\u003c/li\u003e\u003cli\u003e`Object`: If you want to provide options for reverse geocoding: Example: `{query: {lat:35.763 ,lng:51.40 }, verbosity: true, prefix: 'short', separator: '، '}` \u003cbr\u003e Options are: \u003cul\u003e\u003cli\u003e`format: \"{province}{sep}{city}{sep}{locality}{sep}{district}{sep}{address}{sep}{place}\"`\u003c/li\u003e\u003cli\u003e`Prefix: \"short\"`\u003c/li\u003e\u003cli\u003e`Separator: \"، \"`\u003c/li\u003e\u003cli\u003e`Verbosity: false`\u003c/li\u003e\u003c/ul\u003e \u003c/li\u003e\u003cli\u003e`Array`: For geocoding more than one point in a single request. Example: `[{lat: 35.763, lng: 51.40},{...}]`\u003c/li\u003e\u003c/ul\u003e A point can be formatted in one of the forms below:\u003cul\u003e\u003cli\u003e`[lon, lat] // an array of lon, lat`\u003c/li\u003e\u003cli\u003e`{ lat: 0, lon: 0 } // a lon, lat object`\u003c/li\u003e\u003cli\u003e`{ lat: 0, lng: 0 }`\u003c/li\u003e\u003c/ul\u003e |\n| callback (_required_) | Function | A callback with passed params: `(error, result)`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |\n\n_Returns_: the geocoder object. The return value may not come handy since it runs asynchronously and you must use a callback to get the results.\n\n### Reverse Geocoding Sample Code\n\n```javascript\nvar geocoder = L.cedarmaps.geocoder(\"cedarmaps.streets\");\ngeocoder.reverseQuery(\n  { lat: 35.754592526442465, lng: 51.401896476745605 },\n  function callback(err, res) {}\n);\n```\n\n_Example_: Check out a [Live example of reverseQuery](https://demo.cedarmaps.com/websdk/demos/reverse-geocoder.html).\n\n## Direction\n\nCalculates a route between a start and end point (and optionally some middle points) up to 100 points in GeoJSON format:\n\n| Options               | Value    | Description                                                                                                                     |\n| --------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------- |\n| Profile (_required_)  | String   | Default and the only current available value: `cedarmaps.driving`.                                                              |\n| LatLngs (_required_)  | String   | A pair of `lat` and `lng` points indicating start, middle and end, in format: `lat,lng;lat,lng;[lat,lng...]` (Up to 100 points) |\n| callback (_required_) | Function | A callback with passed params: `(error, result)`.                                                                               |\n\n_Returns_: the `direction` object. The return value of this function is not useful - you must use a callback to get the results.\n\n### Direction Sample Code\n\n```javascript\ndirection.route('cedarmaps.driving', '35.764335,51.365622;35.7604311,51.3939486;35.7474946,51.2429727', function(err, json) {\n\t\tvar RouteGeometry = json.result.routes[0].geometry;\n\n\t\tvar RouteLayer = L.geoJSON(RouteGeometry, {\n\t\t\t// for more styling options check out:\n\t\t\t// https://leafletjs.com/reference-1.3.0.html#path-option\n\t\t\tstyle: function(feature) {\n\t\t\t\treturn {\n\t\t\t\t\tcolor: '#f00',\n\t\t\t\t\tweight: 5\n\t\t\t\t}\n\t\t\t}\n\t\t}).addTo(map);\n\n\t\tmap.fitBounds(RouteLayer.getBounds());\n\t});\n});\n```\n\n_Example_: Check out a [Live example of Direction](https://demo.cedarmaps.com/websdk/demos/direction.html).\n\n## Administrative Boundaries Lister\n\nLists administrative boundaries in 3 different levels: `province`, `city`, `locality` (aka. neighbourhood).\n\nSignature: `administrativeBoundaries.query(type, query, callback)`\n\n| Options               | Value    | Description                                                                                                                                                                                                           |\n| --------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| type (_required_)     | String   | Type of an administrative boundary. Possible values: `province`, `city`, `locality`.                                                                                                                                  |\n| query (_optional_)    | String   | The query to limit the `type` above. For example: list all cities of \"Tehran\" province: `query('city', 'تهران', function(error, result){})`. This option is not neccessary for type: `province` as it has no parents. |\n| callback (_required_) | Function | A callback with passed params: `(error, result)`.                                                                                                                                                                     |\n\n_Returns_: the `L.cedarmaps.administrativeBoundaries` object.\n\n### Administrative Boundaries Lister Sample Code\n\n```javascript\nvar administrativeLister = L.cedarmaps.administrativeBoundaries();\n// Get list of all provinces of Iran.\nadministrativeLister.query(\"province\", \"\", function(err, res) {});\n// Get list of cities of Tehran Province.\nadministrativeLister.query(\"city\", \"تهران\", function(err, res) {});\n```\n\n_Example_: Check out a [Live example of address locator](https://demo.cedarmaps.com/websdk/demos/address-locator.html).\n\n## Nearby POI Finder\n\nCedarMaps is integrated with its sister project [kikojas.com](https://www.kikojas.com) and has access to all of the curated POIs available in it. It gives you the ability to query public places near a certain point on map.\nThe available categories are:\n\n- Parks\n- Bus Stations\n- Shopping Malls\n- Hospitals\n- Schools\n\n**Note:** You may purchase the availability of other categories for your project. Please [contact us](mailto:support@cedarmaps.com) for more information.\n\nSignature: `L.cedarmaps.nearby(mapContainer, centerPoint, {options})`\n\n| Options                       | Value                                                               | Description                                                                                                                                                                                                                                                                                                                           |\n| ----------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| categories (_required_)       | Array                                                               | List of categories you want to have in your map. Available options are `bus`, `park`, `shopping`, `hospital` and `school`                                                                                                                                                                                                             |\n| searchDistance (_optional_)   | Float                                                               | Distance radius to search for POIs, in Kilometer. For 500 meters use `0.5`.                                                                                                                                                                                                                                                           |\n| popupContent (_required_)     | Function                                                            | A callback with passed params: `(error, result)`.                                                                                                                                                                                                                                                                                     |\n| centerMarkerIcon (_optional_) | [Leaflet Marker](https://leafletjs.com/reference-1.5.0.html#marker) | You may use your custom [leaflet marker](https://leafletjs.com/reference-1.5.0.html#marker) for your central point. Example: `window.L.icon({\"slug\":\"@default\",\"iconUrl\":\"https://api.cedarmaps.com/v1/markers/marker-default.png\",\"iconRetinaUrl\":\"https://api.cedarmaps.com/v1/markers/marker-default@2x.png\",\"iconSize\":[82,98]})` |\n| popupContent (_optional_)     | String                                                              | Popup content for centralMarker. Can contain HTML code.                                                                                                                                                                                                                                                                               |\n| defaultZoom (_optional_)      | Integer                                                             | Your desired zoom level for map.                                                                                                                                                                                                                                                                                                      |\n\n_Example_: Check out a [Live example of nearby widget](http://demo.cedarmaps.com/websdk/demos/nearby.html).\n\n## Static Image Generator\n\nIf you don't want to include a bunch of script tags into your HTML and just need an image showing a map with a marker representing a point on it, you may use this API.\n\nSignature: `L.cedarmaps.staticMap({options})`\n\n| Options                | Value  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |\n| ---------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| maptype (_required_)   | String | The only available profile is `light` for now.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |\n| position (_required_)  | String | The center point and zoom level with which map should be generated, in format: `lat,lng,zoom` (e.g.: `35.791124154289,51.415790319443,13`). If your generated image has markers on it and they should be fit in your map, use value `auto`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |\n| dimension (_required_) | String | Dimension of the generated image in format: `widthxheight`. (e.g.: 800x600). Either values for width and height should not exceed 1280 pixels.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |\n| scale (_optional_)     | String | For retina displays with more pixels density use this option. It doubles the size for both maps and markers.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |\n| markers (_optional_)   | String | For adding optional markers on the map, in format: `marker-name\\|lat,lng`. (e.g.: `marker-circle-orange\\|35.79,51.41\\|marker-default\\|35.83,51.45`). Here, `marker-circle-orange` and `marker-default` are from CedarMaps preset marker names. You may use your own custom markers by providing their absolute url path starting with `http://`. \u003cbr\u003e **Note:** If you request for a static map with your custom marker URL, the first request caches the marker image and the second request actually responds with your static map. \u003cbr\u003eAvailable marker presents are: \u003cul\u003e\u003cli\u003e`marker-default`\u003c/li\u003e\u003cli\u003e `marker-circle-blue`\u003c/li\u003e\u003cli\u003e `marker-circle-green`\u003c/li\u003e\u003cli\u003e `marker-circle-orange`\u003c/li\u003e\u003cli\u003e `marker-circle-red`\u003c/li\u003e\u003cli\u003e `marker-square-blue`\u003c/li\u003e\u003cli\u003e `marker-square-green`\u003c/li\u003e\u003cli\u003e `marker-square-orange`\u003c/li\u003e\u003cli\u003e `marker-square-red`\u003c/li\u003e\u003c/ul\u003e If your marker has an anchor point, the anchor must be positioned in the center of the image. For a sample checkout this [marker image](https://api.cedarmaps.com/v1/markers/marker-circle-green@2x.png) from our preset markers. |\n\n_Example_: Check out a [Live example of static image generator](https://demo.cedarmaps.com/websdk/demos/static-image.html).\n\n# Upgrading SDK\n\nIn case of any updates in module itself the following files must be updated:\n\n- `version` in `./package.json`\n- `version` in `\u003cscript\u003e` and `\u003clink\u003e` tags in demo files (`./demo`)\n- `version` in sample API usage in `README.md`\n- \"Doc files\" by running `grunt doc` command\n- building new dist files by running `grunt build` command\n\n# Issues\n\nIf you have any questions while implementing Cedar Maps Web SDK, please feel free to open a [new issue](https://github.com/cedarstudios/cedarmaps-web-sdk-raster/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedarstudios%2Fcedarmaps-web-sdk-raster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcedarstudios%2Fcedarmaps-web-sdk-raster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcedarstudios%2Fcedarmaps-web-sdk-raster/lists"}