KmlLayer getDefaultViewport() Undefined- Google Maps
KmlLayer getDefaultViewport() Undefined- Google Maps
感谢您的时间,我希望我能足够清楚地谈论我的小问题。我喜欢使用这样的变量"coor":
var coor = kml.getDefaultViewport().getCenter();
并将此变量用于新的标记位置。问题是:javaScript 返回 Undefined。
这是我的代码:
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 的中心显示仅带有标签的标记(noicon.png是 1px*1px 图像)。
++
Cz
相关文章:
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 使用Google Maps API向标记添加多个字符
- Google Maps API OverlayView()在AngularJS指令中不起作用
- 使用Google Maps API驱动时间多边形
- 使用Google Maps JavaScript API v3和Geocoding API映射多个位置
- 在for循环中使用多维数组设置google.maps.Marker图标
- 可扩展的画布作为Google Maps Javascript API中的覆盖
- 在自动完成中使用Google Maps Places API;API不工作
- google.maps.event.addDomListener(window, 'load', fun
- 根据PHP中数组的长度在Google Maps API中循环遍历标记
- 加载Google MAPS API v3的JSON数据
- 如何使用Dojo引用Google Maps事件中的包含类
- Javascript:Google Maps API:如果地图加载在隐藏容器中,则为空白地图
- 如何在Ionic/Codova应用程序中保护我的Google Maps Javascript V3 API密钥
- 来自JSON数组的Google Maps API生成器
- Google Maps JavaScript API v3:getDetails(请求,回调),用于多个位置
- "现代的“;在Google Maps JS API v3上使用字母标记
- Google Maps Javascript v3 自定义控件子类化标准控件
- Google Maps panTo conflicts with addListener
- 来自plugin.google.maps(不是com.google.maps)的标记不会改变其位置