| 99 | } |
| 100 | |
| 101 | std::string ChartBridge::GetPositions(const nlohmann::json &itemDatas) { |
| 102 | nlohmann::json array = {}; |
| 103 | if (chart_ == nullptr || itemDatas.is_null() || !itemDatas.is_array() || itemDatas.empty()) { |
| 104 | return array.dump(); |
| 105 | } |
| 106 | auto ratio = chart_->GetCanvasContext().GetDevicePixelRatio(); |
| 107 | if (ratio <= 0) { |
| 108 | ratio = 1; |
| 109 | } |
| 110 | |
| 111 | for (auto it = itemDatas.begin(); it != itemDatas.end(); ++it) { |
| 112 | const auto &position = chart_->GetPosition(*it); |
| 113 | array.push_back({position.x / ratio / pixelRatio_, |
| 114 | position.y / ratio / pixelRatio_}); |
| 115 | } |
| 116 | return nlohmann::json({{"method","getPositions"}, {"positions",array}}).dump(); |
| 117 | } |
| 118 | |
| 119 | nlohmann::json ChartBridge::GetPosition(const nlohmann::json &itemData) { |
| 120 | if (chart_ == nullptr || itemData.is_null()) { |
nothing calls this directly
no test coverage detected