gpt4 book ai didi

javascript - KmlLayer getDefaultViewport() 未定义- Google map

转载 作者:行者123 更新时间:2023-12-02 19:37:27 25 4
gpt4 key购买 nike

感谢您的时间,我希望我能足够清楚地谈论我的小问题。我想使用这样的变量“coor”:

var coor = kml.getDefaultViewport().getCenter();

并将此变量用于新的 MARKER 位置。问题是:javaScript 返回未定义。

这是我的代码:

    function initialisation(){
var centreCarte = new google.maps.LatLng(liste[0][2], liste[0][3]);
var optionsCarte = {
zoom: 7,
center: centreCarte,
mapTypeId: google.maps.MapTypeId.ROADMAP}
var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);

var i=0,li=liste.length;
while(i<li){
var kml = new google.maps.KmlLayer('http://myestory.fr/kml/'+liste[i] [0].toString()+'.kml',
{
'preserveViewport': true,
'map': maCarte
});

var coor = kml.getDefaultViewport().getCenter();

var marker = new MarkerWithLabel({
position: new google.maps.LatLng(coor),
map: maCarte,
... //other options of MarkerWithLabel
});
i++;}
}

google.maps.event.addDomListener(window, 'load', initialisation);

</script>
</head>

那么你知道为什么变量“coor”不接受任何值吗?还有其他解决办法吗?

谢谢!!

Cz

最佳答案

一个人给了我一些关于我的问题的有用细节。事实上,我必须在循环内使用监听器,如下所示:

function initialisation(){
//affectation du résultat de la requète SQL et création des variables
var liste = [<?php echo $liste;?>];
var centreCarte = new google.maps.LatLng(liste[0][2], liste[0][3]);
var optionsCarte = {
zoom: 7,
center: centreCarte,
mapTypeId: google.maps.MapTypeId.ROADMAP}

var maCarte = new google.maps.Map(document.getElementById("EmplacementDeMaCarte"), optionsCarte);

//boucle permettant l'affichage des fichiers KML et la création des MARKER
//en fonction de la liste obtenue lors de la requète SQL
var i=0,li=liste.length;
while(i<li){
var kml = new google.maps.KmlLayer('http://site.fr/kml/'+liste[i][0].toString()+'.kml', {
'preserveViewport': true,
'map': maCarte,
'valeuri': i
});
google.maps.event.addListener(kml, "defaultviewport_changed",
function() {
var marker = new MarkerWithLabel({
'position': this.getDefaultViewport().getCenter(),
'map': this.getMap(),
'draggable': true,
'raiseOnDrag': false,
'icon': 'http://site.fr/icon/noicon.png',
'labelContent': liste[this.valeuri][1],
'labelAnchor': new google.maps.Point(27, 12),
'labelClass': "labels",
'labelStyle': {opacity: 1}
});
});
i++;}
}

现在,我可以在循环中加载的所有 KML 的中心仅显示带有标签的 MARKER(noicon.png 是 1px*1px 图像)。

++

Cz

关于javascript - KmlLayer getDefaultViewport() 未定义- Google map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10788090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com