code: func (r *Router) GetDatacenterMaps() ([]structs.DatacenterMap, error) {
  	r.RLock()
  	defer r.RUnlock()
  
  	var maps []structs.DatacenterMap
  	for areaID, info := range r.areas {
  		index := make(map[string]structs.Coordinates)
  		for _, m := range info.cluster.Members() {
  			ok, parts := metadata.IsConsulServer(m)
  			if !ok {
  				r.logger.Printf("[WARN]: consul: Non-server %q in server-only area %q",
  					m.Name, areaID)
  				continue
  			}
  
  			coord, ok := info.cluster.GetCachedCoordinate(parts.Name)
  			if ok {
  				entry := &structs.Coordinate{
  					Node:  parts.Name,
  					Coord: coord,
  				}
  				existing := index[parts.Datacenter]
  				index[parts.Datacenter] = append(existing, entry)
  			}
  		}
  
  		for dc, coords := range index {
  			entry := structs.DatacenterMap{
  				Datacenter:  dc,
  				AreaID:      areaID,
  				Coordinates: coords,
  			}
  			maps = append(maps, entry)
  		}
  	}
  	return maps, nil
  }
docs: // GetDatacenterMaps returns a structure with the raw network coordinates of
  // each known server, organized by datacenter and network area.