我正在解析c#中的xml文件,我得到了一些lat / lng。之后,我正在调用一个js函数,在那里我创建了一些标记:
jsFunc = "createMarker(" + position + "," + HttpUtility.JavaScriptStringEncode(infoStations, true) + ")";
ScriptManager.RegisterClientScriptBlock(this, GetType(), "script" + cpt, "$(function () {" + jsFunc + "; });", true);
创建标记功能:
function createMarker(position, information) {
GreenIcone = {
url: "http://maps.google.com/mapfiles/marker_green.png",
size: new google.maps.Size(20, 34),
anchor: new google.maps.Point(10, 34)
};
icone = GreenIcone;
var marker = new google.maps.Marker({
position: position,
map: map,
icon:icone
});
markers.push(marker);
google.maps.event.addDomListener(marker, "click", function () {
infowindow = new google.maps.InfoWindow({ content: information });
if (prev_infowindow) {
prev_infowindow.close();
}
prev_infowindow = infowindow;
infowindow.open(map, this);
});
google.maps.event.addDomListener(map, "click", function () { //supprime l'infobulle affichée au clic sur la map
infowindow.close();
});
}
以下是我所包含的脚本(在js和html之前):
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAHc6798OWr7qKWWzN8CQWRNTw1IysIw_U&libraries=geometry&callback=initMap">
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
问题是,对于相同的位置,有时没有标记,有时10等...而且我得到“未捕获的ReferenceError:谷歌未定义” 对于此行缺少的每个标记:
size: new google.maps.Size(20, 34)
我尝试在html末尾或开头移动谷歌地图api调用,但仍然存在错误。有时所有标记都显示良好且没有错误。对这个问题有什么看法吗?
答案 0 :(得分:0)
我发现了问题。该页面有时没有时间完全加载,因此它无法识别谷歌地图API呼叫。我刚刚在代码中添加了&amp;(window).on(&#39; load&#39;,function()):
function createMarker(position, information) {
$(window).on('load', function () {
//my logic here
});
}