gpt4 book ai didi

c# - 将双数组从 WPF 传递到 JavaScript 函数以使用 GoogleAPI 创建多边形

转载 作者:行者123 更新时间:2023-11-28 08:06:31 26 4
gpt4 key购买 nike

我在使用 googleapi 绘制多边形时遇到问题。其中需要传递纬度和经度的双数组。 JavaScript 函数出现错误。

为了测试目的,我有两个 double 类型的数组。并在代码中分配值。

var lats = Array.CreateInstance(typeof(double), 4);
var longs = Array.CreateInstance(typeof(double), 4);
lats.SetValue(25.774252, 0);
lats.SetValue(18.466465, 1);
lats.SetValue(32.321384, 2);
lats.SetValue(25.774252, 3);

longs.SetValue(-80.190262, 0);
longs.SetValue(-66.118292, 1);
longs.SetValue(-64.75737, 2);
longs.SetValue(-80.190262, 3);
currBrowser.InvokeScript("drawPloygon", lats, longs);

然后我调用 JavaScript 函数名称“drawPolygon”并传递两个单独的数组。如果我在 JavaScript 函数“drawPolygon”中硬编码 triangleCoords,则它可以正常工作。

       function drawPloygon(lats,longs) {

try {
var mapOptions = {
center: new google.maps.LatLng(52.483617, -1.889992),
zoom: 8
};

var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions)

var length = lats.length;
alert(lats);
alert(longs);

//Define the LatLng coordinates for the polygon's path.

var triangleCoords = [];
for (i = 0; i < length; i++) {
triangleCoords[i] = new google.maps.LatLng(this.javaSerial.Serialize(lats[i]), this.javaSerial.Serialize(longs[i]));
}

}
catch (err) {
alert(err);
}

var bermudaTriangle;
// Construct the polygon.
bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: '#FF0000',
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: '#FF0000',
fillOpacity: 0.35
});

bermudaTriangle.setMap(map);
}

** 下面是硬编码的 triangleCoords 数组,可以完美地绘制多边形**

        var triangleCoords = [

new google.maps.LatLng(25.774252, -80.190262),
new google.maps.LatLng(18.466465, -66.118292),
new google.maps.LatLng(32.321384, -64.75737),
new google.maps.LatLng(25.774252, -80.190262)
];

任何帮助将不胜感激。谢谢

最佳答案

使用以下过程:

  • 删除 this.javaSerial.Serialize 调用
  • length 定义为两个参数中较短的一个:

    var length = 0;

    if(lats.length && longs.length)
    {
    length = lats.length > longs.length ? lats.length : longs.length;
    }

关于c# - 将双数组从 WPF 传递到 JavaScript 函数以使用 GoogleAPI 创建多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24738765/

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