给定一张地图和一组地点，返回最短路径和距离。请使用Dijkstra算法。


地图：
A——4—（B）—3—（C）—5—（D）
 | \t |\t |\t |
1\t  |  9 | \t 3 |
 | \t |\t |\t |
（E）—1—（F）—2—（G）
起点：A
结束点：G
起点为A，结束点为G，使用Dijkstra算法计算最短路径和距离如下：

1. 初始化起点A的距离为0，其他节点的距离为无穷大。

2. 从未处理的节点中找到距离起点最近的节点B，计算起点A到B相邻节点的距离，如果该距离加上A到起点的距离小于该相邻节点的距离，更新该节点的距离。

3. 标记节点B为已处理。

4. 重复步骤2和3，直到所有节点都被处理过或者没有未处理的节点为止。

5. 最终得到起点A到结束点G的最短路径和距离为A->B->C->F->G，距离为10。

地图：
```
A——4—(B)—3—(C)—5—(D)
 |     |     |     |
1     9     3     2
 |     |     |     |
(E)—1—(F)—2—(G)
```