저는 Patrick Wied의 OpenLayers Heatmap 레이어를 사용하고 있지만 영국의 위치에 대해서만 사용하고 있습니다.OpenLayers에서 초기 맵 영역을 설정하는 방법은 무엇입니까?
영국을 표시하도록 초기지도 표시 영역을 미리 설정하려면 어떻게해야합니까? 여기
은 내가 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);
}
에서 사용했던 코드,하지만 한 가지 차이점 - var에 testdata로 = (하는 ASP 문자) - 있도록하는 것은 내가 동적 사용할 수 있습니다 사용자가 선택한 데이터는 영국 포스트 코드를 위도와 경도로 변환하는 저장 프로 시저를 통해 SQL 데이터베이스에서 검색됩니다.
유용 보이는, 그냥 코드 행에 대해 궁금 해서요 "센터 : 새로운 OpenLayers.LonLat을 (-10309900, 4215100)"- 그리고 LonLat 단위가 무엇인지? 그들은 "정상적인"long/lat x 10^6입니까? 내가 뭔가 잘못하고 있어야합니다 –
...이를하려고하면, "VAR 위도 = 52; \t \t var에 경도 = -1; \t \t VAR 줌 = 3; map.setCenter (새 OpenLayers.LonLat (경도, 위도), 줌); " 확대되지만지도는 영국이 아닌 서 아프리카에 중심을두고 있습니다. –
LonLat이지도를 투영했습니다. 따라서이 경우 메터를 사용하는 웹 메르카토르입니다. 해당 지역의 웹 메르 케이터 좌표 (및 센터)를 가져 오거나 프로젝션을 수행해야합니다. –