每个国家/地区的 Mapbox 缩放级别
Mapbox zoom level per country
您好,我正在尝试找到一种在 Mapbox 中完全按国家/地区代码显示国家/地区的方法。
我正在使用 country-iso-to-coordinates 通过国家 iso 代码获取坐标
例如 userCountry = "FR"(法国)导致 2.213749、46.227638 作为中心点。这行得通,但我也希望缩放级别适合国家/地区的边界。例如,法国在缩放级别 4.3 时看起来很完美,而像美国或中国这样的大国需要 ~2.2 的缩放级别。
data() {
return {
accessToken: 'xxxxx',
mapStyle: 'mapbox://styles/psteger/cl0y1upof001f16sxix3n00oe',
center: [10, 51],
zoom: 4.3,
minZoom: 2.2,
maxZoom: 14,
markers: [],
params: {
access_token: 'xxxxx',
country: 'de',
language: 'en'
}
}
},
mounted() {
const coordinates = IsoToLatLong[this.userCountry];
this.center = [coordinates.coordinate[1], coordinates.coordinate[0]]
},
如何在不手动尝试为每个国家/地区编写列表的情况下找到显示整个国家/地区的工作缩放级别?是否有包含每个国家/地区比率的包,以便我可以计算缩放级别,或者 mapbox 的 API 可以根据国家/地区的边界设置缩放级别?
感谢您的帮助!
我建议使用 country-bounding-boxes,这样您就可以使用以下方法:
import boundingBoxes from 'country-bounding-boxes/bounding-boxes.json';
export default {
// ...
methods: {
zoomToCountry(isoCode) {
this.map.fitBounds(boundingBoxes[isoCode][1]);
}
}
}
这是一个非常基本的 working demo。
您好,我正在尝试找到一种在 Mapbox 中完全按国家/地区代码显示国家/地区的方法。
我正在使用 country-iso-to-coordinates 通过国家 iso 代码获取坐标
例如 userCountry = "FR"(法国)导致 2.213749、46.227638 作为中心点。这行得通,但我也希望缩放级别适合国家/地区的边界。例如,法国在缩放级别 4.3 时看起来很完美,而像美国或中国这样的大国需要 ~2.2 的缩放级别。
data() {
return {
accessToken: 'xxxxx',
mapStyle: 'mapbox://styles/psteger/cl0y1upof001f16sxix3n00oe',
center: [10, 51],
zoom: 4.3,
minZoom: 2.2,
maxZoom: 14,
markers: [],
params: {
access_token: 'xxxxx',
country: 'de',
language: 'en'
}
}
},
mounted() {
const coordinates = IsoToLatLong[this.userCountry];
this.center = [coordinates.coordinate[1], coordinates.coordinate[0]]
},
如何在不手动尝试为每个国家/地区编写列表的情况下找到显示整个国家/地区的工作缩放级别?是否有包含每个国家/地区比率的包,以便我可以计算缩放级别,或者 mapbox 的 API 可以根据国家/地区的边界设置缩放级别?
感谢您的帮助!
我建议使用 country-bounding-boxes,这样您就可以使用以下方法:
import boundingBoxes from 'country-bounding-boxes/bounding-boxes.json';
export default {
// ...
methods: {
zoomToCountry(isoCode) {
this.map.fitBounds(boundingBoxes[isoCode][1]);
}
}
}
这是一个非常基本的 working demo。