【发布时间】:2020-06-07 12:25:59
【问题描述】:
我想通过输入坐标在我的地图上添加一个点。它工作正常,但我无法将我的输入转换为实际的地图坐标。它获取屏幕的值并将其转换为坐标。
例如,如果我输入 (0,0),它会将点放在 (0,0) 屏幕位置,即坐标 (78.46671909721232, -74.02100401110448)。我用 console.log 输出检查这个。我如何要求它在 (0,0) 经度/纬度上放置一个点?
我已添加以下代码以供参考。
TextField {
id: xcoordtext
anchors.verticalCenter: parent.verticalCenter
validator: DoubleValidator {bottom: -90.00; top: 90.00;}
Layout.fillWidth: true
}
TextField {
id: ycoordtext
anchors.verticalCenter: parent.verticalCenter
validator: DoubleValidator {bottom: -90.00; top: 90.00;}
Layout.fillWidth: true
}
Button {
text: "POINT Confirmed"
Layout.fillWidth: true
onClicked: {
var waypointCoord = myMap.toCoordinate(Qt.point(xcoordtext.text,ycoordtext.text), false)
console.log(waypointCoord.longitude, waypointCoord.latitude)
}
}
控制台日志中出现的错误和消息如下:-
"Passing incompatible arguments to C++ functions from JavaScript is dangerous and deprecated."
"This will throw a JavaScript TypeError in future releases of Qt!"
qml: -106.9871520804946 79.58494957851264
Ignored NaN, Inf, or -Inf value.
Attempting to set invalid range for value axis: [ nan - nan ]
TerrainQueryLog: Error in fetching elevation tile. Empty response.
Ignored NaN, Inf, or -Inf value.
Attempting to set invalid range for value axis: [ nan - nan ]
qml: -106.9871520804946 79.58494957851264 是我在 TextField 输入中输入 0 (xcoordtext.text) 和 0(ycoord.text) 时得到的坐标。
【问题讨论】:
-
你如何“表达”这一点?请提供minimal reproducible example。您是否尝试使用coordinate 属性也更新项目位置?
-
“放置”我的意思是添加。本质上,我只是想知道如何将 TextEdit 整数输入转换为地图坐标。我用 Qt.point() 试过了,然后用 toCoordinate,但这似乎不起作用。
-
toCoordinate完成这项工作。但是由于您没有提供minimal reproducible example,因此很难猜出这是什么问题。您是否尝试打印waypointCoord?我怀疑你做错了,Qt.point需要int,而不是字符串。 -
我已经使用
console.log()打印了waypointCoord,如问题所示。我已经编辑了问题并添加了确切的错误消息。希望对您有所帮助。
标签: qt qml qt5 coordinates coordinate-transformation