javascript - 来自 XML 的 Google Map 折线数组

标签 javascript php google-maps polyline

在我的 javascript 代码中,每隔 x 秒,我从 XML 中获取一个变量“polys”,坐标对的数量不定,如下所示(我省略了一些变量):echo.php

<markers>
<marker iph="ce987" polys="[40.66645296,-0.22793904],[39.66973274,0.21806265]"/>
</markers>

Javascript 代码:

        function processXML(data) {
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagName("marker");
        //clear markers before you start drawing new ones
        resetMarkers(markersArray)
        for (var i = 0; i < markers.length; i++) {
            var idp = markers[i].getAttribute("idp");
            var polys = markers[i].getAttribute("polys");

            var genpolys = [];

            var flightPath = new google.maps.Polyline({
              path: genpolys,
              geodesic: true,
              strokeColor: '#FF0000',
              strokeOpacity: 1.0,
              strokeWeight: 2,
              map: map
            });

            markersArray.push(marker);
        }
        setTimeout(function() {
            downloadUrl("echo.php", processXML);
        }, 19000);
    }

而且,我需要生成一个 ¿ 数组?与坐标,像这样:

var genpolys = [
    new google.maps.LatLng(40.66645296,-0.22793904),
    new google.maps.LatLng(39.66973274,0.21806265)
  ];

我的javascript水平太低,所以我不知道自动生成这个变量不定数量的坐标对。然后在'Polyline'里面的'path'中使用

有人可以帮我吗?任何建议,将不胜感激!谢谢!

最佳答案

尝试这样的事情。 (我知道这不完全正确,但可能会给你一个想法。我稍后会尝试编辑。)

function processXML(data) {
    var xml = data.responseXML;
    var markers = xml.documentElement.getElementsByTagName("marker");

    //clear markers before you start drawing new ones
    resetMarkers(markersArray);

    for (var i = 0; i < markers.length; i++) {
        var idp = markers[i].getAttribute("idp");
        var polys = markers[i].getAttribute("polys");

        var genpolys = [];
        var json = JSON.parse('{"polys":['+polys+']}');
        for(var coord in json.polys){
            genpolys[coord] = new google.maps.LatLng(json.polys[coord][0],json.polys[coord][1]);    
        }

        var flightPath = new google.maps.Polyline({
        path: genpolys,
        geodesic: true,
        strokeColor: '#FF0000',
        strokeOpacity: 1.0,
        strokeWeight: 2,
        map: map
        });

        markersArray.push(marker);
    }

    setTimeout(function() {
        downloadUrl("echo.php", processXML);
    }, 19000);
}

我希望这能帮助你解决这个问题。我改编了此页面的答案:how to draw polylines on google maps dynamically

关于javascript - 来自 XML 的 Google Map 折线数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808424/

相关文章:

javascript - 将 .ajaxComplete() 与另一个框架生成的 ajax 请求一起使用

javascript - 在浏览器控制台中使用 JavaScript 将颜色代码更改为另一个颜色代码

PHP setcookie "SameSite=Strict"?

php - 组织多维数组的库存

google-maps - Gmaps 无法与 Jupyter Labs 一起使用 - 错误 : No provider for: jupyter. extensions.jupyterWidgetRegistry

google-maps - 获取地址_组件

javascript - 如何使用knockoutjs模板绑定(bind)来绑定(bind)依赖模板?

javascript - d3 如何在发布请求中正确传递请求正文?

php - 使用 proc_open 时从 STDIN 管道读取

javascript - 带有参数(托管图像的 URL)的 Ng map 标记图标不起作用