当我实现Bing地图以查看它工作正常时,我将相同的代码移动到Popup(模态)窗口,其显示如下: Bing map is not showing location
我正在使用:
<script charset="UTF-8" type="text/javascript"
src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&mkt=en-us">
</script>
<div id="myMap"
style="position: relative!important;width:400px;height:400px;"
class="span9">
</div>
和:
$m(document).ready(function () {
var map = null;
var myMap = document.getElementById("myMap");
myMap.style.display = '';
map = new VEMap('myMap');
map.SetDashboardSize(VEDashboardSize.Large);
map.LoadMap(new VELatLong(43.79488907226601, -121.014), 10);//, VEMapStyle.Road, false, VEMapMode.Mode2D, true, 1);//oint, zoom, style, fixed, mode, showSwitch, tileBuffer
//Add pushpin
var pin = new VEShape(VEShapeType.Pushpin, new VELatLong(43.79488907226601, -121.014));
pin.SetCustomIcon(null);
pin.SetTitle('Test');
pin.SetDescription("<br/>" + "<strong>Desp : Latitude:</strong>" + "<br/>" + "<strong>Longitude:</strong>");
map.AddShape(pin);
map.ShowDashboard();
});
当我将代码移到弹出窗口时,请告诉我出了什么问题
答案 0 :(得分:1)
如果有人有兴趣......
我最近遇到了类似的问题。 我将Bing Maps v7中的代码移动到Bing Maps v8,并将Bing Maps v7中的javascript代码转换为Bing Maps v8 TypeScript。
对于版本7,我的Bing Map在模式体中使用此代码在引导模式中可见:
<div id="mapDivGeocode" style="height:250px;position:relative;"></div>
类似的东西:
...
<div class="modal-body">
<form id="...">
<div id="mapDivGeocode" style="height:250px;position:relative;"></div>
</form>
</div>
...
这在Bing Maps v7中完美运行,而不是Bing Maps v8,这不再适用。
出于某种原因,它正在重置或忽略我的身高:250px。 一个解决方案是围绕它包装另一个div,如下所示:
<div style="height: 250px;">
<div id="mapDivGeocode" style="position:relative; height:250px;"></div>
</div>
所以Bing Maps v8的bootstrap模式中的代码现在看起来像这样:
...
<div class="modal-body">
<form id="...">
<div style="height: 250px;">
<div id="mapDivGeocode" style="position:relative; height:250px;"></div>
</div>
</form>
</div>
...
额外的附加信息:如果您的视图不可见,因此未在Bing Maps v8中正确设置,您的地理编码将失败并显示如下消息:
“errorDetails”:[“一个或多个参数无效。”,“userMapView:此参数值超出范围。”],“resourceSets”:[],“statusCode”:400,“statusDescription”: “糟糕的要求”
请注意,此信息在Microsoft.Maps.Search.IGeocodeRequestOptions的errorCallback中不可见,我不得不使用Microsoft Edge的F12开发人员工具并转到[网络]选项卡,选择向bing地图发出的请求并选择[身体]&gt; [响应主体]位于开发人员工具的右侧。你会看到errorDetails :-)(而不是在errorCallback中......)
在我的模态中正确显示地图后,我的地理编码不再调用errorCallback,并且Microsoft.Maps.Search.IGeocodeResult的回调再次开始工作!