【问题标题】:Google Maps API v3 polylines tabbed InfoWindowGoogle Maps API v3 折线选项卡式 InfoWindow
【发布时间】:2013-04-23 01:41:58
【问题描述】:

我在获取选项卡式信息窗口以显示路径时遇到了一些困难。我关注了this tutorial

我有一个带有折线的 KML 图层(它们是曲线 - 代表地形特征) 并且不知道如何在单击路径时显示信息窗口。我看过一些关于计算中点的教程(但直线)..

我尝试获取路径点的 2 种方法:

var streamPoly = google.maps.Polyline.prototype.getPosition = function() {
return this.getPath().getAt(0);}

var streamPoly = poly.getPath(); 

我的标题中有什么:

var map;
var streamPoly;

function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(42.687984,-79.394159);

    var mapOptions = {
        zoom: 12,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

    var ctaLayer = new google.maps.KmlLayer({
        url: 'paths.kml'
    });
    ctaLayer.setMap(map);
    ctaLayer.set('preserveViewport', true); 


    var  infoBubble = new InfoBubble({
        maxWidth: 300
    });

    var div = document.createElement('DIV');
    div.innerHTML = 'Hello';

    infoBubble.addTab('Tab 1', div);
    infoBubble.addTab('Tab 2', "<B>This is tab 2</B>");

    google.maps.event.addListener(streamPoly, 'click', function() {
        if (!infoBubble.isOpen()) {
            infoBubble.open(map, streamPoly);
        }
    });
}

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

【问题讨论】:

    标签: javascript google-maps google-maps-api-3 gis


    【解决方案1】:

    您不能将 KmlLayer 中的折线作为 google.maps.Polyline 对象访问。要在 KmlLayer 上打开 InfoWindow(或 InfoBubble),您需要向 KmlLayer 添加监听器:

    google.maps.event.addListener(ctaLayer, 'click', function(evt) {
            if (!infoBubble.isOpen()) {
                infoBubble.setPosition(evt.latLng);
                infoBubble.open(map);
            }
        });
    

    evt 将是一个KmlLayerMouseEvent,它将包含有关所点击功能的信息

    【讨论】:

    • 我已经尝试使用 KmlMouseEvent 属性(featureData,latLng)进行事件,但仍然无法正常工作。它可能是选项卡,但不确定如何解决这个问题。理想情况下,希望标签式信息气泡能够正常工作!
    • 提供指向您的 KML 的链接,我或许可以提供一个示例。
    • 我还发现了这个将路径与选项卡式窗口相结合的示例:grasoft.be/mtb/tracks/ShowGPX.htm?gpx=20100523.gpx 这是一种使用选项卡的不同方法。可能值得看看这个,看看 tabber 如何与 KML 层一起工作。感谢您迄今为止的帮助!
    • 2 个问题:1. 在您尝试使用 KmlMouseEvent 属性填充 InfoBubble 选项卡的地方,您的代码是什么样的? 2. 您希望信息来自哪里以填充其他选项卡?特征数据放在一个中,其他的又是什么?
    猜你喜欢
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 2011-02-11
    • 2016-02-10
    • 2011-01-03
    相关资源
    最近更新 更多