我正在尝试使用自定义KML文件以鸟瞰视图模式实现Bing地图。 我正在使用Bing v6,因为它内置了KML导入功能,但我遇到了麻烦。
以下是我实际实施的示例: http://alturl.com/w78mw [链接破碎]
地图会加载KML,但它不会像预期的那样切换到鸟瞰图。
如果我手动切换,我出于某种原因无法缩小,这是否与任何类型的错误有关?
答案 0 :(得分:1)
API参考:
您可以使用方法ImportShapeLayerData
的完整原型来使用回调并在加载元素后设置样式,请参阅MSDN:
http://msdn.microsoft.com/en-us/library/bb429606.aspx
您可以使用属性SetBestMapView(方法的最后一个参数)自动设置视图或由您自己设置。
示例:强>
以下是您的代码中的示例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Bing Maps KML</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?
v=6.3"></script>
<script type="text/javascript">
var map = null;
function GetMap() {
map = new VEMap('myMap');
map.SetCredentials("YOURKEY");
map.LoadMap();
map.SetMapMode(VEMapMode.Mode2D);
map.SetZoomLevel(1);
func_addGrid();
}
function func_addGrid() {
var atlasGrid = new VEShapeLayer();
var atlasShape = new VEShapeSourceSpecification(VEDataType.ImportXML,
"http://www.mediacode.pt/directions.kml", atlasGrid);
map.ImportShapeLayerData(atlasShape, function () {
map.SetMapStyle(VEMapStyle.Birdseye);
}, true);
}
</script>
</head>
<body onload="GetMap();">
<div id='myMap' style="position: relative; width: 600px; height: 400px;"></div>
</body>
</html>