私はPatrick WiedのOpenLayersヒートマップレイヤーを使用していますが、英国のロケーションのみです。OpenLayersで初期マップエリアを設定する方法は?
英国だけを表示するために初期地図の表示領域をプリセットするにはどうすればよいですか?
ここで私はそれがほぼ正確にパトリックのデモページのようだが、1つの違いが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単位が何でありますか?彼らは "ノーマル"ロング/ラットx 10^6ですか?私が何か間違ったことしなければならない –
...私はこれをしようとした場合、「VAR緯度= 52; \t \tするvar LON = -1; \t \tするvarズーム= 3; map.setCenter(新しいOpenLayers.LonLat(LON、 lat)、ズーム); "ズームインしますが、地図は英国ではなく西アフリカに集中しています –
LonLatがマップを投影しています。したがって、メーターを使用するWeb Mercatorの場合です。あなたの地域のWeb mercatorの座標と中心を取得するか、投影を行う必要があります。 –