| 22 | void NodeOpt::setMapHandle(hadmap::txMapHandle* pH) { pHandle = pH; } |
| 23 | |
| 24 | bool NodeOpt::initNode(NodePtr& nodePtr) { |
| 25 | if (!nodePtr) throw std::runtime_error("initNode Error, nodePtr Empty"); |
| 26 | |
| 27 | hadmap::txRoadPtr roadPtr; |
| 28 | if (TX_HADMAP_DATA_OK == hadmap::getRoad(pHandle, nodePtr->nodeId.roadId, false, roadPtr)) { |
| 29 | nodePtr->roadLen = roadPtr->getGeometry()->getLength(); |
| 30 | nodePtr->startPt = roadPtr->getGeometry()->getStart(); |
| 31 | nodePtr->endPt = roadPtr->getGeometry()->getEnd(); |
| 32 | return true; |
| 33 | } else { |
| 34 | char info[128]; |
| 35 | sprintf(info, "initNode Error, get road %s info error", std::to_string(nodePtr->nodeId.roadId).c_str()); |
| 36 | txlog::error(info); |
| 37 | return false; |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | bool NodeOpt::getNodeByLoc(const hadmap::txPoint& loc, NodePtr& nodePtr) { |
| 42 | if (!nodePtr) nodePtr.reset(new Node); |