<!DOCTYPE html>
<html>
<head>
<title>Map</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript"
src="http://openlayers.org/api/OpenLayers.js"></script>
<style> html, body { width: 80%; height: 80%; margin: 1em; padding: 1em; } </style>
<script type="text/javascript">
function init() {
var map = new OpenLayers.Map("rcp1_map");
var osm = new OpenLayers.Layer.OSM();
map.addLayer(osm);
map.setCenter(new OpenLayers.LonLat(34.05,118.25), 5);
}
</script>
</head>
<body onload="init()">
<h1>Hello, Los Angeles</h1>
<div id="rcp1_map" style="width: 100%; height: 100%;"></div>
</body>
</html>
而不是rcp1_map,我应该或者可以将某个完整的世界地图下载到街道某处并安装它?
首发建议表示赞赏。
/ IAW
答案 0 :(得分:0)
首先,如果您在调用onload="init()"
之前定义地图,请执行以下操作:
var map;
function init() {
map = new OpenLayers.Map("rcp1_map");
var osm = new OpenLayers.Layer.OSM();
map.addLayer(osm);
map.setCenter(new OpenLayers.LonLat(34.05,118.25), 5);
}
然后setCenter将工作。问题是你现在正在谷歌坐标中输入坐标。请参阅http://docs.openlayers.org/library/spherical_mercator.html。
Google Mercator中洛杉矶的坐标为-13180189,4018753。请查看http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/,了解Google Mercator中事物的坐标。
至于rcp1_map
,这是地图进入页面正文的div的ID。
以下是最终代码:
<!DOCTYPE html>
<html>
<head>
<title>Map</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript"
src="http://openlayers.org/api/OpenLayers.js"></script>
<style> html, body { width: 80%; height: 80%; margin: 1em; padding: 1em; } </style>
<script type="text/javascript">
var map;
function init() {
map = new OpenLayers.Map("rcp1_map");
var osm = new OpenLayers.Layer.OSM();
map.addLayer(osm);
map.setCenter(new OpenLayers.LonLat(-13180189,4018753), 5);
}
</script>
</head>
<body onload="init()">
<h1>Hello, Los Angeles</h1>
<div id="rcp1_map" style="width: 100%; height: 100%;"></div>
</body>
</html>
我希望这会有所帮助。