Skip to content

Commit 0f722aa

Browse files
authored
Merge pull request #107616 from stevemunk/qps-rate-limits
improve grammar in articles: QPS rate limits, Clustering point data and Consumption model
2 parents bf53455 + 374cf3a commit 0f722aa

File tree

3 files changed

+23
-19
lines changed

3 files changed

+23
-19
lines changed

articles/azure-maps/azure-maps-qps-rate-limits.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ ms.custom: mode-other
1212

1313
# Azure Maps QPS rate limits
1414

15-
Azure Maps does not have any maximum daily limits on the number of requests that can be made, however there are limits to the maximum number of queries per second (QPS).
15+
Azure Maps doesn't have any maximum daily limits on the number of requests that can be made, however there are limits to the maximum number of queries per second (QPS).
1616

17-
Below are the QPS usage limits for each Azure Maps service by Pricing Tier.
17+
The following list shows the QPS usage limits for each Azure Maps service by Pricing Tier.
1818

1919
| Azure Maps service | QPS Limit: Gen 2 Pricing Tier | QPS Limit: Gen 1 S1 Pricing Tier | QPS Limit: Gen 1 S0 Pricing Tier |
2020
| ----------------- | :--------------------------: | :------------------------------: | :------------------------: |
@@ -39,4 +39,6 @@ Below are the QPS usage limits for each Azure Maps service by Pricing Tier.
3939
| Traffic service | 50 | 50 | 50 |
4040
| Weather service | 50 | 50 | 50 |
4141

42-
When QPS limits are reached, an HTTP 429 error will be returned. If you are using the Gen 2 or Gen 1 S1 pricing tiers, you can create an Azure Maps *Technical* Support Request in the [Azure portal](https://portal.azure.com/) to increase a specific QPS limit if needed. QPS limits for the Gen 1 S0 pricing tier cannot be increased.
42+
When QPS limits are reached, an HTTP 429 error is returned. If you're using the Gen 2 or Gen 1 S1 pricing tiers, you can create an Azure Maps *Technical* Support Request in the [Azure portal] to increase a specific QPS limit if needed. QPS limits for the Gen 1 S0 pricing tier can't be increased.
43+
44+
[Azure portal]: https://portal.azure.com/

articles/azure-maps/clustering-point-data-web-sdk.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ ms.custom: codepen, devx-track-js
1212

1313
# Clustering point data in the Web SDK
1414

15-
When visualizing many data points on the map, data points may overlap over each other. The overlap may cause the map may become unreadable and difficult to use. Clustering point data is the process of combining point data that are near each other and representing them on the map as a single clustered data point. As the user zooms into the map, the clusters break apart into their individual data points. When you work with large number of data points, use the clustering processes to improve your user experience.
15+
When there are many data points on the map, some may overlap over each other. The overlap may cause the map may become unreadable and difficult to use. Clustering point data is the process of combining point data that are near each other and representing them on the map as a single clustered data point. As the user zooms into the map, the clusters break apart into their individual data points. When you work with a large number of data points, the clustering processes can improve the user experience.
1616

1717
</br>
1818

1919
>[!VIDEO https://learn.microsoft.com/Shows/Internet-of-Things-Show/Clustering-point-data-in-Azure-Maps/player?format=ny]
2020
2121
## Enabling clustering on a data source
2222

23-
Enable clustering in the `DataSource` class by setting the `cluster` option to `true`. Set `clusterRadius` to select nearby points and combines them into a cluster. The value of `clusterRadius` is in pixels. Use `clusterMaxZoom` to specify a zoom level at which to disable the clustering logic. Here is an example of how to enable clustering in a data source.
23+
Enable clustering in the `DataSource` class by setting the `cluster` option to `true`. Set `clusterRadius` to select nearby points and combines them into a cluster. The value of `clusterRadius` is in pixels. Use `clusterMaxZoom` to specify a zoom level at which to disable the clustering logic. Here's an example of how to enable clustering in a data source.
2424

2525
```javascript
2626
//Create a data source and enable clustering.
@@ -44,8 +44,8 @@ The `DataSource` class provides the following methods related to clustering as w
4444

4545
| Method | Return type | Description |
4646
|--------|-------------|-------------|
47-
| getClusterChildren(clusterId: number) | Promise&lt;Array&lt;Feature&lt;Geometry, any&gt; \| Shape&gt;&gt; | Retrieves the children of the given cluster on the next zoom level. These children may be a combination of shapes and subclusters. The subclusters will be features with properties matching ClusteredProperties. |
48-
| getClusterExpansionZoom(clusterId: number) | Promise&lt;number&gt; | Calculates a zoom level at which the cluster will start expanding or break apart. |
47+
| getClusterChildren(clusterId: number) | Promise&lt;Array&lt;Feature&lt;Geometry, any&gt; \| Shape&gt;&gt; | Retrieves the children of the given cluster on the next zoom level. These children may be a combination of shapes and subclusters. The subclusters are features with properties matching ClusteredProperties. |
48+
| getClusterExpansionZoom(clusterId: number) | Promise&lt;number&gt; | Calculates a zoom level at which the cluster starts expanding or break apart. |
4949
| getClusterLeaves(clusterId: number, limit: number, offset: number) | Promise&lt;Array&lt;Feature&lt;Geometry, any&gt; \| Shape&gt;&gt; | Retrieves the points in a cluster. By default the first 10 points are returned. To page through the points, use `limit` to specify the number of points to return, and `offset` to step through the index of points. To return all points, set `limit` to `Infinity` and don't set `offset`. |
5050

5151
## Display clusters using a bubble layer
@@ -63,9 +63,9 @@ To display the size of the cluster on top of the bubble, use a symbol layer with
6363

6464
## Display clusters using a symbol layer
6565

66-
When visualizing data points, the symbol layer automatically hides symbols that overlap each other to ensure a cleaner user interface. This default behavior might be undesirable if you want to show the data points density on the map. However, these settings can be changed. To display all symbols, set the `allowOverlap` option of the Symbol layers `iconOptions` property to `true`.
66+
When visualizing data points, the symbol layer automatically hides symbols that overlap each other to ensure a cleaner user interface. This default behavior might be undesirable if you want to show the data points density on the map. However, these settings can be changed. To display all symbols, set the `allowOverlap` option of the Symbol layers `iconOptions` property to `true`.
6767

68-
Use clustering to show the data points density while keeping a clean user interface. The sample below shows you how to add custom symbols and represent clusters and individual data points using the symbol layer.
68+
Use clustering to show the data points density while keeping a clean user interface. The following sample shows you how to add custom symbols and represent clusters and individual data points using the symbol layer.
6969

7070
<br/>
7171

@@ -76,7 +76,7 @@ Use clustering to show the data points density while keeping a clean user interf
7676

7777
## Clustering and the heat maps layer
7878

79-
Heat maps are a great way to display the density of data on the map. This visualization method can handle a large number of data points on its own. If the data points are clustered and the cluster size is used as the weight of the heat map, then the heat map can handle even more data. To achieve this option, set the `weight` option of the heat map layer to `['get', 'point_count']`. When the cluster radius is small, the heat map will look nearly identical to a heat map using the unclustered data points, but it will perform much better. However, the smaller the cluster radius, the more accurate the heat map will be, but with fewer performance benefits.
79+
Heat maps are a great way to display the density of data on the map. This visualization method can handle a large number of data points on its own. If the data points are clustered and the cluster size is used as the weight of the heat map, then the heat map can handle even more data. To achieve this option, set the `weight` option of the heat map layer to `['get', 'point_count']`. When the cluster radius is small, the heat map looks nearly identical to a heat map using the unclustered data points, but it performs better. However, the smaller the cluster radius, the more accurate the heat map is, but with fewer performance benefits.
8080

8181
<br/>
8282

@@ -87,7 +87,7 @@ Heat maps are a great way to display the density of data on the map. This visual
8787

8888
## Mouse events on clustered data points
8989

90-
When mouse events occur on a layer that contains clustered data points, the clustered data point return to the event as a GeoJSON point feature object. This point feature will have the following properties:
90+
When mouse events occur on a layer that contains clustered data points, the clustered data point return to the event as a GeoJSON point feature object. This point feature has the following properties:
9191

9292
| Property name | Type | Description |
9393
|---------------------------|---------|---------------|
@@ -105,9 +105,9 @@ This example takes a bubble layer that renders cluster points and adds a click e
105105
(<a href='https://codepen.io/azuremaps'>@azuremaps</a>) on <a href='https://codepen.io'>CodePen</a>.
106106
</iframe>
107107

108-
## Display cluster area
108+
## Display cluster area
109109

110-
The point data that a cluster represents is spread over an area. In this sample when the mouse is hovered over a cluster, two main behaviors occur. First, the individual data points contained in the cluster will be used to calculate a convex hull. Then, the convex hull will be displayed on the map to show an area. A convex hull is a polygon that wraps a set of points like an elastic band and can be calculated using the `atlas.math.getConvexHull` method. All points contained in a cluster can be retrieved from the data source using the `getClusterLeaves` method.
110+
The point data that a cluster represents is spread over an area. In this sample when the mouse is hovered over a cluster, two main behaviors occur. First, the individual data points contained in the cluster are used to calculate a convex hull. Then, the convex hull is displayed on the map to show an area. A convex hull is a polygon that wraps a set of points like an elastic band and can be calculated using the `atlas.math.getConvexHull` method. All points contained in a cluster can be retrieved from the data source using the `getClusterLeaves` method.
111111

112112
<br/>
113113

@@ -118,9 +118,9 @@ The point data that a cluster represents is spread over an area. In this sample
118118

119119
## Aggregating data in clusters
120120

121-
Often clusters are represented using a symbol with the number of points that are within the cluster. But, sometimes it's desirable to customize the style of clusters with additional metrics. With cluster aggregates, custom properties can be created and populated using an [aggregate expression](data-driven-style-expressions-web-sdk.md#aggregate-expression) calculation. Cluster aggregates can be defined in `clusterProperties` option of the `DataSource`.
121+
Often clusters are represented using a symbol with the number of points that are within the cluster. But, sometimes it's desirable to customize the style of clusters with more metrics. With cluster aggregates, custom properties can be created and populated using an [aggregate expression] calculation. Cluster aggregates can be defined in `clusterProperties` option of the `DataSource`.
122122

123-
The following sample uses an aggregate expression. The code calculates a count based on the entity type property of each data point in a cluster. When a user clicks on a cluster, a popup shows with additional information about the cluster.
123+
The following sample uses an aggregate expression. The code calculates a count based on the entity type property of each data point in a cluster. When a user selects a cluster, a popup shows with additional information about the cluster.
124124

125125
<iframe height="500" scrolling="no" title="Cluster aggregates" src="//codepen.io/azuremaps/embed/jgYyRL/?height=500&theme-id=0&default-tab=js,result&editable=true" frameborder="no" allowtransparency="true" allowfullscreen="true">
126126
See the Pen <a href='https://codepen.io/azuremaps/pen/jgYyRL/'>Cluster aggregates</a> by Azure Maps
@@ -150,3 +150,5 @@ See code examples to add functionality to your app:
150150
151151
> [!div class="nextstepaction"]
152152
> [Add a heat map layer](map-add-heat-map-layer.md)
153+
154+
[aggregate expression]: data-driven-style-expressions-web-sdk.md#aggregate-expression

articles/azure-maps/consumption-model.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Depending on the value of **vehicleEngineType**, two principal Consumption Model
1919

2020
In both Consumption Models, there are some dependencies when specifying parameters. Meaning that, explicitly specifying some parameters may require specifying some other parameters. Here are these dependencies to be aware of:
2121

22-
* All parameters require **constantSpeedConsumption** to be specified by the user. It is an error to specify any other consumption model parameter, if **constantSpeedConsumption** is not specified. The **vehicleWeight** parameter is an exception for this requirement.
22+
* All parameters require **constantSpeedConsumption** to be specified by the user. It's an error to specify any other consumption model parameter, if **constantSpeedConsumption** isn't specified. The **vehicleWeight** parameter is an exception for this requirement.
2323
* **accelerationEfficiency** and **decelerationEfficiency** must always be specified as a pair (that is, both or none).
2424
* If **accelerationEfficiency** and **decelerationEfficiency** are specified, product of their values must not be greater than 1 (to prevent perpetual motion).
2525
* **uphillEfficiency** and **downhillEfficiency** must always be specified as a pair (that's, both or none).
@@ -33,7 +33,7 @@ In both Consumption Models, there are some dependencies when specifying paramete
3333
## Combustion consumption model
3434

3535
The Combustion Consumption Model is used when **vehicleEngineType** is set to _combustion_.
36-
The list of parameters that belong to this model are below. Refer to the Parameters section for detailed description.
36+
The following list of parameters belong to this model. Refer to the Parameters section for detailed description.
3737

3838
* constantSpeedConsumptionInLitersPerHundredkm
3939
* vehicleWeight
@@ -48,7 +48,7 @@ The list of parameters that belong to this model are below. Refer to the Paramet
4848
## Electric consumption model
4949

5050
The Electric Consumption Model is used when **vehicleEngineType** is set to _electric_.
51-
The list of parameters that belong to this model are below. Refer to the Parameters section for detailed description.
51+
The following list of parameters belong to this model. Refer to the Parameters section for detailed description.
5252

5353
* constantSpeedConsumptionInkWhPerHundredkm
5454
* vehicleWeight
@@ -62,5 +62,5 @@ The list of parameters that belong to this model are below. Refer to the Paramet
6262

6363
## Sensible values of consumption parameters
6464

65-
A particular set of consumption parameters can be rejected, even though the set might fulfill all the explicit requirements. It happens when the value of a specific parameter, or a combination of values of several parameters, is considered to lead to unreasonable magnitudes of consumption values. If that happens, it most likely indicates an input error, as proper care is taken to accommodate all sensible values of consumption parameters. In case a particular set of consumption parameters is rejected, the accompanying error message will contain a textual explanation of the reason(s).
65+
A particular set of consumption parameters can be rejected, even though the set might fulfill all the explicit requirements. It happens when the value of a specific parameter, or a combination of values of several parameters, is considered to lead to unreasonable magnitudes of consumption values. If that happens, it most likely indicates an input error, as proper care is taken to accommodate all sensible values of consumption parameters. In case a particular set of consumption parameters is rejected, the accompanying error message contains a textual explanation of the reason(s).
6666
The detailed descriptions of the parameters have examples of sensible values for both models.

0 commit comments

Comments
 (0)