Skip to content

Commit c3c29c0

Browse files
committed
Merge branch 'release/1.6.5'
2 parents 8a2cd12 + 66571f8 commit c3c29c0

File tree

5 files changed

+4413
-7704
lines changed

5 files changed

+4413
-7704
lines changed

README.md

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -68,31 +68,31 @@ myCircle.on('contextmenu', function (mapMouseEvent) {
6868

6969
**Parameters**
7070

71-
- `center` **({lat: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)} | \[[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number), [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)])** Circle center as an object or `[lng, lat]` coordinates
72-
- `radius` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Meter radius
73-
- `options` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
74-
- `options.editable` **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Enable handles for changing center and radius (optional, default `false`)
75-
- `options.minRadius` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Minimum radius on user interaction (optional, default `10`)
76-
- `options.maxRadius` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Maximum radius on user interaction (optional, default `1100000`)
77-
- `options.strokeColor` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** Stroke color (optional, default `'#000000'`)
78-
- `options.strokeWeight` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Stroke weight (optional, default `0.5`)
79-
- `options.strokeOpacity` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Stroke opacity (optional, default `0.75`)
80-
- `options.fillColor` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** Fill color (optional, default `'#FB6A4A'`)
81-
- `options.fillOpacity` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Fill opacity (optional, default `0.25`)
82-
- `options.refineStroke` **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Adjust circle polygon precision based on radius and zoom
71+
- `center` **({lat: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)} | \[[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)])** Circle center as an object or `[lng, lat]` coordinates
72+
- `radius` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Meter radius
73+
- `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**
74+
- `options.editable` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Enable handles for changing center and radius (optional, default `false`)
75+
- `options.minRadius` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Minimum radius on user interaction (optional, default `10`)
76+
- `options.maxRadius` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Maximum radius on user interaction (optional, default `1100000`)
77+
- `options.strokeColor` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Stroke color (optional, default `'#000000'`)
78+
- `options.strokeWeight` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Stroke weight (optional, default `0.5`)
79+
- `options.strokeOpacity` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Stroke opacity (optional, default `0.75`)
80+
- `options.fillColor` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Fill color (optional, default `'#FB6A4A'`)
81+
- `options.fillOpacity` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** Fill opacity (optional, default `0.25`)
82+
- `options.refineStroke` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Adjust circle polygon precision based on radius and zoom
8383
(i.e. prettier circles at the expense of performance) (optional, default `false`)
84-
- `options.properties` **[Object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Property metadata for Mapbox GL JS circle object (optional, default `{}`)
84+
- `options.properties` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Property metadata for Mapbox GL JS circle object (optional, default `{}`)
8585

8686
#### on
8787

8888
Subscribe to circle event.
8989

9090
**Parameters**
9191

92-
- `event` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Event name; `click`, `contextmenu`, `centerchanged` or `radiuschanged`
93-
- `fn` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** Event handler, invoked with the target circle as first argument on
92+
- `event` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Event name; `click`, `contextmenu`, `centerchanged` or `radiuschanged`
93+
- `fn` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Event handler, invoked with the target circle as first argument on
9494
_'centerchanged'_ and _'radiuschanged'_, or a _MapMouseEvent_ on _'click'_ and _'contextmenu'_ events
95-
- `onlyOnce` **[boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Remove handler after first call (optional, default `false`)
95+
- `onlyOnce` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Remove handler after first call (optional, default `false`)
9696

9797
Returns **[MapboxCircle](#mapboxcircle)**
9898

@@ -102,8 +102,8 @@ Alias for registering event listener with _onlyOnce=true_, see [#on](#on).
102102

103103
**Parameters**
104104

105-
- `event` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Event name
106-
- `fn` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** Event handler
105+
- `event` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Event name
106+
- `fn` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Event handler
107107

108108
Returns **[MapboxCircle](#mapboxcircle)**
109109

@@ -113,8 +113,8 @@ Unsubscribe to circle event.
113113

114114
**Parameters**
115115

116-
- `event` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)** Event name
117-
- `fn` **[Function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function)** Handler to be removed
116+
- `event` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Event name
117+
- `fn` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)** Handler to be removed
118118

119119
Returns **[MapboxCircle](#mapboxcircle)**
120120

@@ -123,7 +123,7 @@ Returns **[MapboxCircle](#mapboxcircle)**
123123
**Parameters**
124124

125125
- `map` **mapboxgl.Map** Target map for adding and initializing circle Mapbox GL layers/data/listeners.
126-
- `before` **[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String)?** Layer ID to insert the circle layers before; explicitly pass `null` to
126+
- `before` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Layer ID to insert the circle layers before; explicitly pass `null` to
127127
get the circle assets appended at the end of map-layers array (optional, default `'waterway-label'`)
128128

129129
Returns **[MapboxCircle](#mapboxcircle)**
@@ -136,31 +136,31 @@ Returns **[MapboxCircle](#mapboxcircle)**
136136

137137
#### getCenter
138138

139-
Returns **{lat: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)}** Circle center position
139+
Returns **{lat: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)}** Circle center position
140140

141141
#### setCenter
142142

143143
**Parameters**
144144

145-
- `position` **{lat: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)}**
145+
- `position` **{lat: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)}**
146146

147147
Returns **[MapboxCircle](#mapboxcircle)**
148148

149149
#### getRadius
150150

151-
Returns **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Current radius, in meters
151+
Returns **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Current radius, in meters
152152

153153
#### setRadius
154154

155155
**Parameters**
156156

157-
- `newRadius` **[number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)** Meter radius
157+
- `newRadius` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Meter radius
158158

159159
Returns **[MapboxCircle](#mapboxcircle)**
160160

161161
#### getBounds
162162

163-
Returns **{sw: {lat: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)}, ne: {lat: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number)}}** Southwestern/northeastern bounds
163+
Returns **{sw: {lat: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)}, ne: {lat: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number), lng: [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)}}** Southwestern/northeastern bounds
164164

165165
## Development
166166

@@ -186,6 +186,11 @@ Returns **{sw: {lat: [number](https://developer.mozilla.org/en-US/docs/Web/JavaS
186186

187187
## Changelog
188188

189+
### v. 1.6.5
190+
191+
- Bug fix for layer switching in `mapbox-gl>0.40.1` ([#73](https://github.com/smithmicro/mapbox-gl-circle/issues/73))
192+
- Half-fixed bug causing errors when adding circle to map style without the `waterway-label` layer
193+
189194
### v. 1.6.4
190195

191196
- Performance improvements for Firefox and Edge on slow computers

index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
<meta charset='utf-8'/>
55
<title>MapboxCircle Demo</title>
66
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no'/>
7-
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.40.1/mapbox-gl.js'></script>
8-
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.40.1/mapbox-gl.css' rel='stylesheet'/>
7+
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.44.1/mapbox-gl.js'></script>
8+
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.44.1/mapbox-gl.css' rel='stylesheet'/>
99
<script src='https://npmcdn.com/@turf/[email protected]/turf.min.js'></script>
1010
<script src='dist/mapbox-gl-circle.min.js'></script>
1111
<script src='https://npmcdn.com/mapbox-gl-circle/dist/mapbox-gl-circle.min.js'></script>

lib/main.js

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1164,7 +1164,7 @@ class MapboxCircle {
11641164
* @public
11651165
*/
11661166
addTo(map, before) {
1167-
if (typeof before === 'undefined') {
1167+
if (typeof before === 'undefined' && map.getLayer('waterway-label')) {
11681168
before = 'waterway-label';
11691169
}
11701170
const addCircleAssetsOnMap = () => {
@@ -1246,21 +1246,36 @@ class MapboxCircle {
12461246
this.off('radiuschanged', this._onRadiusChanged).off('centerchanged', this._onCenterChanged);
12471247

12481248
this._unbindRadiusHandlesListeners();
1249-
this.map.removeLayer(this._circleRadiusHandlesId);
1249+
if (this.map.getLayer(this._circleRadiusHandlesId)) {
1250+
this.map.removeLayer(this._circleRadiusHandlesId);
1251+
}
12501252

12511253
this._unbindCenterHandleListeners();
1252-
this.map.removeLayer(this._circleCenterHandleId);
1254+
if (this.map.getLayer(this._circleCenterHandleId)) {
1255+
this.map.removeLayer(this._circleCenterHandleId);
1256+
}
1257+
1258+
if (this.map.getSource(this._circleRadiusHandlesSourceId)) {
1259+
this.map.removeSource(this._circleRadiusHandlesSourceId);
1260+
}
12531261

1254-
this.map.removeSource(this._circleRadiusHandlesSourceId);
1255-
this.map.removeSource(this._circleCenterHandleSourceId);
1262+
if (this.map.getSource(this._circleCenterHandleSourceId)) {
1263+
this.map.removeSource(this._circleCenterHandleSourceId);
1264+
}
12561265
}
12571266

12581267
this.map.off('zoomend', this._onZoomEnd);
12591268
this._unbindCircleFillListeners();
1260-
this.map.removeLayer(this._circleFillId);
1261-
this.map.removeLayer(this._circleStrokeId);
1269+
if (this.map.getLayer(this._circleFillId)) {
1270+
this.map.removeLayer(this._circleFillId);
1271+
}
1272+
if (this.map.getLayer(this._circleStrokeId)) {
1273+
this.map.removeLayer(this._circleStrokeId);
1274+
}
12621275

1263-
this.map.removeSource(this._circleSourceId);
1276+
if (this.map.getSource(this._circleSourceId)) {
1277+
this.map.removeSource(this._circleSourceId);
1278+
}
12641279

12651280
this.map = null;
12661281

0 commit comments

Comments
 (0)