gpt4 book ai didi

sql - 如何在 OpenLayers 中设置初始 map 区域?

转载 作者:行者123 更新时间:2023-12-01 01:22:54 25 4
gpt4 key购买 nike

我正在使用 Patrick Wied 的 OpenLayers 热图图层,但仅限于英国的位置。

如何将初始 map 显示区域预设为只显示英国?

这是我在 ASPX 页面中使用的代码

  var map, layer, heatmap;
function init() {
var testData = <asp:literal id="cLtMapData" runat="server" />
var transformedTestData = { max: testData.max, data: [] },
data = testData.data,
datalen = data.length,
nudata = [];
// in order to use the OpenLayers Heatmap Layer we have to transform our data into
// { max: <max>, data: [{lonlat: <OpenLayers.LonLat>, count: <count>},...]}
while (datalen--) {
nudata.push({
lonlat: new OpenLayers.LonLat(data[datalen].lon, data[datalen].lat),
count: data[datalen].count
});
}
transformedTestData.data = nudata;
map = new OpenLayers.Map('heatmapArea');
layer = new OpenLayers.Layer.OSM();

// create our heatmap layer
heatmap = new OpenLayers.Layer.Heatmap("Heatmap Layer", map, layer, { visible: true, radius: 10 }, { isBaseLayer: false, opacity: 0.3, projection: new OpenLayers.Projection("EPSG:4326") });
map.addLayers([layer, heatmap]);
map.zoomToMaxExtent();
//maxExtent: new OpenLayers.Bounds(-1*b, -1*b, b, b);
map.zoomIn();
heatmap.setDataSet(transformedTestData);
}

它几乎与 Patrick 的演示页面完全一样,但有一个区别 - var testData = (an asp literal) - 这样我就可以使用用户选择的动态数据,并通过翻译 UK 的存储过程从 SQL 数据库中检索将邮政编码转换为纬度和经度。

最佳答案

我会在 map 初始化时进行。像这样:

map = new OpenLayers.Map({
projection: new OpenLayers.Projection("EPSG:900913"),
units: "m",
numZoomLevels: 18,
maxResolution: 156543.0339,
maxExtent: new OpenLayers.Bounds(
-20037508.34, -20037508.34, 20037508.34, 20037508.34
),
layers: [
new OpenLayers.Layer.OSM("OpenStreetMap", null, {
transitionEffect: 'resize'
})
],
center: new OpenLayers.LonLat(-10309900, 4215100),
zoom: 4
});

关于sql - 如何在 OpenLayers 中设置初始 map 区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9258820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com