【问题标题】:On click Data populate in info window of a polygon using GeoXMl3单击使用 GeoXMl3 在多边形的信息窗口中填充数据
【发布时间】:2015-07-08 07:42:03
【问题描述】:

我正在使用 geoXMl3 一次解析多个 kml 文件。 我正在地图上绘制多边形。当我单击多边形时,会弹出一个信息窗口。我没有从这个信息窗口出现的地方得到 我的要求是我想通过一些 java-script 对象来编辑 info-window 的内容

我的 java-script 对象会像

popUpDetails = {'district-name':'content'}。

不知道如何在我的解析器中传递它

我参考了几个链接,例如:

https://code.google.com/p/geoxml3/wiki/Usage

以及如何将数据库中的数据动态放入某个多边形的信息窗口中?

我是这样解析 kml 文件的:

var mapProp = {
    center: new google.maps.LatLng(51.508742,-0.120850),
    zoom: 5,
    mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
var parser = new geoXML3.parser({
    map: map,
    processStyles: true,
    zoom: false,
});

var infowindow = new google.maps.InfoWindow();
for (i = 0; i < ListofPathsofkmlfiles.length; i++) {
    parser.parse([ListofPathsofkmlfiles[i]]);      
}

提前感谢您的帮助

【问题讨论】:

  • 看看this 并获得一些想法。

标签: google-maps kml geoxml3


【解决方案1】:

我终于找到了相同的解决方案。

您需要覆盖解析器的 createPolygon 属性。

var districtInfoMap = {doc_url1:infowindow_content1, doc_url2:infowindow_content2 };

var parser = new geoXML3.parser({
    createPolygon: mapDrawingToType(),
    map: map,
    processStyles: true,
    zoom: false,
    singleInfoWindow: true,
});

mapDrawingToType = function() {

    return function(placemark, doc) {
        var polygon = geoXML3.instances[geoXML3.instances.length-1].createPolygon(placemark, doc);

        if(polygon.infoWindow) {
            polygon.infoWindowOptions.content = districtInfoMap[doc.baseUrl];
    }
    return polygon;
}

}

这里我制作了一个对象,其中包含你必须显示的区域 url 和窗口内容的地图。

这将覆盖信息窗口显示方式的默认行为,并显示您想要显示的所需内容。

如果您仍然遇到任何问题,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 2012-10-16
    • 2018-03-11
    • 1970-01-01
    • 2011-02-20
    • 2016-03-14
    • 2012-05-31
    相关资源
    最近更新 更多