ym.services.Area
Initialization
The Area
class gets the polygons of a region using the GeoJson WebService interface.
If the Area class is used without extended map functionalities, the GeoJson can be accessed as follows
Code example: Initialization area service
ym.ready(function () {
var area = new ym.services.Area();
area.on('success', function (request, response) {
console.log(response.body);
});
area.load({lat: 51.163375, lng: 10.447683});
});
Constructor(options)
The constructor takes the same options as the class ym.provider.GeoJSON
.
Methods
Area.load(LatLng, levels, providerId) from v3
Loads GeoJson polygons from GeoJson WebService.
Parameter: latLng
The geo-coordinate in which to search.
Parameter: levels
Optional; default: [1, 2]. Several values can be transferred.
Level | Meaning |
---|---|
0 |
Country |
1 |
Federal State |
2 |
Administrative district |
3 |
County |
4 |
POSTAL CODE |
5 |
Municipality |
6 |
City district |
Parameter: providerId
Optional; Standard: OSM
Example call
area.load({lat: 51.163375, lng: 10.447683});
Area.addTo(layer) from v3
The addTo
-method is used to register an area for a map layer and automatically update it as soon as a new GeoJson is available. This means that you don't have to create another GeoJson object and you don't have to care about the Success-Listener. From the moment you register on the layers, the GeoJSON display is always updated as soon as a new request to the GeoJSON interface occurs. The map layer must be an instance of ym.provider.Map
.
Parameter: layer
The map layer derived from ym.provider.Map
on which the area is to be drawn.
Example calls
The example is complete; you can save it locally in a file and view it in your browser. You only have to replace the value for the apiKey
before.
In the first example the administrative levels 1 to 3 are requested, that means state, county and district.
Code example: Example call (Lvl. 1 - 3)
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
</head>
<body>
<!-- Position where a map should be displayed. The ID is referred to at the bottom of the script. -->
<div id="map" style="height: 400px; width: 700px;"></div>
<!-- Loading of the SmartMaps API. -->
<script src="https://www.yellowmap.de/api_rst/api/loader/?apiKey={API_KEY}&libraries=free-3"></script>
<!-- Access to the SmartMaps API. -->
<script>
ym.ready(function (modules) {
var provider = modules.provider;
var map = new provider.Map("map", {
center: new provider.LatLng(51.163375, 10.447683), // Mittelpunkt von Deutschland
zoom: 6
});
var area = new ym.services.Area({
onEachFeature: function (feature, layer) {
var popupContent = "";
for (var k in feature.properties) {
popupContent += "<b>" + k + "</b> " + feature.properties[k] + "<br>";
}
layer.bindPopup("<pre>" + popupContent + "</pre>");
}
});
area.addTo(map);
area.load(map.getCenter(), [1,2,3]);
window.map = map;
});
</script>
</body>
</html>
Alternatively you can instantiate by yourself and use the Success-Listener:
Code example: Example call (Success-Listener)
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8" />
</head>
<body>
<!-- Position where a map should be displayed. The ID is referred to at the bottom of the script. -->
<div id="map" style="height: 400px; width: 700px;"></div>
<!-- Loading of the SmartMaps API. -->
<script src="https://www.yellowmap.de/api_rst/api/loader/?apiKey={API_KEY}&libraries=free-3"></script>
<!-- Access to the SmartMaps API. -->
<script>
ym.ready(function (modules) {
var provider = modules.provider;
var map = new provider.Map("map", {
center: new provider.LatLng(51.163375, 10.447683), // Mittelpunkt von Deutschland
zoom: 6
});
var geoJson = new provider.GeoJSON(null, {
onEachFeature: function (feature, layer) {
var popupContent = "";
for (var k in feature.properties) {
popupContent += "<b>" + k + "</b> " + feature.properties[k] + "<br>";
}
layer.bindPopup("<pre>" + popupContent + "</pre>");
}
});
var area = new ym.services.Area();
area.on('success', function (request, response) {
geoJson.addData(response.body);
});
area.load(map.getCenter(), [1,2,3]);
geoJson.addTo(map);
window.map = map;
});
</script>
</body>
</html>
Area.removeFrom(layer) from v3
Removes the GeoJson from the layer.
Events
The basis of the area
class is the request
class. Accordingly, there are also the event listeners success
and error
, which announce whether a request was successful or failed.