You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySide2结合QML QtLocation实现地图点击显示圆形反馈的问题

onClicked事件完全可以同时执行多个操作,你页面空白是代码存在多处语法和属性使用错误导致的,具体问题及修复方案如下:

错误点汇总

  • Plugin属性位置错误:Plugin是Map的专属属性,你当前将其定义在了Map组件外部,属于语法错误,直接导致地图无法加载
  • Map的center属性赋值错误:center需要接收coordinate类型值,你写的center: (0, 0)是无效写法
  • MapCircle的center赋值方式错误:center是属性不是方法,不能用circle.center(坐标)的方式调用,应该用属性赋值语法
  • MapCircle的radius单位错误:MapCircle的radius单位是米,你直接取Map的像素宽度除以10作为半径,数值太小,在zoomLevel=6的视图下完全不可见
  • 未定义的模型变量:MapItemView绑定了model: src,但全局没有定义src这个模型变量,会触发运行时错误

修正后的coord_map.qml代码

import QtQuick 2.0
import QtQuick.Controls 2.0
import QtQuick.Controls.Material 2.0
import QtQuick.Controls.Universal 2.0
import Fluid.Controls 1.0
import QtLocation 5.6
import QtPositioning 5.6

Item {
    width: 600
    height: 600

    Map {
        id: map
        anchors.fill: parent
        zoomLevel: 6
        center: QtPositioning.coordinate(0, 0) // 修正center赋值

        // 暂时注释未定义src的MapItemView,后续需要使用时自行定义src模型即可
//        MapItemView {
//            model: src
//            delegate: MapQuickItem {
//                coordinate: src.position.coordinate
//                anchorPoint.x: image.width * 0.5
//                anchorPoint.y: image.height
//                sourceItem: Column {
//                    Image { id: image; source: "marker.png" }
//                    Text { text: title; font.bold: true }
//                }
//            }
//        }

        MapCircle {
            id: circle
            radius: 50000 // 单位为米,调整为合适的可见大小
            border.width: 1
            color: 'green'
        }
        
        // 修正plugin位置,放到Map组件内部
        plugin: Plugin {
            name: "osm"
        }
    }

    MouseArea {
        id: mouse
        anchors.fill: parent
        onClicked: {
            var clickCoord = map.toCoordinate(Qt.point(mouse.x, mouse.y))
            controller.update_from_map(clickCoord)
            circle.center = clickCoord // 修正为属性赋值语法
        }
    }
}

修改后即可正常实现点击地图同时更新坐标输入框、在点击位置显示绿色圆形的需求,Python代码无需修改。

内容的提问来源于stack exchange,提问作者Zach Tait

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 04:12:04