【问题标题】:javascript syntax to set object property value from external variablejavascript语法从外部变量设置对象属性值
【发布时间】:2015-07-01 08:48:34
【问题描述】:

我可以通过代码 sn-p 更好地解释我的情况

var cascadiaFault = new google.maps.Polyline({
    paths: [
      new google.maps.LatLng(49.95, -128.1),
      new google.maps.LatLng(46.26, -126.3),
      new google.maps.LatLng(40.3, -125.4)
    ]
});

paths属性的值应该从外部变量pathsTemp赋值

var pathsTemp = [];
for (var i = 0; i < boxes.length; i++) {
	var bounds = boxes[i];
	// Perform search over this bounds
	pathsTemp.push(bounds.getCenter());
}
var cascadiaFault = new google.maps.Polyline({
	paths: pathsTemp;
});

它不工作..

我尝试过的其他选项

paths = pathsTemp; -- 不工作
paths: paths.push(pathsTmep) -- 没有语法错误,但是在运行时到达此行时出现未捕获的引用错误

PS:我没有javascript背景,遗憾的是我没有时间从头开始阅读语法和规则(但是,我可以理解大部分已经编写的js代码)

【问题讨论】:

  • 您的第二种方法看起来不错,您确定pathsTemp 是正确的数组吗? (getCenter 返回什么?一个新的 LatLng 对象?)
  • boxes[i] 的类型为 google.maps.LatLngBounds.. bounds.getCenter() 返回类型为 google.maps.LatLng 的对象
  • @doldt 你是对的
  • google.maps.PolylineOptions 没有 paths 属性。它只有一个pathpaths 用于多边形)
  • @geocodezip 此处提供的示例使用paths developers.google.com/maps/documentation/javascript/…

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


【解决方案1】:

嗯,我知道问题所在了

  1. 正确的语法是paths: pathsTemp

var pathsTemp = [];
for (var i = 0; i < boxes.length; i++) {
 	var bounds = boxes[i];
  	// Perform search over this bounds
   	pathsTemp.push(bounds.getCenter());
}
var cascadiaFault = new google.maps.Polyline({
   	paths: pathsTemp
});
  1. 上面的代码在语法上是正确的,但问题是它应该是path而不是paths

尽管https://developers.google.com/maps/documentation/javascript/geometry#isLocationOnEdge 上提供的示例示例

使用paths,它适用于我的path。可能是 API 文档中的拼写错误

正如所料,documentation bug logged

参考这个 stackoverflow 讨论

【讨论】:

    【解决方案2】:

    对于否决该问题的人:请查看谷歌文档中的这个误导性示例 sn-p,如果对您有意义,请更改您的意见(声誉在这里很重要,对于像我这样的初学者)

    【讨论】:

    • 好的。我站得更正了。这个例子是错误的(你会注意到没有那个版本的实时版本......)
    • @geocodezip 是的,就是这样。发帖前我已经仔细看了,因为我不想不必要地失去声誉。
    • Working version of that examplepath 和 google.maps.Polyline。 [破例[(jsfiddle.net/f1wqyh69/1)与paths(没有出现折线,也没有alert
    • @geocodezip,我昨天收到了,谢谢!!!如果您有时间,可以看看this old question 并提出一些建议。不确定您是否收到通知
    • 将此合并到您的其他答案中。不需要两个帖子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 2019-03-24
    • 2022-08-23
    相关资源
    最近更新 更多